В чем разница между использованием угловых скобок и использованием кавычек в includeвыражении в языках программирования C и C ++ , как показано ниже? #include <filename> #include "filename"...
Текстовый макропроцессор, применяемый перед компиляцией программ на языках C и C ++. Этот тег также можно использовать для вопросов о других компиляторах / языках, которые являются производными или имеют идентичные функции, такие как #directives в Objective-C или C #.
В чем разница между использованием угловых скобок и использованием кавычек в 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);...
Я видел код, как это обычно в начале заголовочных файлов: #ifndef HEADERFILE_H #define HEADERFILE_H И в конце файла #endif Какова цель
Я просматриваю некоторые примечания к курсу Си, и каждый исходный файл программы на Си начинается с одного #в первой строке программы. Затем есть пустые строки, и после этого другие вещи, сопровождаемые mainфункцией. В чем причина #? (Сейчас истек срок, и я не могу спросить парня.) Вот пример: #...
Я работаю над проектом, в котором много унаследованного кода на Си . Мы начали писать на C ++ с намерением в конечном итоге также преобразовать устаревший код. Я немного озадачен тем, как взаимодействуют C и C ++. Я понимаю , что обертывание C кода extern "C"на C ++ компилятор не будет искажать C...
Где MINи MAXопределены в C, если вообще? Каков наилучший способ реализовать их как можно более обобщенно и безопасно? (Расширения / встроенные компиляторы для основных компиляторов...
Как определить переменную препроцессора через CMake? Эквивалентный код будет #define
На этот вопрос есть ответы на Переполнение стека на русском : Как узнать список всех определенных макросов? Есть ли способ для gcc / g ++ выгружать свои определения препроцессора из командной строки? Я имею в виду такие вещи , как __GNUC__, __STDC__и так...
Мне было интересно, может ли кто-нибудь объяснить мне, что #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,...
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 2 года назад . Улучшить этот вопрос C препроцессор оправданно...
В отличие от Objective-C, Swift не имеет препроцессора, поэтому есть ли способ вручную исключать членов класса? Я ищу что-то похожее на это: -(id)method
Как я могу добавить условие 'или' в #ifdef? Я пытался: #ifdef CONDITION1 || CONDITION2 #endif Это не
Предположив , что ваш компилятор C ++ поддерживает их, есть ли конкретная причина не в использовании __FILE__, __LINE__и __FUNCTION__для регистрации и целей отладки? В первую очередь меня интересует предоставление пользователю вводящих в заблуждение данных - например, сообщение о неправильном...