#define用法.

aree 2006-10-23 06:47:14
#define GG(FS,index) \
int i##FS##index=10;

调用
GG(aa,1) //声明int iaa1=1;
GG(ab,2) //声明int iab2=2;
GG(ac,3) //...
GG(ba,4)
GG(ca,10)
....

为什么系统提示错误? int i##FS##index=10;???
...全文
310 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2006-10-23
  • 打赏
  • 举报
回复
......
语法上并没有问题,
你的VC ..........
aree 2006-10-23
  • 打赏
  • 举报
回复
hehe, 我的VC通不过.现在好了.

#define GG(FS,index) \
int i##FS##index##=10;
OK le.


同样
int i##FS##__##index##=10; is good.

thanks all
Kusk 2006-10-23
  • 打赏
  • 举报
回复
嗯,gcc4也没有问题。楼主的编译器是什么?
飞哥 2006-10-23
  • 打赏
  • 举报
回复
TC2.0测试通过

----------
我想楼主可以换编译器了
飞哥 2006-10-23
  • 打赏
  • 举报
回复
DEVCPP 4。9。2测试通过
飞哥 2006-10-23
  • 打赏
  • 举报
回复
这个没有语法错误
---------
并且完全符合替换要求
---------

VC测试通过
-----------------
#define GG(FS,index) \
int i##FS##index=10;

#include "iostream"
using namespace std;

void main()
{
GG(a,1)
cout<<ia1<<endl;
}
Kusk 2006-10-23
  • 打赏
  • 举报
回复
我这里编译没问题。楼主的编译器是什么版本?如果是太老的话有可能支持不了新版C标准里的##操作。
aree 2006-10-23
  • 打赏
  • 举报
回复
#define GG(FS) \
int i##FS=10;
上面单个变量是可以的.

为什么两个就不行了呢?
#define GG(FS,index) \
int i##FS##index=10; //????????????????????
aree 2006-10-23
  • 打赏
  • 举报
回复
C , 16位机器
lann64 2006-10-23
  • 打赏
  • 举报
回复
lz 什么编译器呀?是.c文件吗?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