Dar*_*ngs 6 c macros line declare
首先,我使用的是 MS 的 Visual Studio 和 C 语言。
最近我需要用一个类似宏的相同语句来声明变量。
但是,如您所知,我只能声明一个具有相同名称的变量。
例如,这是不可能的。
int iVar1;
int iVar1; // this is not possible.
Run Code Online (Sandbox Code Playgroud)
所以我想到了宏包括__ LINE __,如果我可以使用这个预定义的宏,我可以通过一个宏语句声明很多变量。
但是制作起来很困难。
我做了这样的宏。
#define MY_LINE_VARIABLE int g_iLine##__LINE__##Var = 0;
Run Code Online (Sandbox Code Playgroud)
但是在编译之后,我可以得到这个名为 'g_iLine_ LINE _Var' 而不是 'g_iLine123Var' 的变量
我想知道这是 possile,我怎样才能做到。
此外,如果可能,我需要使用__ FILE __宏。但是这个宏可能会被字符串数据改变。所以我不能确定。
任何建议都会有所帮助。
提前谢谢你的帮助。
正如@Chris Lutz 所说的那样,可能有更好的方法来完成您想要的。考虑询问您想要实现的目标。
但如果你只是好奇,这就是这样做的方法:
#define var(z) int g_iLine##z##var = 0
#define decl(x) var(x)
#define MY_LINE_VARIABLE decl(__LINE__)
MY_LINE_VARIABLE;
MY_LINE_VARIABLE;
Run Code Online (Sandbox Code Playgroud)