Ở đây ta xem cách viết macro nhiều dòng trong C. Viết macro nhiều dòng như hàm, nhưng mỗi dòng phải kết thúc bằng backslash \. Nếu dùng ngoặc nhọn {} và macro kết thúc bằng }, có thể gây lỗi. Nên bao toàn bộ trong ngoặc đơn.
Ví dụ
#include <stdio.h>
#define PRINT(x, str) ({\
printf("The number %d", x);\
printf(" is ");\
printf(#str);\
printf("\n");\
})
int main() {
int x = 10;
if (x % 2 == 0) {
PRINT(x, EVEN);
}
return 0;
}
Kết quả
The number 10 is EVEN