0
ответов

Макросы многострочного препроцессора

Как сделать макрос многострочного препроцессора? Я знаю, как сделать одну строку:#определить sqr (X)(X *X ), но мне нужно что-то вроде этого:#определить someMacro (X )class X :public otherClass { int...
вопрос задан: 23 October 2015 14:09
0
ответов

STILL INTERUX INSERLEL INSERLEL в соответствии с .Config

Есть ли какой-либо эффективный способ (может быть, злоупотребляющий препроцессором GCC?), Чтобы получить Набор раздетых источников ядра, где все код не нужен в соответствии с .Config, остается?
вопрос задан: 31 August 2015 20:11
0
ответов

Определить уровень оптимизации в препроцессоре?

-Og - это относительно новая опция оптимизации, которая предназначена для улучшения отладки при применении оптимизаций. Если пользователь выбирает -Og, я бы хотел, чтобы мои исходные файлы активировались по-другому ...
вопрос задан: 30 July 2015 08:22
0
ответов

#define vs const в Objective-C

Я новичок в Objective-C, и у меня есть несколько вопросов относительно const и директивы препроцессора #define. Во-первых, я обнаружил, что невозможно определить тип константы с помощью #define. Почему...
вопрос задан: 26 July 2015 22:38
0
ответов

Почему большинство разработчиков на C используют определение вместо const? [duplicate]

Во многих программах #define служит той же цели, что и константа. Например. #define FIELD_WIDTH 10 const int fieldWidth = 10; Я обычно вижу, что первая форма предпочтительнее другой, полагаясь на ...
вопрос задан: 26 July 2015 22:38
0
ответов

Необходимость скобок в макросах в C [дублировать]

Я попытался поиграть с определением макроса SQR в следующем коде: #define SQR(x) (x*x) основной () { int а, б=3; а = SQR(b+5); // В идеале следует заменить на (3+5*5+3), ...
вопрос задан: 29 April 2015 08:42
0
ответов

] Макросы C и использование аргументов в круглых скобках

Пример #define Echo (a) a #define Echo (a) (a) Я понимаю, что здесь, вероятно, нет существенной разницы, но зачем вам когда-либо включать a в круглые скобки внутри тела макроса? ...
вопрос задан: 29 April 2015 08:38
0
ответов

Являются ли макросы Variadic нестандартными?

Для отладочных сборок я обычно использую Clang, так как он лучше форматирует предупреждения и ошибки и немного упрощает их отслеживание и исправление. Но недавно после добавления макроса с переменным числом ...
вопрос задан: 18 April 2015 17:27
0
ответов

Расширение токена препроцессора [дубликат]

Моя ментальная модель того, как работает препроцессор, явно неполна, и это сводит меня с ума. Я хочу объединить два токена, но сначала нужно расширить второй токен. #define ANSWER ...
вопрос задан: 18 April 2015 16:50
0
ответов

Передача литерала массива в качестве аргумента макроса

Это меня некоторое время беспокоило, например, если я пытаюсь написать этот код: // найти длину массива #define ARRAY_LENGTH (arr) (sizeof (arr) / sizeof (int)) // объявляем массив ...
вопрос задан: 16 April 2015 08:52
0
ответов

Итерация переменных макросов

Я программно генерирую группу f unctors, чтобы сгенерированный код оставался более читаемым, я пытаюсь создать макрос, который расширит следующую строку: SET_STATE (FunctorA, a, b); ...
вопрос задан: 16 April 2015 08:21
0
ответов

Нужно ли мне #undef локальный #define? Существует ли такая вещь, как локальное определение?

Иногда, чтобы упростить запись и чтение, я пишу некоторые локальные макросы #define внутри функций (например, #define O_REAL Ogre :: Real). Нужно ли мне #undef local #define гарантировать, что ...
вопрос задан: 31 March 2015 04:17
0
ответов

Abstruse #определить макрос, встречающийся в исходном коде ядра Linux

get _cpu _var var marcro, который определен ниже 29 #define get _cpu _var (var)(*({ \ 30 extern int simple _идентификатор _##var (void ); \ 31...
вопрос задан: 31 March 2015 04:15
0
ответов

define USE (x) (x) = (x)

В одном из файлов исходного кода C я обнаружил следующую строку (макрос): #define USE (x ) (x) = (x) Используется так: int method (Obj * context) {USE (context); возврат 1; } После ...
вопрос задан: 31 March 2015 03:57
0
ответов

цикл for или while внутри директивы #define

Как я могу написать цикл for / while внутри директивы #define на C?
вопрос задан: 31 March 2015 03:45
0
ответов

Почему этот макрос подсчета аргументов с переменным числом аргументов не работает в VC ++?

Я получил следующую реализацию, чтобы получить количество аргументов в макросе с переменным числом аргументов (в настоящее время ограничено 16 аргументами). Однако для VS2010 вывод всегда равен 1, независимо от количества аргументов ...
вопрос задан: 31 March 2015 03:29
0
ответов

