Вопросы по теме 'c-preprocessor'
есть ли способ написать макросы с переменным списком аргументов в визуальном С++?
Насколько я знаю, в gcc можно написать что-то вроде:
#define DBGPRINT(fmt...) printf(fmt);
Есть ли способ сделать это в VС++?
16217 просмотров
schedule
19.03.2022
Как создать новую строку в макросе cpp?
Как мне написать макрос cpp, который расширяется и включает символы новой строки?
36760 просмотров
schedule
18.05.2023
Что мне следует использовать #define, enum или const?
В проекте C ++, над которым я работаю, у меня есть значение типа flag , которое может иметь четыре значения. Эти четыре флага можно комбинировать. Флаги описывают записи в базе данных и могут быть:
новая запись
удаленная запись
измененная...
65877 просмотров
schedule
21.09.2023
Как заставить макрос 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 просмотров
schedule
18.06.2023
Заставить препроцессор 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 просмотров
schedule
22.12.2022
Условная оценка макроса C++
У меня есть символ, определенный глобально, который должен быть условно неопределенным для данного подмножества моих исходных файлов. Все файлы, требующие специальной обработки, уже упакованы в пре- и пост-включения:
pre.h:
#undefine...
5415 просмотров
schedule
13.06.2022
C Макросы для создания строк
Альтернативные заголовки (для облегчения поиска)
Преобразование токена препроцессора в строку
Как сделать строку char из значения макроса C ?
Оригинальный вопрос
Я хотел бы использовать C #define для построения литеральных строк...
22848 просмотров
schedule
22.03.2023
Экранировать символ # в макросе #define?
Не вдаваясь в кровавые подробности, я хочу использовать макрос #define , который будет расширяться до #include , но знак '#' сбивает препроцессор с толку (поскольку он думает, что я хочу процитировать аргумент).
Например, я хочу сделать что-то...
38560 просмотров
schedule
24.08.2022
Определить наличие включаемых файлов во время компиляции в 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 просмотров
schedule
18.05.2022
Как дважды выполнить конкатенацию с препроцессором C и развернуть макрос, как в arg ## _ ## MACRO?
Я пытаюсь написать программу, в которой имена некоторых функций зависят от значения определенной макропеременной с таким макросом:
#define VARIABLE 3
#define NAME(fun) fun ## _ ## VARIABLE
int NAME(some_function)(int a);
К сожалению, макрос...
76763 просмотров
schedule
12.04.2023