Описание тега c-preprocessor
Текстовый макропроцессор, применяемый до компиляции программ на языках C и C++. Этот тег также можно использовать для вопросов о других компиляторах / языках, производных от или имеющих идентичные функции, таких как #directives в Objective-C или C#.
3
ответа
Объявления функций и неразрешенный внешний
Я смотрю на огромную старую программу на C и преобразую ее в C++ (для которой я новичок). Существует множество сложных взломов препроцессоров, связанных с тем фактом, что программа должна работать на разных платформах в разных конфигурациях. В одном…
01 окт '09 в 08:30
1
ответ
Не может установить границы даже с макросом NS_BUILD_32_LIKE_64
Мой проект компилируется и работает нормально в режиме отладки, но когда я переключаюсь на компиляцию выпуска x86_64, я получаю ошибки компилятора при попытках setBounds с использованием NSRect. (Ошибки читаются как "несовместимый тип для аргумента …
23 июн '11 в 16:31
1
ответ
Использование константы для объявления массива элемента
Можно ли использовать что-то подобное в Objective-C: #define number_of_items 10 а затем использовать его как: int arr[number_of_items];
05 апр '12 в 08:20
0
ответов
GCC Неправильная предварительная обработка escape-последовательностей, таких как \n
Я пробовал печатать текст через printf Команда, скомпилированная через GCC MINGW, наблюдала странный вывод следующим образом Ввод в C: printf("press input key\n"); выход: ПРОТИВ если тот же текст напечатан без \n но с %c он работает нормально следую…
30 июн '16 в 06:24
2
ответа
Встроенный оператор if в макросе #define
Я читал статью, где макрос #define был сделан так: #define TEST(level) if (level > 2) ; else std::cout который затем может быть использован в коде так: Test(1) << 3; Test(3) << 4; У меня сложилось впечатление, что если вы написали TES…
15 ноя '12 в 04:15
4
ответа
Цель _never_executed()?
Я видел этот макрос, определенный ранее, но никогда не знал его цели. Кто-нибудь может пролить свет на это?
16 окт '08 в 12:06
1
ответ
Varargs `ELEM` макрос для использования с C
Мне было интересно, если есть ELEM макрос сравнения общего пользования, где: (v == a || v == b) Можно заменить на: ELEM(v, a, b) Конечно, это можно сделать с помощью макроса, #define ELEM(v, a, b) (((v) == (a)) || ((v) == (b))) Однако тогда вам в ко…
19 июл '14 в 04:37
1
ответ
Где законно указывать директиву препроцессора?
Я пытаюсь написать конечный автомат, который обрабатывает исходный файл и разбивает его на разделы, которые являются либо бизнесом компилятора, либо бизнесом препроцессора. Не глубокий обход, я просто ищу разделы, которые являются либо комментариями…
09 июн '13 в 21:23
6
ответов
Как я могу создать список значений #define из кода C?
У меня есть код, который содержит много сложных кодов ошибок #define, которые нелегко декодировать, поскольку они вложены в несколько уровней. Есть ли какой-нибудь элегантный способ получить список #defines с их окончательными числовыми значениями (…
30 дек '10 в 17:46
1
ответ
Как использовать #ifdef внутри #define
Есть ли способ, которым я могу достичь этого #define MAC(VAL , num) #ifndef VAL \ int #VAL = num ; \ #define VAL \ #else \ #VAL = num ; \ #endif \ Я хочу определить VAL только один раз
24 май '16 в 15:00
2
ответа
Влияет ли встроенная функция без кода на выводимый двоичный файл?
Короче говоря, я пытаюсь сделать так, чтобы отладочная версия моей программы выводила дополнительную информацию. Но вместо того, чтобы проверять #IFDEF DEBUG ... #ENDIF в середине кода высокого уровня, я бы предпочел сделать что-то вроде этого Debug…
23 янв '14 в 16:25
0
ответов
Удобный способ настройки нестандартных параметров шаблона
Я пишу общую структуру, которая в значительной степени опирается на шаблоны. Внешний скрипт Python считывает файл конфигурации и компилирует платформу с символами препроцессора на основе конфигурации. Предположим, код: #include "all_symbols.h" // ha…
28 мар '16 в 06:26
1
ответ
Xcode breakpoint при использовании fstream
Я обычно использую VS, но я решил попробовать Xcode. У меня проблемы с открытием файлов в Xcode. Файл существует, и я установил в рабочем каталоге каталог, в котором находятся файлы.cpp,.h и.txt. Должен ли я повозиться с препроцессором? Что мне здес…
15 май '15 в 22:54
1
ответ
Оператор sizeof в директивах #define
Я проверял чей-то код и столкнулся с этим: #else //If not in Debug mode #define LOG_WARNING(str) do { (void)sizeof(str); } while(0) #define LOG_INFO(str) do { (void)sizeof(str); } while(0) // ... More #define directives #endif По-видимому, do { (voi…
06 янв '15 в 14:06
2
ответа
Можно ли зашифровать макрос C, который содержит запятую?
Скажи, что у меня есть это: #define CAKE , something и результат, который я хочу, ", something", Это можно сделать? Следующее не работает в gcc: #define MAKE_STRING(x) #x #define STRING(x) MAKE_STRING(x) STRING(CAKE) Компилятор считает, что я переда…
21 мар '14 в 05:48
0
ответов
Макро-функция препроцессора, которая позволяет расширять библиотеку GUI
Я пытаюсь создать макрос-функцию препроцессора, которая регистрирует функции обратного вызова для моей собственной библиотеки графического интерфейса, которую я делаю. Библиотека предназначена для легкого расширения третьими лицами с помощью функции…
11 фев '13 в 09:13
1
ответ
Директива препроцессора для повторяющихся блоков кода (с условием)
Есть ли способ в C++ для реализации концепции, как следующий псевдокод? #pragma REPEAT for (;;) { // code block #1 #pragma REPEAT_CONDITION(a==1) // code #end_pragma // code block #2 } #end_pragma Который будет скомпилирован как-то так: if (a == 1) …
02 апр '14 в 02:08
3
ответа
Условный #include в C
Есть ли способ сделать условное включение с препроцессором c? У меня есть "библиотека" инструментов (Tools.c, Tools.h), которыми пользуются разные команды. Эта библиотека зависит от второй, предоставляющей XML-возможности. Давайте назовем это одним …
07 сен '12 в 08:32
2
ответа
Сбой компиляции по назначению - Использование исходного кода текущего проекта
Я использую источники проекта, который постоянно развивается и постоянно меняется. В конкретном сценарии я должен изменить источники проекта, чтобы адаптировать его к своим потребностям. Я хочу создать определение (или набор определений), которое бу…
17 июл '14 в 19:32
2
ответа
Если в исходных строках C++0x отменен сплайсинг строки CPP, требуется ли соответствующая реализация для сохранения исходной последовательности новой строки?
В последней версии C++0x, n3126, говорится: Каждый экземпляр символа обратной косой черты (\), за которым сразу следует символ новой строки, удаляется, объединяя физические исходные строки для формирования логических исходных строк. ... Внутри r-cha…
27 дек '10 в 17:27