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

Что можно сделать с макросами (высшего порядка)?
Безопасно ли давать имена макросов в качестве аргументов другим макросам для имитации функций более высокого порядка? т.е. куда мне смотреть, чтобы не выстрелить себе в ногу? Вот несколько фрагментов: #define foreach_even(ii, instr) for(int...
524 просмотров
schedule 08.03.2024

Генерация кода C++
В своем эпическом стремлении заставить C++ делать то, чего он не должен, я пытаюсь собрать класс, сгенерированный во время компиляции. На основе определения препроцессора, такого как (грубая концепция) CLASS_BEGIN(Name) RECORD(xyz)...
6893 просмотров

Определение препроцессора C для сгенерированных имен функций
У меня есть ситуация, когда у меня есть довольно много сгенерированных функций, и я хотел бы указать им на некоторые общие функции, которые я создал (чтобы я мог повторно использовать базовый код при изменении сгенерированных имен функций). По...
21291 просмотров
schedule 17.01.2024

Учитывая текст в #define, можно ли его каким-то образом передать в шаблон?
Скажем, у меня есть макрос FOO(name) и некоторый класс шаблона Bar‹>, который принимает один параметр (какой тип параметра — вопрос). Каждый раз, когда я вызываю FOO с другим именем, я хочу получить другой экземпляр Bar. Шаблон Bar‹> на самом деле...
204 просмотров
schedule 15.05.2024

#define для беззнакового длинного
Я пытаюсь использовать директиву #define , чтобы изменить все «ulong» на «unsigned long». Вот пример: #define ulong unsigned long ulong idCounter = 0; К сожалению, я думаю, что в конечном итоге ulong заменяется на «unsigned», а не на...
21093 просмотров
schedule 14.06.2024

Объединение широкого строкового литерала со строковым макросом
У меня есть макрос для строки символов следующим образом: #define APPNAME "MyApp" Теперь я хочу построить широкую строку, используя этот макрос, выполнив что-то вроде: const wchar_t *AppProgID = APPNAME L".Document"; Однако это...
4897 просмотров
schedule 16.03.2024

Дополнительная поддержка макросов в clang?
Поскольку LLVM/cLang особенно хорошо спроектирован. Это похоже на прекрасную возможность расширить систему макросов/препроцессоров C/C++. Кто-нибудь знает о дополнительные возможности макроса/препроцессора, добавленные Clang или побочные...
834 просмотров
schedule 15.02.2024

Хеширование строки во время компиляции (препроцессор)
Есть ли способ создать хэш строки во время компиляции с помощью препроцессора C / C ++ (или даже метапрограммирования шаблона)? e.g. UNIQUE_SALT("HelloWord", 3DES); Идея в том, что HelloWorld не будет присутствовать в скомпилированном...
14839 просмотров
schedule 17.01.2024

Передача значения переменной в макрос в C
Я пытаюсь передать значение переменной в макрос на C, но не знаю, возможно ли это. Пример: #include <stdio.h> #define CONCVAR(_n) x ## _n int main () { int x0, x1, x2, x3, x4, x5, x6, x7, x8, x9; int i; for (i = 0; i <= 9;...
18795 просмотров
schedule 19.02.2024

Создание списка строк и списка перечислений из макроса C ++
Чтобы мой код был короче и его было легче изменить, я хочу заменить что-то вроде enum{ E_AAA, E_BBB, E_CCC }; static const char *strings{"AAA", "BBB", "CCC" }; С макросом, например INIT (AAA, BBB, CCC); но когда я пытаюсь сделать макрос с...
28363 просмотров
schedule 29.02.2024

Как добавить два #define вместе в качестве ключевых слов в C?
Я хочу сделать что-то вроде: #define TYPE uint32_t #define ADDSUFFIX(x) xTHETYPE THETYPE * ADDSUFFIX(getvalue) (THETYPE * pMem) {} И мне нужно получить uint32_t getvalueuint32_t (uint32_t * pMem) {} зависит от того, какой ТИП. Как...
1192 просмотров
schedule 05.04.2024

Как сгенерировать серию случайных чисел с помощью препроцессора C / C ++
Я хотел бы сгенерировать серию случайных чисел с помощью препроцессора C и сохранить их в переменных для использования в моей программе. ЗАДАЧИ: Я хотел бы генерировать «уникальный» набор случайных чисел каждый раз, когда я создаю свою...
2979 просмотров
schedule 09.12.2022

#ifdef внутри макроса
Возможный дубликат: #ifdef внутри #define Как мне успешно использовать символ "#" внутри макроса? Он кричит, когда я делаю что-то подобное: #define DO(WHAT) \ #ifdef DEBUG \...
37383 просмотров
schedule 02.04.2024

Предварительная обработка кода C с помощью GCC
У меня есть несколько исходных файлов C, которые необходимо предварительно обработать, чтобы я мог использовать другое приложение для добавления кода инструментария Code Coverage в свой файл. Для этого я использую GCC (я использую его на процессоре...
134 просмотров
schedule 11.03.2024

Как определить макрос препроцессора для проверки версии iOS
Я использую его для проверки версии iOS, но он не работает: #ifndef kCFCoreFoundationVersionNumber_iPhoneOS_5_0 #define kCFCoreFoundationVersionNumber_iPhoneOS_5_0 675.000000 #endif #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0 #define...
27833 просмотров
schedule 16.10.2022

Выражение препроцессора Objective-C для журнала отладки
У меня есть такой код: #define FORCE_DEBUG_MODE [[[NSUserDefaults standardUserDefaults] valueForKey:@"forceDebugMode"] isEqualToString:@"1"] #if defined DEBUG_MODE || defined FORCE_DEBUG_MODE #define DLog( s, ... ) NSLog( @"<%p %@:(%d)>...
731 просмотров
schedule 11.03.2024

Компиляция предварительно обработанного вывода изменений файла
У меня есть исходный файл, который я предварительно обрабатываю с помощью параметров -E и -P (используя GCC 4.1.2 для встраиваемой платформы на основе vxWorks). Все остальные параметры такие же, как и при компиляции файла. Вот эти варианты:...
220 просмотров
schedule 30.11.2023

Повторное использование макроса C в нескольких файлах
У меня есть несколько часто используемых макросов, которые необходимы почти в каждом C-файле, который я пишу. В настоящее время я копирую их в каждый файл, в котором они мне нужны. Вероятно, это плохая идея, потому что в конечном итоге мне нужно...
8010 просмотров
schedule 08.01.2024

Какая польза от раздела кода прагмы и раздела данных?
Что именно произойдет с сегментом данных и текстовым сегментом, если я использую следующие две строки в моем файле исходного кода c? #pragma CODE_SECTION(func1, "Sec1") #pragma DATA_SECTION(globalvar1, "Sec2")
27799 просмотров

Есть ли способ создать макрос препроцессора для функции?
Можно ли создать макрос препроцессора С++ на основе результата функции? Например, я хотел бы динамически сохранять высоту экрана в определении макроса препроцессора: #define SCREEN_HEIGHT GetSystemMetrics(SM_CYVIRTUALSCREEN) Затем я хочу...
216 просмотров
schedule 10.03.2024