Tôi muốn tạo macro C tạo một hàm có tên dựa trên số dòng. Tôi nghĩ rằng tôi có thể làm điều gì đó như (hàm thực sẽ có các câu lệnh trong dấu ngoặc nhọn):
#define UNIQUE static void Unique_##__LINE__(void) {}
Mà tôi hy vọng sẽ mở rộng thành một cái gì đó như:
static void Unique_23(void) {}
Điều đó không hiệu quả. Với nối mã thông báo, các macro định vị được xử lý theo nghĩa đen, kết thúc mở rộng thành:
static void Unique___LINE__(void) {}
Đây có phải là có thể làm gì?
(Vâng, có một lý do thực sự mà tôi muốn làm điều này cho dù điều này có vẻ vô ích như thế nào).
__LINE__
(mặc dù đó là trường hợp sử dụng phổ biến.