Вопросы по теме 'c-preprocessor'

есть ли способ написать макросы с переменным списком аргументов в визуальном С++?
Насколько я знаю, в gcc можно написать что-то вроде: #define DBGPRINT(fmt...) printf(fmt); Есть ли способ сделать это в VС++?
16217 просмотров

Как создать новую строку в макросе cpp?
Как мне написать макрос cpp, который расширяется и включает символы новой строки?
36760 просмотров
schedule 18.05.2023

Что мне следует использовать #define, enum или const?
В проекте C ++, над которым я работаю, у меня есть значение типа flag , которое может иметь четыре значения. Эти четыре флага можно комбинировать. Флаги описывают записи в базе данных и могут быть: новая запись удаленная запись измененная...
65877 просмотров

Как заставить макрос C ++ вести себя как функция?
Допустим, вам по какой-то причине нужно написать макрос: MACRO(X,Y) . (Предположим, есть веская причина, по которой вы не можете использовать встроенную функцию.) Вы хотите, чтобы этот макрос имитировал вызов функции без возвращаемого значения....
125928 просмотров
schedule 12.03.2023

определение макроса, содержащее директиву #include
Есть ли способ определить макрос, который содержит директиву #include в своем теле? Если просто поставить " #include ", выдает ошибку C2162: "expected macro formal parameter" поскольку здесь я не использую # для объединения строк. Если...
41697 просмотров
schedule 20.03.2022

#include формат защиты заголовка?
Я знаю, что это не имеет большого значения для проекта, но если вы используете защиту заголовков #defined для своего кода C++, какой формат вы используете? например предполагая заголовок с именем foo.hpp : #ifndef __FOO_HPP__ ... #ifndef...
10451 просмотров
schedule 31.05.2023

Можно ли вкладывать директивы препроцессора C?
Например, возможно ли следующее: #define definer(x) #define #x?
9034 просмотров

Заставить препроцессор C игнорировать определенные директивы #include
Здесь я использую генератор синтаксического анализатора, который, к сожалению, настаивает на добавлении #include <some/file.h> вверху каждого сгенерированного исходного файла. Шапка уже давно переименована. Хотя заставить компилятор...
8466 просмотров
schedule 15.03.2023

Использование __FILE__, __LINE__ и __FUNCTION__ в C++
Предполагая, что ваш компилятор C++ поддерживает их, есть ли какая-либо особая причина не использовать __FILE__ , __LINE__ и __FUNCTION__ для целей ведения журнала и отладки? Меня в первую очередь беспокоит предоставление пользователю...
260671 просмотров
schedule 19.08.2022

Директивы препроцессора в C#
Кажется, у меня проблемы с директивами препроцессора в С#. Я создал приложение Win Forms для Visual Studio 2008 С#. Я добавляю это: #if (DEBUG) textBox1.Text = "in debug mode"; #else textBox1.Text = "in release mode";...
1400 просмотров
schedule 11.01.2023

Чем полезны макросы C?
Я написал немного на C, и я могу читать его достаточно хорошо, чтобы получить общее представление о том, что он делает, но каждый раз, когда я сталкивался с макросом, он меня полностью сбивал с толку. В конечном итоге мне приходится вспоминать, что...
38582 просмотров

Условная оценка макроса C++
У меня есть символ, определенный глобально, который должен быть условно неопределенным для данного подмножества моих исходных файлов. Все файлы, требующие специальной обработки, уже упакованы в пре- и пост-включения: pre.h: #undefine...
5415 просмотров
schedule 13.06.2022

C Макросы для создания строк
Альтернативные заголовки (для облегчения поиска) Преобразование токена препроцессора в строку Как сделать строку char из значения макроса C ? Оригинальный вопрос Я хотел бы использовать C #define для построения литеральных строк...
22848 просмотров
schedule 22.03.2023

Экранировать символ # в макросе #define?
Не вдаваясь в кровавые подробности, я хочу использовать макрос #define , который будет расширяться до #include , но знак '#' сбивает препроцессор с толку (поскольку он думает, что я хочу процитировать аргумент). Например, я хочу сделать что-то...
38560 просмотров

Определить наличие включаемых файлов во время компиляции в C++
Я пытаюсь написать код переносимой библиотеки C++, который сначала будет полагаться на Boost.Regex, а затем перейдет на TR1, поскольку его поддерживают компиляторы, и, в конечном итоге, на спецификацию C++0x после того, как все будет перемещено из...
2169 просмотров
schedule 24.01.2023

Обнаружить компилятор с помощью #ifdef
Я пытаюсь создать небольшой код, который работает на нескольких платформах и компиляторах. Я использую утверждения, большинство из которых можно отключить, но при компиляции с pgicpp PGI с использованием -mp для поддержки OpenMP он автоматически...
5548 просмотров
schedule 19.04.2023

Эквивалент C sizeof для макросов
Итак, я оптимизирую некоторый код, развертывая некоторые циклы (да, я знаю, что должен полагаться на свой компилятор, чтобы сделать это за меня, но я не работаю с моим выбором компиляторов), и я хотел сделать это несколько изящно, поэтому что, если...
5923 просмотров
schedule 05.11.2022

Есть ли способ применить действие к N членам класса C ++ в цикле по именам членов (возможно, через препроцессор)?
Проблема: У меня есть класс C ++ с членами gajillion (> 100), которые ведут себя почти одинаково: того же типа в функции каждый член имеет такой же точный код, как и другие члены, например назначение из карты в конструкторе, где ключ...
442 просмотров
schedule 21.10.2023

Можно ли создать глобальный список отмеченных строк во время компиляции/время выполнения?
Итак, я работаю над переводом своего приложения C++ на несколько языков. В настоящее время я использую что-то вроде: #define TR(x) (lookupTranslatedString( currentLocale(), x )) wcout << TR(L"This phrase is in English") << endl;...
172 просмотров

Как дважды выполнить конкатенацию с препроцессором C и развернуть макрос, как в arg ## _ ## MACRO?
Я пытаюсь написать программу, в которой имена некоторых функций зависят от значения определенной макропеременной с таким макросом: #define VARIABLE 3 #define NAME(fun) fun ## _ ## VARIABLE int NAME(some_function)(int a); К сожалению, макрос...
76763 просмотров
schedule 12.04.2023