Вопросы с тегом 'c-preprocessor'
Шаг предварительной обработки макросов языков программирования C и С++.
Этот тег также можно использовать для вопросов о других компиляторах/языках, полученных из или имеющих идентичные функции, такие как #directives в Objective-C или С#.
35
В чем разница между #include <filename> и #include "filename"?
В языках программирования C и С++ в чем разница между использованием угловых скобок и использованием кавычек в инструкции include следующим образом?
#include <filename>
#include "filename"
22 авг. '08 в 1:40
5
Почему препроцессор C интерпретирует слово "linux" как константу "1"?
Почему препроцессор C в GCC интерпретирует слово linux (маленькие буквы) как константу 1?
test.c:
#include <stdio.h>
int main(void)
{
int linux = 5;
return 0;
}
Результат $ gcc -E test.c (остановка после этапа предварительно...
06 окт. '13 в 16:09
11
Зачем использовать явно бессмысленные инструкции do-while и if-else в макросах?
Во многих макросах 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. Почему б...
30 сент. '08 в 17:36
3
Почему #ifndef и #define используются в файлах заголовков С++?
Я видел такой код, как обычно, в начале файлов заголовков:
#ifndef HEADERFILE_H
#define HEADERFILE_H
И в конце файла
#endif
Какова цель этого?
31 окт. '09 в 10:06
3
Почему все файлы C, написанные моим лектором, начинаются с одного # в первой строке?
Я просматриваю некоторые примечания к курсу Си, и каждый исходный файл программы Си начинается с единственного знака # в первой строке программы. Затем есть пустые строки, и после этого другие вещи, сопровождаемые main функцией. В чем причина #? ...
11 авг. '17 в 7:17
3
Как надежно определить Mac OS X, iOS, Linux, Windows в препроцессоре C?
Если есть какой-то кросс-платформенный код C/С++, который должен быть скомпилирован в Mac OS X, iOS, Linux, Windows, как я могу их достоверно обнаружить во время процесса препроцессора?
07 мая '11 в 8:37
4
Объединение С++ и C - как работает #ifdef __cplusplus?
Я работаю над проектом с большим количеством устаревшего кода C. Мы начали писать на С++, имея в виду, наконец, преобразовать устаревший код. Я немного смущен тем, как взаимодействуют C и С++. Я понимаю, что, завернув код C с помощью extern "C...
24 сент. '10 в 17:03
3
Определить макрос препроцессора через CMake?
Как определить переменную препроцессора через CMake? Эквивалентный код будет #define foo.
26 янв. '12 в 11:35
6
Препроцессор дампа GCC определяет
Есть ли способ, чтобы gcc/g++ удалял его препроцессор из командной строки?
Я имею в виду такие вещи, как __GNUC__, __STDC__ и т.д.
08 февр. '10 в 19:40
12
MIN и MAX в C
Где MIN и MAX, определенные в C, если вообще?
Каков наилучший способ их реализации, как можно более универсально и безопасно? (Предпочтительнее использовать расширения/встроенные компиляторы для компиляторов основного потока.)
09 авг. '10 в 4:49
11
#pragma pack effect
Мне было интересно, может ли кто-нибудь объяснить мне, что делает оператор препроцессора #pragma pack, и, что более важно, почему он захочет его использовать. Я проверил страницу MSDN, которая дала некоторую информацию, но я надеялся услышать больш...
23 июл. '10 в 13:12
10
Как я могу увидеть исходный файл C/С++ после предварительной обработки в Visual Studio?
Скажем, у меня есть исходный файл со многими предпроцессорными директивами. Можно ли посмотреть, как он выглядит после того, как препроцессор с этим занят?
10 нояб. '08 в 7:11
12
С#define макрос для отладочной печати
Попытка создать макрос, который можно использовать для отладочных сообщений печати, когда DEBUG определен, например, следующий псевдо-код:
#define DEBUG 1
#define debug_print(args ...) if (DEBUG) fprintf(stderr, args)
Как это делается с макросом?
29 окт. '09 в 16:17
12
Предупреждение компилятора "No newline at end of file"
В чем причина следующего предупреждения в некоторых компиляторах на С++?
Нет строки в конце файла
Зачем мне пустую строку в конце файла источника/заголовка?
16 сент. '08 в 13:38
5
Как сделать переменный макрос (переменное количество аргументов)
Я хочу написать макрос в C, который принимает любое количество параметров, а не определенное число
Пример:
#define macro( X ) something_complicated( whatever( X ) )
где X - любое количество параметров
Мне нужно это, потому что whatever перегру...
25 мар. '09 в 2:08