powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Чужие ошибки...
9 сообщений из 34, страница 2 из 2
Чужие ошибки...
    #34094009
Фотография GoldSquid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше так
Код: plaintext
1.
for ( int i =  1  ; i <  10  && b[i]=(a[i]=i)*i; printf("%d ",b[i]));
...
Рейтинг: 0 / 0
Чужие ошибки...
    #34094012
Фотография GoldSquid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, вот так

for ( int i = 1 ; i < 10 && b =(a=i)*i; printf("%d ",b[i++]));
...
Рейтинг: 0 / 0
Чужие ошибки...
    #34094014
Фотография GoldSquid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
for ( int i =  1  ; i <  10  && b[i]=(a[i]=i)*i; printf("%d ",b[i++]));
...
Рейтинг: 0 / 0
Чужие ошибки...
    #34094045
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше. Я просто постарался донести мысль, что тело этого цикла запросто можно растянуть на N экранов нормального вида; в Вашей записи это несколько неочевидно.
...
Рейтинг: 0 / 0
Чужие ошибки...
    #34094327
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лол, что называется, нарочно не придумаешь.
...
Рейтинг: 0 / 0
Чужие ошибки...
    #34094967
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoлол, что называется, нарочно не придумаешь.
Си - язык, очень богатый возможностями написать код из серии "нарочно не придумаешь". В очередной раз расскажу историю, которую запомнил на всю жизнь.

Итак, моя самая первая серьезная работа. Занимались перетаскиванием под W32 огромной системы, писанной на ТурбоСях. Изрядно переписали самый нижний уровень, в основном сохранив интерфейс, начали потихоньку подключать модули более верхнего уровня. Количество кода - просто захлебнуться.

Тонкость состояла в том, что система состояла из кучи exe-шников, а турбо-си не умел делать выборочную линковку, то есть если он брал obj-файл, то линковал его в exe-шник обязательно целиком. Поэтому в унаследованном коде применялся принцип "каждая функция в отдельном файле", соответственно для удержания количества файлов в разумных размеров "лишних функций" не выделяли. Другим следствием было то, что файл назывался строго по имени функции (и понятно), а следовательно имена функций были не длиннее восьми символов.

Итак, подтягиваю я очередной модуль. Задача достаточно паршивая - двухбайтный int меняется на четырехбайтный, надо посмотреть, что везде все правильно, ненужных двоек вместо sizeof не мелькает, API все же отчасти поменялось, надо скорректировать вызовы, в общем, работы хватает. Вроде все сделал, подключаю, компилю, запускаю - виснет. Просто наглухо виснет.

Не буду рассказывать, как я искал причину. Скажу только, что функция была длиной около 14'000 строк, из них основной цикл занимал около 10'000. Так или иначе, в конце концов я нашел причину - за несколько сот строк до конца основного цикла стояла замечательная инструкция:

Код: plaintext
n = n++;

В Турбо-Сях она компилилась как n=n+1, в Ваткоме, на который мы переходили, это же компилировалось в n=n, и при этом и то, и другое, соответствовало стандарту языка Си.
...
Рейтинг: 0 / 0
Чужие ошибки...
    #34095052
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну это не так прикольно. Это просто ошибка, а не порождение воспалённого мозга.
...
Рейтинг: 0 / 0
Чужие ошибки...
    #34095440
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, стандартное

Код: plaintext
1.
int i = 1, *p = &i;
i = i/*p;

тоже в общем-то ошибка, но меня прикалывает.
...
Рейтинг: 0 / 0
Чужие ошибки...
    #34095776
!!!!!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
!!!!!
....
7. бесчисленные функции и подфункции на ровном месте особенно при задании источников строк
....


Что автор хотел этим сказать?[/quot]

Увы не воспроизведу оригинал...

соссно задача - составить SQL запрос в котором WHERE основан на переменном количестве параметров

уже не помню сам ли дошел или прочитал, но делаю так
if ..... then st=st & " and ....."
if ..... then st=st & " and ....."
if ..... then st=st & " and ....."
if st<>"" then st=" WHERE (" & mid(st,6) ")"

так вот там где у меня простая конкатенация при проверке условий
на каждом шаге использована функция основанная на подфункции,
поскольку WHERE включалась в строку на первом же шагу и таскалась
на каждую проверку

такого маразма было предостаточно и в другом
например на каждый чих заводилась специальная форма, кнопка ее вызова
кнопки на главной форме + обработка нажатия клавиш+кнопки на вызываемой
создаваемые визардами...

хотя заведение копеешных форм думаю было более на совести руководства...
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Чужие ошибки...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]