реклама на сайте
подробности

 
 
> Прозрачность программы для компилятора, Почему иногда приходится обьявлять одни и теже инклюды
Waso
сообщение Oct 30 2007, 11:43
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



Насколько я понимаю, инклюд, обьявленный в начале файла должен быть виден во всех последующих инклюдах программы. Согласно Кернигану и Риччи, предпроцессор заменяет директиву #include на содержимое файла, на который она указывает. Однако в ИАРе для успешной компиляции некоторые инклюды приходится втыкать чуть ли не в каждый файл проекта. Плюс к тому, с-шные файлы вообще не участвуют в инклюдах, а обращение к их функциям происходит через прототипы функций одноименных хедеров. Нестыковочка.

Подскажите пожалуйста, как можно избавиться от сабжевой проблемы, в чем могут быть ее причины? Общие ответы типа "в кривости кода" - не в счет.


PS Пользую IAR EWARM 4.40A
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Waso
сообщение Oct 30 2007, 12:36
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



Благодарю.
Начинает доходить. smile.gif

Значит любой с-файл включенный в проект будет компилироваться и отгрызать место даже если я закоментирую инклюд с его хедером??

Насчет охранных директив и порядка следования я в курсе. Тем больше удивлялся когда повторное включение хедера с охранной директивой изменяло результат компиляции. Но теперь ясно.

alexander55 отличная идея! На первый взгляд. Почему тогда такой прием широко не используется? Врядли для того чтобы сократить время компиляции.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 30 2007, 14:21
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Waso @ Oct 30 2007, 15:36) *
отличная идея! На первый взгляд. Почему тогда такой прием широко не используется? Врядли для того чтобы сократить время компиляции.

Полезно объявлять только то, что реально используется в данном *.с файле. Это поможет понять, что происходит, тому бедолаге, который когда-нибудь будет вынужден разбираться в этом коде.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Waso   Прозрачность программы для компилятора   Oct 30 2007, 11:43
- - Сергей Борщ   Цитата(Waso @ Oct 30 2007, 14:43) Однако ...   Oct 30 2007, 12:03
- - IgorKossak   Проблема не в кривости кода а в недопонимании. Во ...   Oct 30 2007, 12:08
- - alexander55   Цитата(Waso @ Oct 30 2007, 14:43) Кроме ...   Oct 30 2007, 12:16
|- - Andy Mozzhevilov   Цитата(alexander55 @ Oct 30 2007, 17:16) ...   Oct 31 2007, 04:50
|- - alexander55   Цитата(Andy Mozzhevilov @ Oct 31 2007, 07...   Oct 31 2007, 05:58
|- - dxp   Цитата(Waso @ Oct 30 2007, 18:36) Значит ...   Oct 30 2007, 12:41
|- - alexander55   Цитата(Waso @ Oct 30 2007, 15:36) alexand...   Oct 30 2007, 12:50
|- - ig_z   Цитата(Waso @ Oct 30 2007, 16:36) alexand...   Oct 30 2007, 13:37
||- - alexander55   Цитата(ig_z @ Oct 30 2007, 16:37) Отличну...   Oct 30 2007, 13:52
|- - alexander55   Цитата(scifi @ Oct 30 2007, 17:21) Полезн...   Oct 30 2007, 14:33
- - Непомнящий Евгений   Полностью присоединяюсь к Andy Mozzhevilov - избыт...   Oct 31 2007, 05:42
- - Waso   Линкер выдает такую ошибку: КодError[e27]...   Nov 2 2007, 09:28
|- - Сергей Борщ   Цитата(Waso @ Nov 2 2007, 12:28) В обоих ...   Nov 2 2007, 09:48
|- - VladislavS   Цитата(Waso @ Nov 2 2007, 12:28) Охранные...   Nov 2 2007, 17:41
|- - Николай Z   Цитата(Waso @ Nov 2 2007, 12:28) Линкер в...   Nov 4 2007, 18:52
- - Waso   Видимо проблема в том что компилятор умничает и иг...   Nov 8 2007, 11:45
|- - Сергей Борщ   Цитата(Waso @ Nov 8 2007, 13:45) Еще мале...   Nov 8 2007, 12:14
- - Waso   Спасибо. Просто у меня после паскалевских Ctrl-Shi...   Nov 13 2007, 11:08
- - Сергей Борщ   Цитата(Waso @ Nov 13 2007, 13:08) Еще воп...   Nov 13 2007, 12:40


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016