Noms de variables en C

Dans les préprocesseurs, on peut avoir des basculements entre les macros comme,

#define BUFF(n) BUFF_##n 

Donc, BUFF (1) serait remplacé par BUFF_1, BUFF (2) serait remplacé par BUFF_2 et chanson

Cela peut-il s’appliquer aux variables C? c’est-à-dire choisir entre des variables similaires de manière dynamic. Je comprends que c’est une situation étrange et que l’on peut le gérer à l’aide de tableaux ou de tout autre type de construction .. mais la situation me le demande.

Oui, vous pouvez utiliser cette macro pour appliquer BUFF_ à n’importe quoi. Le préprocesseur développera les macros, puis le compilateur essaiera de comstackr le résultat. Ce dernier risque d’échouer, car si vous utilisez BUFF(+) vous obtenez BUFF_+ et ce n’est pas un nom de variable valide.

Bien sûr, vous pouvez le faire. Les macros de préprocesseur ne sont que des substitutions de texte apscopes au code avant la compilation. Vous ne pouvez pas faire cela pendant l’exécution, cependant.