20
ответов

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

В нашем унаследованном коде, а также нашем современном коде, мы используем макросы для выполнения изящных решений как генерация кода и т.д. И мы используем и # и ## операторы. Мне любопытно как другие разработчики...
вопрос задан: 4 February 2016 18:28
12
ответов

Каковы приложения ## оператора препроцессора и глюков для рассмотрения?

Как упомянуто во многих моих предыдущих вопросах, я работаю через K&R и в настоящее время в препроцессор. Одна из более интересных вещей — что-то я никогда не знал прежде ни от одного из...
вопрос задан: 9 February 2016 10:30
7
ответов

Как этот C кодирует работу?

Что такое a##b и #a? #define f (a, b) a##b #define g (a) #a #define h (a) g (a) основной () {printf (" %s\n", h (f (1,2)));//, как я должен интерпретировать это?? [строка 1] printf (" %s\n"...
вопрос задан: 18 February 2016 11:50
7
ответов

C Макросы для создания строк

Альтернативные заголовки (для облегчения поиска) Преобразование токена препроцессора в строку Как сделать строку типа char из значения макроса C? Оригинальный вопрос Я хотел бы использовать C #define для сборки ...
вопрос задан: 5 February 2016 09:56
5
ответов

Аргументы шаблона Stringifying

Действительно ли это возможно в C++ к stringify аргументам шаблона? Я попробовал это: #define STRINGIFY (x) шаблон #x <имя типа T> структура Stringify {Stringify () {суд <<STRINGIFY (T) и...
вопрос задан: 5 August 2016 16:06
5
ответов

Почему препроцессор дает пространство?

Я хочу прокомментировать строку с помощью препроцессора: #define, открытые/##* #define, закрываются, */основное () {открытый прокомментировало строку близко}, когда я делаю $gcc-E filename.c, я ожидал, что/* прокомментировал строку */...
вопрос задан: 22 February 2016 19:55
5
ответов

Преобразуйте маркер препроцессора в строку

Я ищу способ преобразовать маркер препроцессора в строку. А именно, я где-нибудь добрался: #define MAX_LEN 16 и я хотим использовать его для предотвращения переполнения буфера: символ val [MAX_LEN+1];//комната...
вопрос задан: 3 February 2016 10:14
5
ответов

Странная строковая строчка в C с linux- * variable или string [duplicate]

Это первый вопрос в stackoverflow. До сих пор мне так много помогало. Благодаря! У меня есть следующий упрощенный код: #define str (s) str2 (s) #define str2 (s) #s #define T_A linux-x86_64 ...
вопрос задан: 9 October 2013 14:07
4
ответа

Что ## означает для C (C++) препроцессор?

У меня есть программа C ниже: #define f (g, g2) g##g2 основной () {интервал var12=100; printf (" %d", f (var, 12));}, когда я выполняю просто препроцессор, он разворачивает это как {интервал var12=100; printf (" %d", var12);}, который.
вопрос задан: 20 February 2016 22:17
4
ответа

CPP: предотвращение макрорасширения макро-параметра функции

то, что я хотел бы сделать (для входа целей) является чем-то вроде этого: Этот код был написан для показа моей проблемы, фактический код сложен и да, у меня есть серьезные основания использовать макросы даже на C++ =) #...
вопрос задан: 19 February 2016 22:28
3
ответа

Прагма в определяет макрос

Там некоторый путь состоит в том, чтобы встроить оператор прагмы в макрос с другими операторами? Я пытаюсь достигнуть чего-то как: #define DEFINE_DELETE_OBJECT (тип) \освобождают delete_ ## тип _ (...
вопрос задан: 25 February 2016 10:36
3
ответа

Как Вы выполняете макрорасширение в #ifdef?

У меня есть некоторый довольно общий код, который использует макросы препроцессора для добавления определенного префикса на другие макросы. Это - очень упрощенный пример того, что происходит: #define MY_VAR (x) prefix_##x "префикс _"...
вопрос задан: 24 February 2016 10:58
3
ответа

Как к одинарной кавычке аргумент в макросе?

Я хотел бы создать макрос препроцессора C, который будет одинарная кавычка аргумент. Точно так же, как обычно используемый #X. Я хочу, чтобы Q (A) был расширен до 'A'. Я использую gcc на Linux. Делает любой имеет...
вопрос задан: 21 February 2016 11:36
3
ответа

Различия в Макросе ## оператор конкатенации между Visual C++ и gcc

У меня есть макрос как это (не точно, но функция довольно эквивалентна): #define STRUCTMEMBER (участник, Значение) GlobalStructInstance. Участник ## = Значение... STRUCTMEMBER (Объект, 1); Это работает...
вопрос задан: 11 February 2016 20:12
3
ответа

Как вы конвертируете объект jQuery в строку?

Как вы конвертируете объект jQuery в строку?
вопрос задан: 21 February 2015 21:47
3
ответа

как изменить входной стиль текстового поля на строку?

