У меня есть код, который скомпилирован в gcc и vc ++.
В коде есть общий макрос, который вызывается в двух сценариях.
- Когда мы передаем ему некоторые параметры.
- Когда мы не хотим передавать ему какие-либо параметры.
Пример такого кода:
#define B(X) A1##X
int main() {
int B(123), B();
return 0;
}
Ожидаемый результат на этапе предварительной обработки компиляции:
int main() {
int A1123, A1;
return 0;
}
Вывод для gcc и vc ++ соответствует ожиданиям, но vc ++ выдает предупреждение:
warning C4003: not enough actual parameters for macro 'B'
Как я могу удалить это предупреждение и получить ожидаемый результат?
Спасибо.