Должен ли работать такой код?
#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)