Вопросы по теме 'c-preprocessor'
Что можно сделать с макросами (высшего порядка)?
Безопасно ли давать имена макросов в качестве аргументов другим макросам для имитации функций более высокого порядка?
т.е. куда мне смотреть, чтобы не выстрелить себе в ногу?
Вот несколько фрагментов:
#define foreach_even(ii, instr) for(int...
524 просмотров
schedule
08.03.2024
Генерация кода C++
В своем эпическом стремлении заставить C++ делать то, чего он не должен, я пытаюсь собрать класс, сгенерированный во время компиляции.
На основе определения препроцессора, такого как (грубая концепция)
CLASS_BEGIN(Name)
RECORD(xyz)...
6893 просмотров
schedule
11.02.2024
Определение препроцессора 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 просмотров
schedule
22.11.2022
Есть ли способ создать макрос препроцессора для функции?
Можно ли создать макрос препроцессора С++ на основе результата функции?
Например, я хотел бы динамически сохранять высоту экрана в определении макроса препроцессора:
#define SCREEN_HEIGHT GetSystemMetrics(SM_CYVIRTUALSCREEN)
Затем я хочу...
216 просмотров
schedule
10.03.2024