Должен ли работать такой код?
#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
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Непонятная работа связки GCC и NASM (2006)
- Форум Где ошибка? (си) (2007)
- Форум СИ макросы понеслось (2008)
- Форум [СИ] структуры, массивы и sizeof(). (2010)
- Форум [C] Можно ли только с помощью макросов перевести строку в верхний регистр? (2010)
- Форум Объявление функции внутри макроса, чтобы она была доступна (2017)
- Форум Призываются мастера препроцессора С (2014)
- Форум esc-последовательности и терминал (2017)
- Форум Исключение неиспользуемых директив препроцессора из кода (2018)
- Форум Помогите с макросами (2013)