Saya ingin membuat makro C yang membuat fungsi dengan nama berdasarkan nomor baris. Saya pikir saya bisa melakukan sesuatu seperti (fungsi sebenarnya akan memiliki pernyataan di dalam kurung):
#define UNIQUE static void Unique_##__LINE__(void) {}
Yang saya harap akan berkembang menjadi seperti:
static void Unique_23(void) {}
Itu tidak berhasil. Dengan penggabungan token, makro pemosisian diperlakukan secara harfiah, yang akhirnya meluas ke:
static void Unique___LINE__(void) {}
Apakah ini mungkin dilakukan?
(Ya, ada alasan nyata saya ingin melakukan ini tidak peduli betapa tidak berguna ini tampaknya).
__LINE__
(meskipun itu adalah kasus penggunaan umum.