Результаты поиска по запросу "c-preprocessor"
В конечном итоге я выбрал ответ Трэвиса, потому что его факторы еще более значимы, хотя, возможно, именно он был вдохновлен этим.
тавь, что у меня естьX Macro [https://en.wikipedia.org/wiki/X_Macro]для списка элементов определено что-то вроде этого: #define X_MACRO(FN) \ FN(foo) \ FN(bar) \ FN(zip)Это прекрасно работает, и я могу вызвать его, чтобы сгенерировать один и тот ...
- Я оценил Boost три раза. Он не может пройти оценку ... Большинству сообщений об ошибках повезло, если их признали. Отсутствие признания указывает на более глубокие проблемы в процессе разработки. Я считаю, что макросы препроцессора и встроенные в C ++ стандартные библиотеки являются более безопасным выбором.
у кроссплатформенный код, который должен компилироваться в Linux, Windows, Mac OS. На окнах я должен поддерживать визуальную студию и mingw. Есть несколько частей кода, специфичного для платформы, который я должен поместить в#ifdef .. #endif ...
Действительно, я проверял это и с людьми на работе. Очевидно, что GCC со вкусом PS3 не будет расширять макрос должным образом, если между оператором и операндами не будет пробелов.
у это не работает? 0. #define CONCAT(x, y) x ## y 1. 2. #define VAR_LINE(x) \ 3. int CONCAT(_anonymous, __LINE__) = x 4. 5. #define VAR_LINE2(x) \ 6. int _anonymous ## x = 1 7. 8. int main() 9. { 10. VAR_LINE(1); 11. VAR_LINE(1); ...
Нет ли синтаксической ошибки? Следует printf («один», «два» и «% s. \ N», «три»); быть действительным кодом?
Посмотрите на этот код: #include <stdio.h> #define _ONE "one" #define _TWO_AND ", two and " int main() { const char THREE[6] = "three" ; printf(_ONE _TWO_AND "%s.\n", THREE ); return 0; }printf эффективно: printf("one" ", two and " "%s.\n", ...
Не угадай ...
орое время назад я обнаружил (довольно древний) компилятор C, который сканировал макросы таким образом (псевдокод): if line.startswith("#include") or line.startswith("#define"): ..... Какой вид поднял вопрос для меня, где макросы действительно ...
Можно ли перебирать аргументы в вариационных макросах?
Мне было интересно, можно ли перебирать аргументы, передаваемые в variadic макрос в C99 или используя какие-либо расширения GCC? Например, Можно ли написать общий макрос, который принимает структуру и ее поля передаются в качестве аргументов и ...
stackoverflow.com/questions/3030099/c-c-pragma-in-define-macro/...
ли что-то вроде оператора ANSI C_Pragma в Visual C ++? Например, я пытаюсь определить следующий макрос: #ifdef _OPENMP #define PRAGMA_IF_OPENMP(x) _Pragma (#x) #else // #ifdef _OPENMP #define PRAGMA_IF_OPENMP(x) #endif // #ifdef _OPENMPТак что ...
Идентификатор _ _ VA_ARGS _ _ должен присутствовать только в списке замены функционально-подобного макроса, который использует многоточие в параметрах.
тладочных сборок я обычно использую Clang, так как он лучше форматирует предупреждения и ошибки и немного облегчает их отслеживание и исправление. Но недавно после добавления макроса с переменными аргументами Кланг сказал мне следующее (из ...
Препроцессор C для разделения «int x» на int & x
Мне нужно иметь возможность получить следующее: #define MY_MACRO(PARAM1,PARAM2) \ MY_OTHER_MACRO(TYPENAME_OF(PARAM1),PARAMNAME_OF(PARAM1));\ MY_OTHER_MACRO(TYPENAME_OF(PARAM2),PARAMNAME_OF(PARAM2));\вызывать MY_MACRO(int x,char ...
30
то у меня есть, и мне интересно, как это работает и что на самом деле делает. #define NUM 5 #define FTIMES(x)(x*5) int main(void) { int j = 1; printf("%d %d\n", FTIMES(j+5), FTIMES((j+5))); }Выдает два целых числа: 26 и 30. Как оно это делает?