0
ответов

Зачем использовать #включать _next в проект?

Чтобы процитировать документацию iOS по заголовкам Wrapper:#include _next не различает включение и «file», а также не проверяет, имеет ли указанный вами файл то же имя, что и...
вопрос задан: 25 January 2015 09:39
0
ответов

Должны ли инструкции препроцессора находиться в начале строки?

Некоторое время назад я обнаружил (довольно древний) компилятор C, который сканирует макросы таким образом (псевдокод): if line .startswith ("# include") или line.startswith ("# define"): ... .. Какого рода ...
вопрос задан: 11 January 2015 00:34
0
ответов

Старый компилятор C блокирует #ifndef #define

Я пытаюсь перенести относительно современный код C на более старый компилятор. Кажется, что этот компилятор (DICE) задыхается от первого файла заголовка и первого появления этой идиомы: #ifndef SOMETHING # ...
вопрос задан: 2 November 2014 21:40
0
ответов

Препроцессоры C и порядок операций

Я изучаю C, но не понимаю этого: #define square (x) x * x a = square(2+3) //a = 11 When this is run, why does a end up being 11?
вопрос задан: 2 November 2014 19:01
0
ответов

Реализация препроцессора C

, многое было написано в течение многих лет на реализации парсеров, но Cre Preprocessor не совсем такой же, как Любая из этапов типичного анализатора и его реализации, несомненно, имеет свою долю ...
вопрос задан: 2 November 2014 18:59
0
ответов

Есть ли способ избежать директивы препроцессора C?

Я пытаюсь сделать так, чтобы на выходе препроцессора C были директивы #ifdef, #else и #endif. То есть я хотел бы каким-то образом «избежать» директивы, чтобы вывод препроцессора включал ...
вопрос задан: 2 November 2014 18:59
0
ответов

Условная компиляция в зависимости от аргумента функции?

Я искал повсюду, и информация в сети, похоже, предполагает, что условная компиляция с использованием препроцессора работает исключительно с переменными среды. , Я хотел бы иметь ...
вопрос задан: 2 November 2014 18:59
0
ответов

Почему NDEBUG вместо RELEASE?

Стандартный макрос утверждения C отключен, если макрос NDEBUG определен, что означает «Без отладки». Это приводит к действительно ужасным двойным отрицательным случаям, таким как #ifndef NDEBUG // DebuggingCode #endif. Похоже ...
вопрос задан: 2 November 2014 18:59
0
ответов

Функциональный макрос, который возвращает ноль и может использоваться как оператор

У нас есть функциональный макрос #define FOO(arg) foo(arg) с int foo(const char* bar);. Когда NDEBUG определен, FOO определяется как #define FOO(arg) 0, однако это вызывает много предупреждений компилятора, потому что в ...
вопрос задан: 2 November 2014 18:59
0
ответов

Возможно ли, чтобы макрос оценивал несколько аргументов другого?

Я хотел бы сделать что-то вроде этого: #define NEED3ARGS(a1,a2,a3) ( "[" #a1 " + " #a2 " + " #a3 "]" ) #define MULTIARG() ARG1, ARG2, ARG3 NEED3ARGS( MULTIARG() ) И я ожидал, что он выведет...
вопрос задан: 2 November 2014 18:59
0
ответов

Перегрузка макроса по количеству аргументов

У меня есть два макроса FOO2 и FOO3:#определить FOO2 (x,y )... #определить FOO3 (x,y,z )... Я хочу определить новый макрос FOO следующим образом:#определить FOO (x,y )FOO2 (x,y) #определить FOO (x,y,z )FOO3 (x,y,z )Но это не...
вопрос задан: 2 November 2014 18:56
0
ответов

Специализация макроса препроцессора C на основе аргумента

Возможно ли, чтобы один макрос расширялся по-разному для одного конкретного значения аргумента и по-разному для всех остальных аргументов? Скажем, я определяю текущего пользователя:#определить ТЕКУЩИЙ _ПОЛЬЗОВАТЕЛЬ john _smith Что я...
вопрос задан: 2 November 2014 18:56
0
ответов

<: невозможно начать список аргументов шаблона

Я получаю сообщение об ошибке <: не могу начать список аргументов шаблона на компиляторе g ++. Шаблон кода class SomeClass; class Class; SomeClass <:: Class> * cls;
вопрос задан: 22 August 2014 19:13
0
ответов

Что означает #define без замены в C / C ++? [Дубликат]

Я столкнулся с некоторыми кодами, такими как: #define MY_IDENTIFIER void someCode () {... MY_IDENTIFIER ...} Что делает верхний код?
вопрос задан: 30 April 2014 08:19
0
ответов

Повторное использование макроса C в нескольких файлах

У меня есть несколько часто используемых макросов, которые повсеместно необходимы практически во всех C файл я пишу. В настоящее время я копирую их в каждый файл, в котором они мне нужны. Вероятно, это плохая идея, потому что я...
вопрос задан: 31 January 2014 23:42
0
ответов

