Описание тега include-guards
Все, что связано с C/C++, включает технику защиты, то есть технику, использующую функции условной компиляции препроцессора C, чтобы предотвратить многократное включение файлов заголовков в исходные файлы C/C++.
2
ответа
Разница между "ifndef" и "если! определено" в C?
Я видел #ifndef ABC а также #if !defined (ABC) в том же исходном файле C. Есть ли тонкая разница между ними? (Если это вопрос стиля, зачем кому-то использовать их в одном файле)
23 дек '11 в 15:27
1
ответ
Где разместить #include и избыточности в коде (файлы заголовков и реализации)
В настоящее время я прохожу Accelerated C++, и у меня возникли небольшие трудности с пониманием того, где мне обязательно нужно поместить # include (будь то в заголовке и / или исходном файле) и, в основном, излишне ли я. Буду признателен за все ком…
19 фев '14 в 13:52
0
ответов
Перевести заголовки на Cython
Реально ли для Cython иметь возможность переводить заголовки C в Cython-директивы? (См. Здесь, в условной компиляции). Аналогичное предложение было сделано и здесь. В моем случае я хотел бы, чтобы эти C-директивы были в моем.h: /* myheader.h */ #def…
13 апр '17 в 16:06
2
ответа
Понимание заголовков и включение
Я пытаюсь понять, как на самом деле несколько определений включаемых файлов взаимодействуют, а иногда и сталкиваются. Так что у меня есть пользовательский заголовочный файл file.hгде некоторые функции объявлены в #include guard, Пример: #ifndef FILE…
06 янв '16 в 09:40
3
ответа
Как сократить время компиляции для большой библиотеки C++ отдельных файлов.cpp?
Мы разрабатываем библиотеку C++ с более чем 500 сотнями отдельных файлов.cpp. Каждый из них компилируется и архивируется в статическую библиотеку. Даже при параллельной сборке это занимает несколько минут. Я хотел бы сократить это время компиляции. …
30 июл '15 в 20:36
2
ответа
Ошибка C++ LNK2005 при добавлении нового заголовочного файла
Я работаю над проектом для школы. Я знаю о своей циклической зависимости (и я прочитал большинство резолюций здесь для этого ранее), но в настоящее время она работает так, как мне нужно. К сожалению, я почти уверен, что это также причина моих бед. Я…
21 ноя '15 в 03:25
6
ответов
Проблемы с C++ Header Guard
Я делаю небольшой C++ фреймворк, который содержит много.h и.cpp. Я создал общее включение, которое включает все мои файлы.h, такие как: framework.h #include "A.h" #include "B.h" #include "C.h" каждый заголовок.h защищен включением защиты, таким как …
19 май '10 в 14:41
5
ответов
Оптимизация с несколькими включениями
Я пытаюсь понять, как многократная оптимизация работает с gcc. В последнее время я читал много кода, который включает в себя защиту для стандартных заголовочных файлов, например #ifndef _STDIO_H_ #include <stdio.h> #endif и я пытаюсь выяснить,…
20 дек '13 в 13:43
2
ответа
Бесконечные циклы включения
Возможный дубликат: Циклы файла заголовка C Оригинальный вопрос: У меня всегда были проблемы с пониманием, почему следующее дает ошибки: something.h #ifndef SOMETHING_H #define SOMETHING_H #include "somethingelse.h" #endif somethingelse.h #ifndef SO…
30 окт '11 в 18:40
4
ответа
Подавить предупреждения gcc: "предупреждение: это местоположение предыдущего определения"
Мне нужен набор оберток вокруг стандартных системных вызовов -open,listen и т. Д. Для этого у меня есть несколько "#define", как в: #define open(a,b,c) JCL_Open(a,b,c) Но когда я компилирую заголовок и связанные файлы.c, я получаю следующее предупре…
20 апр '09 в 05:03
1
ответ
Проблемы с заголовком - проглатывание живым
Я полностью в остроумии: я не могу понять, как мои проблемы зависимости. Я читал бесчисленные посты и блоги и переделывал свой код так много раз, что даже не помню, что почти сработало, а что нет. Я постоянно получаю не только ошибки переопределения…
28 окт '13 в 19:45
4
ответа
C++/SDL проблема двойного включения
Я получаю эту ошибку от компилятора: 1>Linking... 1>main.obj : error LNK2005: "int g_win_flags" (?g_win_flags@@3HA) already defined in init.obj 1>main.obj : error LNK2005: "struct SDL_Surface * g_screen" (?g_screen@@3PAUSDL_Surface@@A) alre…
03 ноя '10 в 18:22
2
ответа
C-заголовочные заголовки используются только в заголовочных файлах, но не в.c файлах. Зачем?
Я уже некоторое время использую элементы защиты в заголовочных файлах, и единственная причина, по которой я понимаю, почему они используются, - включить одноразовое включение этого (заголовочный файл с рассматриваемыми элементами защиты) во время ко…
22 янв '14 в 07:03
2
ответа
Внутренняя и внешняя защита
Я слышал, что вы должны предпочесть писать внутренние включающие охранники вместо внешних включающих охранников. Я искал в Интернете, но не нашел ответа на него. Это фрагмент книги C++ Standards от Herb & Andrei "Стандарты кодирования", в которой по…
11 июн '15 в 18:59
2
ответа
Шаблон C++ и включает охранников
Я относительно новичок в C++, поэтому мой вопрос может быть простым; однако я не могу понять, почему мой код не работает, когда я думал, что должен. Пример кода выглядит следующим образом. //a.h #ifndef A #define A template<class T> class a{ p…
01 окт '14 в 01:12
2
ответа
Настройка include-guard для Eclipse CDT
Я хочу автоматически сгенерировать include-guard, создав новый класс C++ с Eclipse/CDT, но я не нахожу способа изменить ${include_guard_symbol} приписывать. Мое желание - это include-guard с префиксом пространства имен, например: #ifndef NAMSPACE1_N…
27 июл '11 в 13:40
4
ответа
Нужно уточнить на #ifndeF#define
Код, который я работаю, имеет несколько заголовков и исходных файлов для разных классов face.cc, face.hh, cell.cc, cell.hh edge.cc edge.hh и заголовки содержат, как это, #ifndef cellINCLUDED #define cellINCLUDED #ifndef faceINCLUDED #define faceINCL…
25 апр '16 в 09:14
1
ответ
Сгенерировать C++ включить защиту заголовков в atom?
Я ищу атомный пакет, который генерирует C++ include guard в заголовочных файлах.h/.hpp. Пакет должен что-то сделать, например взять существующий заголовочный файл C++ и окружить его содержимое соответствующими строками #ifndeF#define #endif. Если пл…
15 янв '17 в 11:26
1
ответ
Почему в заголовочных файлах Numeric Recipes нет элементов защиты?
Начинающий программист C++ здесь. Я использую исходный код Numeric Recipes (V3) как часть более крупного модулированного проекта C++. Хотя я постараюсь не вдаваться в подробности моей проблемы, мне любопытно, почему эти файлы заголовков NR не содерж…
18 фев '16 в 16:28
1
ответ
ifndef включает охрану в Gnu. Делает разрывы на вложенные условные выражения.
Я пытаюсь реализовать включение охранников в Gnu Make. В этом Makefile первое включение в порядке, а второе - с ошибкой. ifndef INCLUDED INCLUDED = 1 $(info Including) define macro ifneq ($(1),) define inner_macro macro content... endef else define …
13 авг '15 в 17:54