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

5 ответов

Можете ли вы сделать пользовательские операторы в C ++?

Можно ли сделать пользовательский оператор, чтобы вы могли делать такие вещи? if ("Hello, world!" contains "Hello") ...Примечание: это отдельный вопрос от "Это хорошая идея ...";)

13 ответов

Как создать функцию только для отладки, которая принимает список переменных аргументов? Мне нравится printf ()

Я хотел бы сделать функцию ведения журнала отладки с теми же параметрами, что иprintf, Но тот, который может быть удален препроцессором во время оптимизированных сборок. Например: Debug_Print("Warning: value %d > 3!\n", value);Я смотрел макросы ...

4 ответа

Предопределенные макросы для имени функции __func__

Я пытаюсь создать функцию сообщения журнала отладки, которая записывает файл, строку и функцию, из которой было вызвано сообщение журнала. #define DEBUG_PANIC(p) CLogging::Debuglogf( "Debug marker (%s) - ::%s() in file: %s(%d)", p, __func__ , ...

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

3 ответа

Странное поведение макроразложения

Вот код: #include <stdio.h> #include <stdio.h> #define VAL1(a,b) a*b #define VAL2(a,b) a/b #define VAL3(a,b) ++a%b int main() { int a = 1; int b = 2; int c = 3; int d = 3; int e = 5; int result = VAL2(a,d)/VAL1(e,b)+VAL3(c,d); // result = 1 ...

11 ответов

Зачем использовать явно бессмысленные операторы do-while и if-else в макросах?

Во многих макросах 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 делается. Почему ...

2 ответа

#ifndef в c файле?

Можно ли поставить#ifndef в верхней части файла c? В основном мне нужно проверить, была ли определенная константа препроцессора объявлена при запуске программы, и моя программа изменится соответственно. Мне нужно проверить, если-D ...

1 ответ

Конкатенация макросов с использованием определения компилятора

Это должно быть просто, но я изо всех сил пытаюсь понять это. у меня естьPROJECT_NAME как компилятор (g++) -D определить, и я хочу объединить его с другим текстом, чтобы сформировать имя пространства имен. Мой текущий подход заключается в ...

3 ответа

iOS Writing Macro определяет 3,5-дюймовый или 4-дюймовый дисплей [дубликат]

На этот вопрос уже есть ответ: Как обнаружить iPhone 5 (широкоэкранные устройства)? [/questions/12446990/how-to-detect-iphone-5-widescreen-devices] 24 ответа Я пытаюсь написать макрос для определения размера устройства 3,5 или 4 дюйма. Нечто ...

2 ответа

Как препроцессор вставить разрыв строки в результат раскрытия макроса? [Дубликат]

На этот вопрос уже есть ответ: Как создать новую строку в макросе cpp? [/questions/98944/how-to-generate-a-newline-in-a-cpp-macro] 7 ответов С макросами C / C ++ довольно просто автоматически генерировать длинные конструкции. Например, если я ...

5 ответов

Почему не выполняется условие цикла for? [Дубликат]

На этот вопрос уже есть ответ: Загадка (на С) [/questions/5611724/a-riddle-in-c] 4 ответа В показанном ниже коде ничего не печатается, что означает условие вforбой @ loop. Что может быть причиной Мне интересно, потому что когда я ...