0
ответов

对C或C ++源文件进行部分预处理吗?

是否可以对C或C ++源文件进行部分预处理? “部分预处理”是指扩展一些但不是全部的#include指令。 例如,我想扩展#includes ...
вопрос задан: 14 March 2016 19:58
0
ответов

Область действия препроцессора #define в C

Область действия #define - до конца файла. Но с чего это начинается. В основном я пробовал следующий код. #include #include #define pi 3.14 void fun (); ...
вопрос задан: 14 March 2016 19:56
0
ответов

Работает ли #ifdef (или другие директивы препроцессора) для объявлений функций (для проверки работоспособности) Существование)?

Почему следующий код работает не так, как ожидалось? void foobar (int); #ifndef foobar printf («foobar существует»); #endif Сообщение выводится всегда; очевидно, он не может обнаружить наличие ...
вопрос задан: 14 March 2016 19:54
0
ответов

sizeof () не выполняется препроцессором

#if sizeof (int)! = 4 / * что-то сделать * / Использование sizeof внутри #if не работает, а внутри #define работает, почему? #define size (x) sizeof (x) / sizeof (x [0]) / * работает * /
вопрос задан: 13 March 2016 19:07
0
ответов

Для чего используется макрос препроцессора NDEBUG (на разных платформах)?

Меня интересует, какое назначение различные платформы / компиляторы ("реализации") / фреймворки назначают C и макрос препроцессора C ++ NDEBUG. В стандарте C, а также в стандарте C ++ упоминается только ...
вопрос задан: 12 March 2016 18:33
0
ответов

Препроцессор C избавляется от __align__ и __attribute __

Я работаю с примитивным синтаксическим анализатором C, который не обрабатывает директиву препроцессора. Я могу без проблем предварительно обработать большую часть заголовка с помощью переключателя -E. В последнее время я обнаружил случаи, когда атрибут .
вопрос задан: 12 March 2016 17:53
0
ответов

Есть ли способ, чтобы препроцессор C разрешал макросы в операторе #error?

Как и в заголовке. Я хочу использовать макрос препроцессора в тексте оператора #error: #define SOME_MACRO 1 #if SOME_MACRO! = 0 #error "SOME_MACRO не было 0; это было [значение SOME_MACRO]" ...
вопрос задан: 11 March 2016 20:35
0
ответов

Когда вам нужно использовать #include в c ++

Я занимаюсь программированием некоторое время, и кое-что я Я до сих пор так и не понял, когда именно нужно что-то # включать. Я знаю, что на всякий случай вы можете делать это всякий раз, когда что-то используете ...
вопрос задан: 11 March 2016 11:05
0
ответов

MSVC не раскрывает __VA_ARGS__ правильно

Обратите внимание на этот код: #define F (x, ...) X = x и VA_ARGS = __VA_ARGS__ #define G (...) F (__ VA_ARGS__) F (1, 2, 3) G (1, 2, 3) Ожидаемый результат - X = 1 и VA_ARGS = 2, 3 для обоих макросов, и это ...
вопрос задан: 11 March 2016 11:03
0
ответов

Сцепление препроцессора C вне #define

Мне было интересно, почему мы не можем использовать конкатенацию токенов вне определений. Это происходит, когда я хочу получить их одновременно: бесконфликтное именование в библиотеке (или для «обобщений») отладка; когда ...
вопрос задан: 10 March 2016 21:07
0
ответов

Составные литералы и макросы, похожие на функции: ошибка в gcc или стандарте C?

В C99 у нас есть составные литералы, и их можно передавать функциям, как в: f ((int [2]) {1, 2}); Однако, если f не функция, а скорее функционально-подобный макрос, gcc блокирует это из-за ...
вопрос задан: 10 March 2016 12:10
0
ответов

Как надежно обнаружить Mac OS X, iOS, Linux, Windows в препроцессоре C? [дубликат]

Если есть кроссплатформенный код C / C ++, который нужно скомпилировать в Mac OS X, iOS, Linux, Windows, как я могу надежно обнаружить их в процессе препроцессора?
вопрос задан: 10 March 2016 01:13
0
ответов

Как удалить избыточный параметр макроса

Некоторое время назад я написал набор X-макросов для крупного проекта. Мне нужно было поддерживать согласованные списки как строк, так и перечисляемых ссылок / хеш-значений / функций обратного вызова и т. Д. Вот что…
вопрос задан: 9 March 2016 21:57
0
ответов

Разница между директивой препроцессора #if и нормальным if

В чем разница между директивой препроцессора #if и нормальной, если в C? Я новичок в C.
вопрос задан: 9 March 2016 20:50
0
ответов

Сгенерировать случайное число с помощью препроцессора C.

