В чем разница между использованием угловых скобок и использованием кавычек в includeвыражении в языках программирования C и C ++ , как показано ниже? #include <filename> #include "filename"...
В чем разница между использованием угловых скобок и использованием кавычек в includeвыражении в языках программирования C и C ++ , как показано ниже? #include <filename> #include "filename"...
Почему препроцессор C в GCC интерпретирует слово linux(маленькие буквы) как константу 1? test.c: #include <stdio.h> int main(void) { int linux = 5; return 0; } Результат $ gcc -E test.c(остановка после этапа предварительной обработки): .... int main(void) { int 1 = 5; return 0; } Что,...
Во многих макросах C / C ++ я вижу код макроса, заключенный в нечто вроде бессмысленного do whileцикла. Вот примеры. #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else Я не вижу, что do whileделает. Почему бы просто не написать это без этого? #define FOO(X) f(X);...
В C / C ++ / Objective C вы можете определить макрос, используя препроцессоры компилятора. Кроме того, вы можете включать / исключать некоторые части кода, используя препроцессоры компилятора. #ifdef DEBUG // Debug-only code #endif Есть ли подобное решение в...
Я видел код, как это обычно в начале заголовочных файлов: #ifndef HEADERFILE_H #define HEADERFILE_H И в конце файла #endif Какова цель
Что лучше использовать и почему в большом проекте: #if DEBUG public void SetPrivateValue(int value) { ... } #endif или [System.Diagnostics.Conditional("DEBUG")] public void SetPrivateValue(int value) { ... }
Я просматриваю некоторые примечания к курсу Си, и каждый исходный файл программы на Си начинается с одного #в первой строке программы. Затем есть пустые строки, и после этого другие вещи, сопровождаемые mainфункцией. В чем причина #? (Сейчас истек срок, и я не могу спросить парня.) Вот пример: #...
Я работаю над проектом, в котором много унаследованного кода на Си . Мы начали писать на C ++ с намерением в конечном итоге также преобразовать устаревший код. Я немного озадачен тем, как взаимодействуют C и C ++. Я понимаю , что обертывание C кода extern "C"на C ++ компилятор не будет искажать C...
Где MINи MAXопределены в C, если вообще? Каков наилучший способ реализовать их как можно более обобщенно и безопасно? (Расширения / встроенные компиляторы для основных компиляторов...
Как определить переменную препроцессора через CMake? Эквивалентный код будет #define
На этот вопрос есть ответы на Переполнение стека на русском : Как узнать список всех определенных макросов? Есть ли способ для gcc / g ++ выгружать свои определения препроцессора из командной строки? Я имею в виду такие вещи , как __GNUC__, __STDC__и так...
Я делаю приложение, которое обрабатывает конфиденциальные данные кредитной карты. Если мой код работает в режиме отладки, я хочу записать эти данные в консоль и сделать несколько дампов файлов. Однако в окончательной версии магазина приложений (то есть, когда он работает в режиме выпуска) важно,...
Я пишу свою первую страницу бритвы сегодня, не могу понять, как войти #if debug #else #endif Как я могу ввести препроцессор в
Мне было интересно, может ли кто-нибудь объяснить мне, что #pragma packделает оператор препроцессора, и, что более важно, почему он захочет его использовать. Я проверил страницу MSDN , которая дала некоторое представление, но я надеялся услышать больше от людей с опытом. Я видел это в коде раньше,...
Попытка создать макрос, который можно использовать для отладочных сообщений печати, когда определен DEBUG, например, следующий псевдокод: #define DEBUG 1 #define debug_print(args ...) if (DEBUG) fprintf(stderr, args) Как это достигается с помощью...
Допустим, у меня есть исходный файл со многими директивами препроцессора. Можно ли посмотреть, как это выглядит после того, как препроцессор закончил с
Я хочу написать макрос на C, который принимает любое количество параметров, а не конкретное число пример: #define macro( X ) something_complicated( whatever( X ) ) где Xлюбое количество параметров Мне это нужно, потому что whateverон перегружен и может вызываться с 2 или 4 параметрами. Я попытался...
Мне нужен мой код, чтобы делать разные вещи в зависимости от операционной системы, в которой он компилируется. Я ищу что-то вроде этого: #ifdef OSisWindows // do Windows-specific stuff #else // do Unix-specific stuff #endif Есть ли способ сделать это? Есть ли лучший способ сделать то же...
В чем причина следующего предупреждения в некоторых компиляторах C ++? Нет новой строки в конце файла Почему у меня должна быть пустая строка в конце файла источника /...
У меня есть два макроса FOO2и FOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... Я хочу определить новый макрос FOOследующим образом: #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) Но это не работает, потому что макросы не перегружают количество аргументов. Без изменения FOO2и FOO3,...