в моей форме у меня есть три имени полей ввода, электронная почта, мобильная, но я хочу изменить входное текстовое поле как - имя: электронная почта _____________: толпа _____________: _____________
вопрос задан: 28 June 2010 08:50
2
ответа

Доступ к значению Макроопределения Препроцессора

Если я добавляю макрос "FOO=bar" под GCC_PREPROCESSOR_DEFINITIONS (или Макросы Препроцессора, если бы Вы используете XCode"), каков был бы лучший способ получить доступ к значению "НЕЧТО"? В настоящее время я использую неуклюжее:
вопрос задан: 12 July 2016 19:06
2
ответа

Попытка понять препроцессор C

Почему эти блоки кода приводят к различным результатам? Некоторый общий код: #define STRINGAFY0 работ #define PART1PART2 (s) #s #define STRINGAFY1 (s) STRINGAFY0 (s) случай 1: СВЯЗУЮЩЕЕ ЗВЕНО #define (a, b, c) a##b##c...
вопрос задан: 25 February 2016 23:29
2
ответа

Как преобразовать сцепленные строки в широкий символ с препроцессором C?

Я работаю над проектом, где у меня есть много постоянных строк, сформированных конкатенацией (числа, и т.д.). Например, у меня есть макрос МЕСТОПОЛОЖЕНИЯ, что форматы __ ФАЙЛ __ и __ СТРОКА __ в строку, что я могу...
вопрос задан: 21 February 2016 14:19
2
ответа

Как, точно, двойное-stringize обманывает работу?

По крайней мере некоторые препроцессоры C позволяют Вам stringize значение макроса, а не его имя, путем передачи его посредством одного подобного функции макроса другому что stringizes он: #define STR1 (x) #x #define...
вопрос задан: 15 February 2016 21:44
1
ответ

Доступ и изменение переменных с помощью конкатенации токенов в C

Я читал о строковом преобразовании и вставке токена и пытался получить доступ к переменной, используя вставку токена и изменив ее значение. Это возможно? Предположим, что переменные a0 и a1 ...
вопрос задан: 17 January 2019 18:32
1
ответ

C Препроцессор, Stringify результат макроса

Я хочу, чтобы привести в порядок результат расширения макроса. Я пробовал со следующим: #define QUOTE (str) #str #define TEST thisisatest #define TESTE QUOTE (TEST) И TESTE расширяется до: "TEST", ...
вопрос задан: 26 February 2016 16:25
0
ответов

Конкатенация int со строкой с помощью препроцессора C

Я пытаюсь понять, как я могу конкатенировать #defin'd int со строкой #define'd с помощью препроцессора C. Мой компилятор - GCC 4.1 для CentOS 5. Решение также должно работать для MinGW. Я хотел бы ...
вопрос задан: 27 February 2018 19:31
0
ответов

Дурачество препроцессора (преобразование #include)

Примечание: этот вопрос не имеет ничего общего с OpenCL как таковым ... проверьте последний абзац сжатая формулировка моего вопроса. Но чтобы предоставить некоторую предысторию: я пишу код на C ++, который использует ...
вопрос задан: 23 May 2017 11:58
0
ответов

# и ## в макросах

#include #define f (a, b) a ## b #define g (a) #a #define h (a) g (a) int main () {printf ("% s \ n", h (f (1,2))); printf ("% s \ n", g (f (1,2))); возврат 0; } Просто взглянув ...
вопрос задан: 29 September 2016 10:35
0
ответов

Значение макроса препроцессора для строкового литерала Objective-C

У меня есть макрос препроцессора, определенный в настройках сборки FOO = BAR. Это значение я хочу преобразовать в строковый литерал Objective-C, который можно передать методу. Следующий #define не работает, ...
вопрос задан: 13 July 2016 20:05
0
ответов

Макрос C/C++, расширяющий аргумент, аргумент как строка

У меня много переменных, которые называются так же, как элементы в документе с инженерными спецификациями, поэтому строковая версия имени также полезна. Я часто использую такой макрос: #...
вопрос задан: 4 April 2016 11:35
0
ответов

C препроцессор stringification странность

я определяю макрос, который принимает значение постоянной строки, держа имя файла и номер строки, для целей лесозаготовок Отказ Он работает нормально, но я просто не могу понять, почему 2 дополнительных макроса ...
вопрос задан: 31 March 2016 20:27
0
ответов

Как вызвать расширение макроса перед объединением?

#define JNI_DECLARE (classname, methodname) \ classname ## methodname (JNI * env) #define JAVA_CLASS Java_com_example void JNI_DECLARE (JAVA_CLASS, open) {} Это расширяется до: void ...
вопрос задан: 27 March 2016 18:55
0
ответов

В противоположность «строковой обработке» препроцессора C

При использовании препроцессора C можно преобразовать аргумент макроса в строку следующим образом: #define TO_STRING (x) "строка с" #x и т. Д. при использовании результат будет следующим: TO_STRING (test) будет расширяться до: "строка ...
вопрос задан: 27 March 2016 18:01