Как сделать макрос многострочного препроцессора? Я знаю, как сделать одну строку:#определить sqr (X)(X *X ), но мне нужно что-то вроде этого:#определить someMacro (X )class X :public otherClass { int...
Есть ли какой-либо эффективный способ (может быть, злоупотребляющий препроцессором GCC?), Чтобы получить Набор раздетых источников ядра, где все код не нужен в соответствии с .Config, остается?
-Og - это относительно новая опция оптимизации, которая предназначена для улучшения отладки при применении оптимизаций. Если пользователь выбирает -Og, я бы хотел, чтобы мои исходные файлы активировались по-другому ...
Я новичок в Objective-C, и у меня есть несколько вопросов относительно const и директивы препроцессора #define. Во-первых, я обнаружил, что невозможно определить тип константы с помощью #define. Почему...
Во многих программах #define служит той же цели, что и константа. Например. #define FIELD_WIDTH 10
const int fieldWidth = 10; Я обычно вижу, что первая форма предпочтительнее другой, полагаясь на ...
Я попытался поиграть с определением макроса SQR в следующем коде: #define SQR(x) (x*x)
основной ()
{ int а, б=3; а = SQR(b+5); // В идеале следует заменить на (3+5*5+3), ...
Пример #define Echo (a) a
#define Echo (a) (a) Я понимаю, что здесь, вероятно, нет существенной разницы, но зачем вам когда-либо включать a в круглые скобки внутри тела макроса? ...
Для отладочных сборок я обычно использую Clang, так как он лучше форматирует предупреждения и ошибки и немного упрощает их отслеживание и исправление. Но недавно после добавления макроса с переменным числом ...
Моя ментальная модель того, как работает препроцессор, явно неполна, и это сводит меня с ума. Я хочу объединить два токена, но сначала нужно расширить второй токен. #define ANSWER ...
Это меня некоторое время беспокоило, например, если я пытаюсь написать этот код: // найти длину массива
#define ARRAY_LENGTH (arr) (sizeof (arr) / sizeof (int)) // объявляем массив ...
Я программно генерирую группу f unctors, чтобы сгенерированный код оставался более читаемым, я пытаюсь создать макрос, который расширит следующую строку: SET_STATE (FunctorA, a, b);
...
Иногда, чтобы упростить запись и чтение, я пишу некоторые локальные макросы #define внутри функций (например, #define O_REAL Ogre :: Real). Нужно ли мне #undef local #define гарантировать, что ...
В одном из файлов исходного кода C я обнаружил следующую строку (макрос): #define USE (x ) (x) = (x) Используется так: int method (Obj * context) {USE (context); возврат 1; } После ...
Я получил следующую реализацию, чтобы получить количество аргументов в макросе с переменным числом аргументов (в настоящее время ограничено 16 аргументами). Однако для VS2010 вывод всегда равен 1, независимо от количества аргументов ...
Я хотел бы написать макрос препроцессора, который выполняет одно действие, если его аргумент представляет собой заключенный в скобки кортеж токенов, например это: MY_MACRO ((x, y)) и что-то еще, если это всего лишь один токен, например ...
Хорошо, я не совсем новичок, но не могу сказать, что понимаю следующий макрос. Самая запутанная часть - это разделение со значением, приведенным к size_t: что, черт возьми, это дает? В частности, ...
Я пытаюсь понять, как написать макрос, который будет передавать как строковое литеральное представление имени переменной, так и саму переменную в функцию. Например, учитывая следующее...
Я пишу небольшой класс Float для более легкого сравнения поплавков (как мы знаем, из-за точности поплавка). Поэтому мне нужно перезагрузить почти все операторы, которые есть у двойника. Я нахожу, что их слишком много...
В стандартном документе C99 есть следующий пример в разделе, относящемся к оператору предварительной обработки ##: В следующем фрагменте: #define hash_hash # ## #
#define mkstr (a) # a
#define ...
Я написал вариативный шаблон, который принимает переменное количество параметров char , т.е. шаблон
struct Foo; Мне просто было интересно, есть ли какие-нибудь макросы, которые ...
Итак, у меня есть макрос, который хорошо работает в GCC, но не в компиляторе Microsoft C ++. Я надеюсь, что кто-то знает обходной путь или, возможно, сможет объяснить мне, почему он так себя ведет. Я уверен, что это ... .
Я знаю, что могу сделать это: #define MACRO (api, ...) \ bool ret = api (123, ## __ VA_ARGS__); Это просто пример, это часть более сложного решения. Дело в том, что мне нужно добавить ...
Я думал о способах проверки типов в макросах C, и пока что лучший способ, который я придумал, таков: #define ASSERT_PTYPE (TYPE, VALUE) (0 && (* (int (*) (TYPE *)) 0) (VALUE)) ...
Есть ли лучший способ "перегрузить" такой макрос? Мне нужен макрос, который принимает различное количество параметров. #define DEBUG_TRACE_1(p1) std::string p[] = {p1}; log _log(__FUNCTION__, p, 1)
#...
У меня есть функция, которую мне нужно изменить в макросе. Функция содержит временные переменные, и я не могу вспомнить, есть ли какие-то правила использования временных переменных в макроподстановках. long fooAlloc (...
Я хочу использовать такой макрос #define Return (x ){call _my _function (); return (x );} есть ли способ использовать или объявить макрос без круглых скобок, чтобы я мог использовать его как настоящий обратный вызов, а не...