Я хотел бы сгенерировать случайное число или строку с помощью препроцессора C ... гм ... Я даже не знаю, возможно ли это, но я пытаюсь создавать переменные на лету (строки могут быть полезны ...
вопрос задан: 9 March 2016 20:49
0
ответов

Препроцессор C, рекурсивные макросы

Почему M (0) и N (0) дают разные результаты? #define CAT_I (a, b) a ## b #define CAT(a, b) CAT_I(a, b) #define M_0 CAT(x, y) #define M_1 whatever_else #define M(a) CAT(M_, a) M(0); // ...
вопрос задан: 9 March 2016 20:10
0
ответов

Что означает # при форматировании с использованием% s

Я наткнулся на этот пример утверждение, и мне было интересно, для чего нужен #: #define ASSERT (x) if (! (x)) {\ int * p = NULL; \ DBGPRINTF ("Ошибка утверждения: [% s] \ r \ n Остановка.", #X); \ ...
вопрос задан: 9 March 2016 15:25
0
ответов

Допустима ли обратная косая черта в директивах C и C ++ #include?

Обычно используются два разделителя пути: прямая косая черта Unix и обратная косая черта DOS. Покойся с миром, толстая кишка Classic Mac. Если они используются в директиве #include, равны ли они по правилам C ++ ...
вопрос задан: 9 March 2016 11:59
0
ответов

Стрлен в препроцессоре C?

Возможно ли реализовать strlen () в препроцессоре C? Дано: #define MYSTRING "bob" Есть некоторый макрос препроцессора X, который позволил бы мне сказать: #define MYSTRING_LEN X (MYSTRING)
вопрос задан: 8 March 2016 17:38
0
ответов

Как мне создать мои собственные определенные константы на основе «Configuration Manager»?

Когда я выбираю " Отладка », константа DEBUG активна. Когда я выбираю конфигурацию «Release», константа DEBUG неактивна. Как я могу создать свои собственные конфигурации, чтобы они ...
вопрос задан: 8 March 2016 15:10
0
ответов

В чем разница между макросом и функцией в C? [Closed]

В чем разница между макросом и функцией в C? Назовите одно приложение, в котором я могу использовать макросы и функции?
вопрос задан: 7 March 2016 20:37
0
ответов

макрос зависимости от макроса

Можно ли сделать что-то вроде этого: #define F (x) \ #ifdef DOUBLE \ 2 * x \ #else \ x \ #endif так что когда я использую F, то, до чего он расширяется, зависит от того, будет ли макрос ...
вопрос задан: 7 March 2016 20:35
0
ответов

(Странно?) Поведение препроцессора GCC

Думаю, большинство из вас, кто работал с C / C ++, интуитивно понимает, как работает препроцессор (более или менее). Я так думал до сегодняшнего дня, но моя интуиция не оправдалась. Вот история: Сегодня я ...
вопрос задан: 5 March 2016 22:01
0
ответов

Преимущество макросов над встроенными в C ++

Мы знаем, что встроенные методы хороши, поскольку они проверяются компилятором, и одна и та же операция (например, ++ x) не оценивается более одного раза при передаче в качестве аргумента по сравнению с макросами. Но в ...
вопрос задан: 5 March 2016 21:25
0
ответов

Есть ли ограничение на количество #defines, которые могут обрабатывать препроцессоры gcc и VC ++?

В При обсуждении возможностей дизайна для проекта, который имеет очень большое количество констант и битовых шаблонов, которые необходимо определить, возник вопрос о том, сколько #defines может обработать стандартный компилятор? . ..
вопрос задан: 4 March 2016 17:27
0
ответов

Результат Objective-C из статического метода, сохраненный в переменной экземпляра класса, дающей «EXC_BAD_ACCESS» при использовании

Я пытаюсь сохранить строку md5 как переменную экземпляра класса вместо фактический пароль. У меня есть статическая функция, которая вернет строку md5, которую я пытаюсь сохранить в экземпляре ...
вопрос задан: 4 March 2016 15:11
0
ответов

Как я могу сгенерировать список значений #define из кода C?

У меня есть код с множеством сложных кодов ошибок #define которые нелегко расшифровать, поскольку они имеют несколько уровней вложенности. Есть ли какой-нибудь элегантный способ получить список #define с помощью ...
вопрос задан: 3 March 2016 22:29
0
ответов

Могу ли я добавить в макрос препроцессора?

Есть ли способ в стандартном C - или с расширениями GNU - добавить что-то в определение макроса? Например, учитывая макрос, определенный как #define List foo bar Могу ли я добавить bas, чтобы его список расширялся, как если бы я ...
вопрос задан: 3 March 2016 22:27
0
ответов

Что эквивалентно `cpp -dD` для clang?

Если я хочу узнать, какой неявный препроцессор определяет gcc дает мне, я могу набрать эхо "" | cpp -dD. Кто-нибудь знает, что эквивалентно clang?
вопрос задан: 3 March 2016 22:26
0
ответов

Обработка одних директив, оставляя другие

Я использую, чтобы пройти через C-код с большим количеством директив #ifdef, #if и #endif, которые поддерживают некоторую часть активной, а некоторую часть неактивной в зависимости от того, определены некоторые переменные или нет. Я искал ...
вопрос задан: 3 March 2016 10:28