RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Может я не прав, но..


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Slavik Gnatenko, 2:467/99
To : LightElf
Subj : Может я не прав, но..

> > В результате то, что в одном файле (подключённом через include) было определено с помощью define, может быть запросто угроблено в каком-то из последующих файлов - и программист об этом подозревать не будет.
> Компилятор скажет, что у тебя имеет место Macro redefinition и укажет в каком файле и месте.
Ну это если таки macro и таки redefinition. Аффтар инклюда может и undef предварительно сказать. А недавно долго чесал затылок, почему у меня функция описана в общем инклюде, используется, прилинкована и при этом ошибка. Вскрытие показало затесавшийся в одном из случаев #define bool int. Аффтарам OpenVPN пламенный привет.Теперь у меня после их инклюдов втыкается undef bool и он опять начинает быть логическим типом.

> > Или случай, когда в двух используемых библиотеках имеются одноимённые функции - тоже кровь попортить может.
> Линкер тебе сообщит, что имеются одноименные функции (укажет имена) в двух либах (укажет либы) и чего-то некругло.
Это он с явно указаными объектниками скажет, потому что их таки надо слинковать все. А с либами просто возьмёт первую по пути (и то не всегда). У меня даже заметной величины либа есть, которую надо ставить перед kLibc, чтобы в ней некоторые функи заместить. А недавно была кора: проект компилится под динамическую libc, но использует либу, собраную под статическую. Всё это чудесно работало, пока не был достигнут определённй уровень сложности. Потом продолжило линковаться, но стало валиться на ините этой самой libc по SYS3175. Имел день в отладчике, чтобы понять какого и как лечить.

> > В общем, заниматься написанием надёжных программ на подобном языке я бы не стал - здоровье дороже.
> Поскольку все приведенные аргументы ложны, то истинность суждения под вопросом ;)
Так это просто его личное суждение и его же здоровье :) А так на C действительно о надёжности говорить не приходится, а вот на C++ уже более-менее на уровне писать можно. Только придётся вещей типа арифметики указателей просто не использовать. А также как-то для себя решить проблему с удалением объекта, когда указатели на него ещё есть.

2Юрий Пронякин: BTW, кинь мне своё мыло на moveton@gmail.com. Я тебя на спамерскую рассылку подпишу :)


Sat 14 Jul 2007 21:55 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.8.1.2pre) Gecko/




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.