69,374
社区成员
发帖
与我相关
我的任务
分享
test.c:8:1: pasting "arr" and "[" does not give a valid preprocessing token
#include<stdio.h>
#define ARR(i) arr##[i]
int main()
{
int arr[5] = {1,2,3,4,5};
printf("%d", ARR(3));
return 0;
}
#define HICSetGetImp(CN,VN) \
void CN::setOnononon ## VN(char* par){ VN ## [0] = par; }
改成
#define HICSetGetImp(CN,VN) \
void CN::setOnononon ## VN(char* par){ VN[0] = par; }
难道就不可以吗?
实在不明白非要加个##干吗!
加##这样就组合成pasting "arr" and "[" does not give a valid preprocessing token
这样的错误了!
HICSetGetImp(HiCButton,ForeColor);
#define HICSetGetImp(CN,VN) \
void CN::setOnononon ## VN(char* par){ VN ## [0] = par; }
是否是这么调用的:
void HiCButton::setOnonononForeColor(char* par){ ForeColor [0] = par; }
#include<stdio.h>
#define ARR(i) arr##i
int main()
{
int arr[5] = {1,2,3,4,5};
printf("%d", ARR()[3] ); //替换后就变成arr[3]
return 0;
}
class HiCButton{
private:
char* ForeColor[16];
char* LeftImage[16];
......
public:
HICSetGetDef(ForeColor);
HICSetGetDef(RightImage);
}
HICSetGetImp(HiCButton,ForeColor);
HICSetGetImp(HiCButton,RightImage);
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/csdn.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
#include<stdio.h>
#define ARR(i) arr##i
int main()
{
int arr[5] = {1,2,3,4,5};
printf("%d", ARR()[3] );
return 0;
}