Почему препроцессор C интерпретирует слово & ldquo; linux & rdquo; как константа & ldquo; 1 & rdquo ;?

Почему препроцессор C в GCC интерпретирует слово linux (маленькие буквы) как константу 1? test.c: #include < stdio.h > int main (void) {int linux = 5; вернуть 0; } Результат $ ...
вопрос задан: 9 October 2013 13:07
0
ответов

расширение макропеременной внутри строки в кавычках

Я нашел две разные вещи в двух хорошо известных книгах на c, первый «Формальные параметры не заменяются в строке в кавычках в раскрытии макросов» - K&R c language page 76, второй - это ...
вопрос задан: 15 April 2013 17:35
0
ответов

c / c ++ (VS2008) заключайте параметр макроса в кавычки

Для большого количества вызовов функций в приложении C, которое требует некоторой степени отладки, я хотел добавить макрос, чтобы облегчить набор текста что я должен был сделать. прямо сейчас я вызываю такую ​​функцию: aDebugFunction (& ...
вопрос задан: 29 January 2013 15:03
0
ответов

Разница между макросом и препроцессором

Насколько я понимаю, #define blah 8 is a macro. В то время как #— это предварительная директива процессора -. Можем ли мы сказать #include, #if, #ifdef и т. д. тоже макросы, или они называются как-то иначе? Или это...
вопрос задан: 14 August 2012 18:07
0
ответов

Стандартно ли для #считать неопределенные символические константы равными 0?

В этой c-программе #include внутренний основной (){ #if UnDefinedSymbolicConstant==0 printf ("UnDefinedSymbolicConstant равно 0\n" ); #иначе...
вопрос задан: 4 July 2012 13:19
0
ответов

Поведение __LINE__ во встроенных функциях

У меня есть макрос, который передает номер строки и имя файла обработчику ошибок: #define SYSTEM_FAILURE (код_ошибки, комментарий) \ System_Failure( (код_ошибки), (комментарий), __LINE__, __FILE__); Как будет...
вопрос задан: 26 June 2012 19:03
0
ответов

Нежелательное расширение макроса препроцессора C

Я использую среду модульного тестирования, которая использует макрос REQUIRE для выполнения утверждений. Упрощенно, макрос работает следующим образом: #define REQUIRE(выражение) INTERNAL_REQUIRE(выражение, "REQUIRE" ) Который ...
вопрос задан: 19 June 2012 17:38
0
ответов

О ## препроцессоре в C

При заданном #define cat(x,y) x##y Вызов cat(a,1) возвращает a1, но cat(cat(1,2),3) не определено. Однако, если я также определю #define xcat(x,y) cat(x,y), то результатом xcat(xcat(1,2),3) станет 123. ...
вопрос задан: 14 June 2012 20:10
0
ответов

Определение препроцессора Objective-C, динамическое объявление C-String в NSString

Я пытаюсь создать определение макроса, которое может выдавать C++ или Objective-C в зависимости от контекста, но не может легко построить NSString внутри макроса. Версия C++ проста, потому что использует...
вопрос задан: 6 June 2012 19:46
0
ответов

Как проверить тип во время компиляции

Я даю возможность компилировать программа с типом float или double, но есть проблема: мне нужно вручную установить либо GL_FLOAT, либо GL_DOUBLE, потому что я не знаю, как мне сделать следующее: ...
вопрос задан: 6 June 2012 12:01
0
ответов

Где хранятся макросы?

Если я использую макросы в своем коде на C, такие как #define var 10, то где именно они хранятся в пространстве, выделенном для процесса ядром? В куче или BSS или глобальные данные? Или это просто текст...
вопрос задан: 30 May 2012 23:42
0
ответов

Ошибки SWIG из-за директивы препроцессора

У нас есть поставщик, который предоставил нам библиотеку C++ и заголовки, которые я пытаюсь обернуть с помощью SWIG. Похоже, они наполовину перемудрили с директивами препроцессора: // top.h #...
вопрос задан: 25 May 2012 19:39
0
ответов

В чем польза раздела кода прагмы и раздела данных?

Что именно произойдет с сегментом данных и текстовым сегментом, если я использую следующие две строки в файле исходного кода c? #pragma CODE_SECTION(func1, "Sec1") #pragma DATA_SECTION(globalvar1, "Sec2")
вопрос задан: 15 March 2012 10:04
0
ответов

Утверждение во время компиляции для размеров типов данных

Я хотел бы выполнить во время компиляции проверку размеров типов данных в проекте C / C ++ и выявить ошибку при неожиданных несоответствиях. Простой #if sizeof foo_t! = Sizeof bar_t не компилируется - утверждает, что sizeof ...
вопрос задан: 2 February 2012 01:45
0
ответов

Запускать только препроцессор, но только для определенных операторов

У меня есть несколько операторов отладки, определенных в программе, и я хочу иметь возможность сделать копию исходного кода без этих операторов. Чтобы сделать это, я сначала посмотрел на командную строку GCC -E ...
вопрос задан: 3 January 2012 13:57