![]() |
21 июня 2023
|
EnniNova
N2H4 Да оно безобидно-то по сути...А вот тут не поняла поскольку не в теме, но звучит угрожающе)) Вот есть примерно такой код: printf(MACRO(int) printf(MACRO(short) ... при виде которого каждый раз в моей душе шевелится глубинное беспокойство, ибо скобки всегда и везде должны быть *парные*. Но оно работает и выводит: size of int 4 size of short 2 ..., ибо автор определил макрос #define MACRO(T) "size of %s %d\n", #T, sizeof(T)); , подставляя в конце каждой строки и закрывающую скобку, и точку с запятой. Причём определил (если ему верить, конечно) от чистого сердца, не с целью поиздеваться. Правда, на вопрос, что же он туда и «printf(» не внёс, чтобы писать MACRO(int) MACRO(short) так и не ответил... 1 |