А почему? Как я понял хидеры в основном для этого и созданы...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
kamiur
28 июля 2003 г. 11:52
В ответ на:
ну вобщем то так - только не надо в хидерах переменные определять !
отправлено DASM 28 июля 2003 г. 11:50
Составить ответ
|||
Конференция
|||
Архив
Ответы
вообще то в хидерах принято давать прототипы ф-ций, typedef, define и прочие. По идее можно переменные с классом extern. Но чтоб в них объявлять переменные, подразумевающие реальное выделение памяти.... Плохой тон
—
DASM
(28.07.2003 11:58,
пустое
)
Ответ: Маленькое замечание. В своем компиляторе (было дело) при задании соответствущей опции, можно
—
Bill
(28.07.2003 12:06, 377 байт)
ребята. Это бред. Такой же, как инклюдить *.с файлы
—
DASM
(28.07.2003 12:16,
пустое
)
Ответ: А почему бред? Мы же, когда в h включаем прототипы функций, extern не пишем.
—
Bill
(28.07.2003 12:38, 258 байт)
Ответ: бред по очень простой причине - ошибки потом вылазять, как у товариСча в вопросе - "переменная переопределена".
—
...
(28.07.2003 13:17,
пустое
)
Ответ: Вы мое сообщение невнимательно прочитали. Перечитайте еще раз.
—
Bill
(28.07.2003 13:24,
пустое
)
Не хочу. Лучше почитайте Страуструппа.
—
...
(28.07.2003 13:28,
пустое
)
ну у него все ж ++, отличия есть, но в целом советую. Все равно на ++ все перейдут или еще на что с С. А пишет он очень понятно
—
DASM
(28.07.2003 13:29,
пустое
)
Хорошо написанная программа на С очень мало отличается от С++.
—
Yuriy
(28.07.2003 17:50,
пустое
)
от ПЛОХОЙ программы на С++ :-)
—
DASM
(28.07.2003 19:30,
пустое
)
ну так в хидере то мы делаем декларацию ф-ции, а не реализацию. А с переменными - говорю же - напишите в хидере ОДИН РАЗ extern char... и включайте повсюду этот хидер. А в одном из С файлов сделайте её определение. Вот и овцы целы и волки сыты.
—
DASM
(28.07.2003 12:45,
пустое
)
Ответ: Я об этом же и говорю. Пременные нужно описывать в ДВУХ файлах.
—
Bill
(28.07.2003 12:59, 243 байт)
А почему бы тогда все функции не закатать туда же? Чем неудобно, запишем туда все реализации, чего их декларировать дополнительно. И вобще зачем тогда нужны всякие ".с" файлы? Давайте писать все в хидерах? По крайней мере, враги не поймут (друзья, впрочем, - тоже) ;(
—
ncto
(28.07.2003 13:05,
пустое
)
Ответ: Между прочим, когда я в MPLAB работал без линкера, так и приходилось делать. Страшно неудобно.
—
Bill
(28.07.2003 13:21, 18 байт)
если мне не изменяет в память, в С декларация предварительная не обязательна. В С++ надо. А вообще - гляньте сурцы UCOS (если уж MS не нравится) - посмотрите, как делают профессионалы.
—
DASM
(28.07.2003 13:17,
пустое
)
и зачем отходить от стандарта ? Показать какие мы неповторимый и позларадствовать над программером, перносящую эту прогу ? Пусть С - плохой язык. Но это стандарт - и это важнейшее достоинство
—
DASM
(28.07.2003 13:03,
пустое
)
Ответ: Вообще-то это стандартом не никак не оговаривается. И потом, я же сказал, что это
—
Bill
(28.07.2003 13:16, 135 байт)
Это не прием. Это сделано для совместимости со старыми программами, написаными глупыми программистами.
—
Yuriy
(28.07.2003 15:26,
пустое
)
гы гы гы. Браво :-)))))))))))))))))))
—
DASM
(28.07.2003 15:27,
пустое
)
Ответ:
—
Bill
(28.07.2003 13:16,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru