Я читал о строковом преобразовании и вставке токена и пытался получить доступ к переменной, используя вставку токена и изменив ее значение. Возможна ли такая вещь?
Предположим, переменные a0
и a1
определены, и во время выполнения я хочу напечатать их значения с использованием вставки токена как printf("\n\rValue is %d",VAR_PARSER(0));
Это то, что я сделал.
#include "stdio.h"
#include "stdlib.h"
#define VAR_PARSER(dummyvar,index,value) do{\
dummyvar = index;\
a##dummyvar = value;\
}while(0);
unsigned char a0, a1, dummy;
int main (void)
{
unsigned char ucloopcnt;
for(ucloopcnt = 0; ucloopcnt < 2; ucloopcnt++) VAR_PARSER(dummy,ucloopcnt,(ucloopcnt * 10));
printf("\n\rValue is %d %d",a0,a1);
return 0;
}
Теперь в этой строке a##dummyvar = value;
я хотел выводить как a0 = 10;
и a1 = 20;
соответственно. Но похоже, что это переводит adummy
и дает следующую ошибку adummy undeclared (first used in this funciton)
Может кто-нибудь подсказать мне, как мне этого добиться, так как мне любопытно решить это.