|
Вопрос про заголовочные файлы, и хороший стиль программирования |
|
|
|
Apr 13 2009, 19:15
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760

|
Есть пара вопросов...
Как начинающий ембедер взял для учебных целей пару проектов своих старших по цеху коллег. Один проект на си, другой на асме. - В проекте на си увидел следующее - имеется несколько СИ-файлов (допустим module_1.c, module_2.c, main.c) и несколько h-файлов.Отдельно для каждого модуля (кроме main.c) имеется h-файл с объявлениями функций (module_1.h, module_2.h), включаемый в соответствующем модуле. Также есть h-файлы, где объявлены глобальные переменные (допустим global_var.h). Эти переменные используются функциями некоторых модулей, но в тексте самих модулей соответствующей директивы о подключении этих h-файлов нет.
И все это хозяйство выглядит таким образом:
Код // файл module_1.c #include "module_1.h" // далее определения функций, которые используют переменные,описанные в global_var.h
Код // файл module_2.c #include "module_2.h" // далее определения функций, которые используют переменные, описанные в global_var.h
Код // файл main.c #include "global_var.h" #include "module_1.c" #include "module_2.c" // далее main.... Но я думал, что по общепринятым правилам следовало в одном из модулей обявить все эти глобальные переменные обычным образом, а в остальных - с квалификатором extern... Правда не знаю, как правильней следует делать - создать два заголовочных файла, global_var.h и global_var_extern.h? А потом в main.c подключить первый, а в остальных модулях - второй файл? Или как? Или же способ моего старшего коллеги тоже к дурному стилю не относится? - В проекте на асме увидел только один здоровенный ассемблерный файл и несколько h-файлов. Самым интересным оказалось то, что в ассемблерном файле код не весь, оставшуюся часть (кучку подпрограмм) я нашел спрятанной в одном из h-файлов...
Полагаю это можно отнести к "плохому тону" в оформлении программы?
Вот... Просто хочется научиться правильно оформлять программы, привить себе хороший стиль в написании и оформлении кода  ... Чтобы если придется в команде работать - в грязь лицом не ударить, не показаться невеждой... Гуру! Наставьте на путь истиный!!!
|
|
|
|
|
 |
Ответов
|
Apr 13 2009, 19:22
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Student Pupkin @ Apr 13 2009, 23:15)  Правда не знаю, как правильней следует делать - создать два заголовочных файла, global_var.h и global_var_extern.h? А потом в main.c подключить первый, а в остальных модулях - второй файл? Или как? А зачем два? Объявить глобальные переменные в одном модуле, и сделать хидер с extern'ами. Переменные в заголовочный файл помещать не следует. Цитата(Student Pupkin @ Apr 13 2009, 23:15)  Самым интересным оказалось то, что в ассемблерном файле код не весь, оставшуюся часть (кучку подпрограмм) я нашел спрятанной в одном из h-файлов... Полагаю это можно отнести к "плохому тону" в оформлении программы? Код в хидере, так же как приляпывание "C"-файлов при помощи #inculde, ИМХО, кошмар.
|
|
|
|
Сообщений в этой теме
Student Pupkin Вопрос про заголовочные файлы Apr 13 2009, 19:15 zltigo Цитата(aaarrr @ Apr 13 2009, 21:22) Код в... Apr 13 2009, 19:25  dxp Цитата(zltigo @ Apr 14 2009, 02:25) Несом... Apr 16 2009, 03:48   zltigo Цитата(dxp @ Apr 16 2009, 05:48) Код в за... Apr 16 2009, 06:06  aaarrr Цитата(singlskv @ Apr 14 2009, 00:59) А е... Apr 14 2009, 08:01   singlskv Цитата(aaarrr @ Apr 14 2009, 12:01) ??? Т... Apr 14 2009, 23:28 MrYuran Я обычно в h-файл модуля выношу то, что нужно виде... Apr 14 2009, 04:31 BSVi Сам смысл модулей в том, чтобы скрыть внутренюю фу... Apr 14 2009, 06:36 aaarrr Все это, конечно, хорошо, только вот к ANSI C отно... Apr 15 2009, 07:22
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|