#define DEBUG_BREAK(a)\
if ((a)) \
{\
__asm int 3;\
}
Mam zdefiniowane makra jak wyżej, i starają się toc zdefiniować makro multilinii?
#include "test_define.h"
int main()
{
DEBUG_BREAK(1 == 1);
return 0;
}
używać Ale ta próba nie będzie skompilować. Kompilator skarżyłby się, że nawias nie jest zamknięty. Jeśli dodaję kolejny }
na końcu pliku źródłowego, kompiluje.
Co jest nie tak z tym makro?
Wydaje się prawdopodobne, że makro nie zawiera błędów, ale z inną częścią kodu. Jednak icky makra, takie jak ten, są kłopotliwe, więc to jest z tym nie tak. Zamiast tego wpisz funkcję. – Lundin
Nie należy oznaczać etykietami pytań w językach C i C++, jeśli odwołujesz się tylko do litery C w tytule. –
Nic nie jest fatalnie błędne w kodzie, który zilustrowałeś, ale może jest brakujące '}' w '# include'd test_define.h? –