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

 
 
> Заголовочные файлы и модули., Как правильно?
Smoky
сообщение Dec 30 2017, 17:11
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135



Добрый день. Всегда размещал специфические функции в заголовочных файлах .h. Но вот знающие люди предлагают в заголовочных файлах только объявлять переменные и функции а сами функции размещать в отдельном модуле с расширением .с. Сделал я такую попытку и компилятор сразу же потерял эти функции. В модуле и в основном файле проекта строка #include на заголовочный файл .h была объявлена. Как правильно поступать в таком случае и стоит ли это делать?


--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Unfog
сообщение Jan 12 2018, 06:13
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932



Для исключения повторной компиляции содержимого h-файла несколько раз еще можно использовать следующие приемы:

Код
#ifndef DEFINE_H_
#define DEFINE_H_

int i = 0;

#endif /*DEFINE_H_*/

или
Код
#pragma once
Go to the top of the page
 
+Quote Post
Smoky
сообщение Jan 12 2018, 06:49
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135



Цитата(Unfog @ Jan 12 2018, 12:13) *
Для исключения повторной компиляции содержимого h-файла несколько раз еще можно использовать следующие приемы:

или
Код
#pragma once


А это в каком компиляторе?


--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Jan 12 2018, 08:21
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(Smoky @ Jan 12 2018, 09:49) *
А это в каком компиляторе?

Настолько во всех что я до сих пор удивляюсь что её не внесли в стандарт.
Go to the top of the page
 
+Quote Post
Baser
сообщение Jan 12 2018, 10:29
Сообщение #5


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Kabdim @ Jan 12 2018, 10:21) *
Настолько во всех что я до сих пор удивляюсь что её не внесли в стандарт.

ИАР значится в табличке в Википедии, однако в тех версиях (не очень старых) что я использую для MSP430 и STM32,
#pragma once отсутствует.

Есть только упоминание о ней в главе: Recognized pragma directives (6.10.6)
In addition to the pragma directives described in the chapter Pragma directives, the
following directives are recognized and will have an indeterminate effect.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Smoky   Заголовочные файлы и модули.   Dec 30 2017, 17:11
- - sigmaN   Думаю что эти функции потерял не компилятор, а лин...   Dec 30 2017, 20:01
|- - Smoky   Цитата(sigmaN @ Dec 31 2017, 02:01) Думаю...   Dec 31 2017, 06:39
- - Baser   Пару раз встречал расположение функций в файлах .h...   Dec 30 2017, 22:52
- - dxp   Помещение определений встраиваемых функций (inline...   Dec 31 2017, 10:21
|- - gosha-z   Цитата(dxp @ Dec 31 2017, 13:21) Помещени...   Dec 31 2017, 12:54
|- - Сергей Борщ   QUOTE (gosha-z @ Dec 31 2017, 14:54)...   Dec 31 2017, 16:33
|- - gosha-z   Цитата(Сергей Борщ @ Dec 31 2017, 19:33) ...   Dec 31 2017, 19:00
- - Smoky   Разобрав несколько примеров сделал попытку передел...   Jan 1 2018, 05:55
|- - HardEgor   Цитата(Smoky @ Jan 1 2018, 12:55) Разобра...   Jan 1 2018, 07:42
|- - Smoky   Цитата(HardEgor @ Jan 1 2018, 13:42) Лучш...   Jan 1 2018, 07:55
- - sigmaN   Так вы логики в .h файлах не видите потому не пони...   Jan 1 2018, 12:45
|- - nice_vladi   Цитата(sigmaN @ Jan 1 2018, 12:45) ... П...   Jan 1 2018, 13:45
|- - Smoky   Цитата(sigmaN @ Jan 1 2018, 18:45) Так вы...   Jan 1 2018, 14:54
|- - sigmaN   Цитата(Smoky @ Jan 1 2018, 17:54) Логику ...   Jan 1 2018, 18:38
- - Baser   Цитата(Smoky @ Jan 1 2018, 07:55) Разобра...   Jan 1 2018, 18:47
|- - Smoky   Цитата(Baser @ Jan 2 2018, 00:47) Передел...   Jan 1 2018, 19:40
|- - Baser   Цитата(Smoky @ Jan 1 2018, 21:40) Прошу п...   Jan 1 2018, 20:30
|- - Smoky   Цитата(Baser @ Jan 2 2018, 02:30) Студии ...   Jan 2 2018, 17:11
|- - Baser   Цитата(Smoky @ Jan 2 2018, 19:11) Предлаг...   Jan 2 2018, 19:18
- - sigmaN   Мне пришлось импортировать проект в AS 7 Я правил...   Jan 1 2018, 20:01
|- - Dog Pawlowa   Цитата(sigmaN @ Jan 1 2018, 23:01) ... Си...   Jan 1 2018, 21:10
- - ArtemKAD   В хидеры включены переменные(и константные перемен...   Jan 1 2018, 20:10
- - sigmaN   ЦитатаПервый способ создаст две переменных, ошибок...   Jan 1 2018, 21:24
- - sigmaN   ЦитатаКоллеги, вы "ломаете" все мои уста...   Jan 2 2018, 21:30
|- - Smoky   Цитата(sigmaN @ Jan 3 2018, 03:30) Вам бы...   Jan 3 2018, 08:00
- - Владивольт   похожая тема - взгляните   Jan 3 2018, 17:39
- - Smoky   Моя благодарность "волхвам" за науку, вс...   Jan 10 2018, 17:06
- - sigmaN   Обращайтесь, я по умничать всегда рад   Jan 10 2018, 18:44
- - Grizzzly   Цитата(Smoky @ Jan 12 2018, 09:49) А это ...   Jan 12 2018, 07:04
|- - Smoky   Цитата(Grizzzly @ Jan 12 2018, 13:04) Ну ...   Jan 12 2018, 10:49
- - aiwa   Цитата(Kabdim @ Jan 12 2018, 10:21) Насто...   Jan 13 2018, 07:51


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 17:40
Рейтинг@Mail.ru


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