Почему компилятор жалуется на это объявление макроса

Я пишу следующий макрос для удобства отладки: 1 #ifndef DEF_H 2 #определить DEF_H 3 #определить РЕЖИМ ОТЛАДКИ_4 #определить ОТЛАДКА _ИНФОРМАЦИЯ (сообщение )\ 5 #ifdef ОТЛАДКА_РЕЖИМ \ 6 cout &...
вопрос задан: 31 March 2015 03:23
0
ответов

Перегрузка макроса препроцессора C / C ++ по структуре его аргумента

Я хотел бы написать макрос препроцессора, который выполняет одно действие, если его аргумент представляет собой заключенный в скобки кортеж токенов, например это: MY_MACRO ((x, y)) и что-то еще, если это всего лишь один токен, например ...
вопрос задан: 31 March 2015 03:19
0
ответов

ARRAYSIZE Макрос C ++: как он работает?

Хорошо, я не совсем новичок, но не могу сказать, что понимаю следующий макрос. Самая запутанная часть - это разделение со значением, приведенным к size_t: что, черт возьми, это дает? В частности, ...
вопрос задан: 31 March 2015 02:15
0
ответов

Как использовать аргумент макроса как строковый литерал?

Я пытаюсь понять, как написать макрос, который будет передавать как строковое литеральное представление имени переменной, так и саму переменную в функцию. Например, учитывая следующее...
вопрос задан: 31 March 2015 01:55
0
ответов

ошибка: вставка «оператора» и «+» не дает допустимого токена предварительной обработки

Я пишу небольшой класс Float для более легкого сравнения поплавков (как мы знаем, из-за точности поплавка). Поэтому мне нужно перезагрузить почти все операторы, которые есть у двойника. Я нахожу, что их слишком много...
вопрос задан: 31 March 2015 01:37
0
ответов

Препроцессор C # и ## операторы

В стандартном документе C99 есть следующий пример в разделе, относящемся к оператору предварительной обработки ##: В следующем фрагменте: #define hash_hash # ## # #define mkstr (a) # a #define ...
вопрос задан: 31 March 2015 01:37
0
ответов

C ++: Может ли макрос заменять «abc» на «a», «b», «c»?

Я написал вариативный шаблон, который принимает переменное количество параметров char , т.е. шаблон struct Foo; Мне просто было интересно, есть ли какие-нибудь макросы, которые ...
вопрос задан: 31 March 2015 01:35
0
ответов

#ifdef inside #define

I am trying to write something like this: #define COV_ON(x) \ #ifdef COVERAGE_TOOL \ _Pragma (COVERAGE #x) #endif Is there any way to define ...
вопрос задан: 31 March 2015 00:59
0
ответов

Расширение макросов с переменным числом аргументов MSVC ++

Итак, у меня есть макрос, который хорошо работает в GCC, но не в компиляторе Microsoft C ++. Я надеюсь, что кто-то знает обходной путь или, возможно, сможет объяснить мне, почему он так себя ведет. Я уверен, что это ... .
вопрос задан: 30 March 2015 13:32
0
ответов

В дополнение к __VA_ARGS __

Я знаю, что могу сделать это: #define MACRO (api, ...) \ bool ret = api (123, ## __ VA_ARGS__); Это просто пример, это часть более сложного решения. Дело в том, что мне нужно добавить ...
вопрос задан: 30 March 2015 13:29
0
ответов

Как проверить тип в макросе C

Я думал о способах проверки типов в макросах C, и пока что лучший способ, который я придумал, таков: #define ASSERT_PTYPE (TYPE, VALUE) (0 && (* (int (*) (TYPE *)) 0) (VALUE)) ...
вопрос задан: 30 March 2015 12:59
0
ответов

Перегрузка макросов C

Есть ли лучший способ "перегрузить" такой макрос? Мне нужен макрос, который принимает различное количество параметров. #define DEBUG_TRACE_1(p1) std::string p[] = {p1}; log _log(__FUNCTION__, p, 1) #...
вопрос задан: 30 March 2015 12:55
0
ответов

Может ли макрос C содержать временные переменные?

У меня есть функция, которую мне нужно изменить в макросе. Функция содержит временные переменные, и я не могу вспомнить, есть ли какие-то правила использования временных переменных в макроподстановках. long fooAlloc (...
вопрос задан: 30 March 2015 12:48
0
ответов

Есть ли макрос, который расширяется, чтобы вернуться без круглых скобок?

Я хочу использовать такой макрос #define Return (x ){call _my _function (); return (x );} есть ли способ использовать или объявить макрос без круглых скобок, чтобы я мог использовать его как настоящий обратный вызов, а не...
вопрос задан: 30 March 2015 12:35