Результаты поиска по запросу "c-preprocessor"

2 ответа

(Я попытаюсь вернуться к этому, чтобы очистить его; я думаю, что там определенно есть некоторые ненужные макросы. У меня не было возможности взглянуть на более широкую проблему, которую вы описываете, поэтому я не уверен, решит ли это это тоже. Может быть, есть и более простой способ решения этой проблемы ... Я не особенно знаком с вариадными макросами. Это чистая предварительная обработка в mcpp.)

аюсь сгенерировать объявление функции с помощью макроса /* goal: generate int f(int a, float b) */ template<typename P> struct ptype; template<typename P> struct ptype<void(P)> { typedef P type; }; #define NAMEe #define COMMAe #define COMMA , ...

3 ответа

 работает только с расширением GNU. Вы знаете, как решить эту проблему для C99?

трюк для создания вариационного макросаFOO(a1, a2, a3,..., an) так что он расширяется доFOOn(a1, a2, a3,..., an) для значенийn в каком заранее выбранном ограниченном диапазоне вы выбираете? Это,FOO(a) следует расширить доFOO1(a), FOO(a, b, c) ...

4 ответа

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

#define T Stack_T typedef struct T *T; что жеT вstruct T значит, тот, который определяется#define или жеtypedef?

ТОП публикаций

2 ответа

) в MSVC, но я даже не уверен в этом.)

интересует, какую цель различные платформы / компиляторы ("реализации") / фреймворки назначают дляCи макрос препроцессора C ++NDEBUG. Cа также стандарт C ++ упоминают это определение только один раз, а именно для управления поведениемassert() ...

3 ответа

 тег.

аюсь выяснить, как я могу объединить#defineбыл бы инт#defineбудет строка с использованиемCПрепроцессор. Мой компилятор - GCC 4.1 на CentOS 5. Решение также должно работать для MinGW. Я хотел бы добавить номер версии в строку, но единственный ...

1 ответ

 определение этих макросов для 0 или 1 - это тоже не то, что вам нужно?

ел бы написать код вCчто-то вроде этого: if(defined(MACRO)) ... else ...но я не мог найти способ сделать это вC, поскольку определенный (MACRO) оператор препроцессора работает только внутри # if. Есть ли способ сделать это? Что мне ...

3 ответа

 тег, потому что я думал, что это не имеет значения для препроцессора. Кажется, это так, хотя.

учил следующую реализацию, чтобы получить число аргументов в макросе с переменным числом аргументов (в настоящее время ограничено 16 аргументами). Однако для VS2010 выход всегда1независимо от того, сколько аргументов передано.С GCC ...

1 ответ

Думаю, я имел в виду что-то менее болезненное, но, похоже, нет.

еспокоило меня в течение некоторого времени, например, если я пытаюсь написать этот код: // find the length of an array #define ARRAY_LENGTH(arr) (sizeof(arr)/sizeof(int)) // declare an array together with a variable containing the array's ...

10 ответов

И этот вопрос включал обоснование того, что FOO не использовался целую вечность.

твуетобщеизвестный [https://stackoverflow.com/questions/4054085/gcc-appending-to-va-args] проблема [http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html]с пустыми аргументами для variadic макросов в C99. пример: #define FOO(...) ...

6 ответов

Как вы упомянули, невозможно иметь #ifdef в #define. Вместо этого вы должны изменить порядок:

аюсь написать что-то вроде этого: #define COV_ON(x) \ #ifdef COVERAGE_TOOL \ _Pragma (COVERAGE #x) #endifЕсть ли способ определитьCOV_ON нравится? Я знаю, что я сделал выше, неправильно, так как я не могу иметь#ifdef внутри #define. (# ...