Je veux créer un C macro qui crée une fonction avec un nom de fonction sur le numéro de ligne. Je pensais que je pouvais faire quelque chose comme (la fonction réelle aurait états à l'intérieur des accolades):
#define UNIQUE static void Unique_##__LINE__(void) {}
Qui je l'espère étendre à quelque chose comme:
static void Unique_23(void) {}
Cela ne fonctionne pas. Avec jeton de concaténation, le positionnement des macros sont traités littéralement, se terminant en expansion:
static void Unique___LINE__(void) {}
Est-ce possible de le faire?
(Oui, il y a une vraie raison pour laquelle je veux faire cela n'importe comment, cela semble inutile).