关于C的宏问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:41:47
有以下程序:我希望是写一个宏,可以拼接代码
#define LINK(A)(B) ((A)##(B))//希望是link(1)(2) 在编译时换成 12
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i=LINK(8)(9);
cout<<i;
return 0;
}
但是报错“B”: 未声明的标识符,请问是为什么

#define LINK(A,B) (A##B)
int _tmain(int argc, _TCHAR* argv[])
{
int i=LINK(8,9);
cout<<i;
return 0;
}
这样是对的 你的为什么错 原因太过复杂 我也不清楚 你记住怎么用不就行了呗

A,B作为宏的参数,要和函数参数一样,放在一个括号里声明。

#define LINK(A,B) A##B

int i=LINK(8,9);