Должен ли работать такой код?
#define SUMM(A,B) (A)+(B)
#define COMMA ,
int x=SUMM(3 COMMA 4);
При компиляции оно говорит, что макросу SUMM вместо двух параметров передают один.
При этом строка
int x[]={1 COMMA 2 COMMA 3};
обрабатывается нормально.
Как я понял, дело во вложенности директив. Можно ли это заставить работать?
PS. Извращение, конечно, то еще, но сильно хочется. И именно на си/c++.
Ответ на:
комментарий
от Legioner
Ответ на:
комментарий
от Legioner
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от dilmah
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум esc-последовательности и терминал (2017)
- Форум [СИ] структуры, массивы и sizeof(). (2010)
- Форум Помогите с макросами (2013)
- Форум Исключение неиспользуемых директив препроцессора из кода (2018)
- Форум странная ругань на указатель (2008)
- Форум Свой стиль комментариев и Doxygen (2016)
- Форум условная компиляция (2019)
- Форум Как вызвать конструктор с параметром, для класса являющегося членом другого класса. (2011)
- Форум [C++] Шаблоны и макросы (2009)
- Форум Параметр функции setup_timer (2017)