社区
C语言
帖子详情
请教一个比较难写的宏定义
haoyuenan
2011-07-14 03:25:10
假如我想定义一个宏,这个宏要实现如下功能:
假如我的程序中有10个变量,变量名字分别为rtd1, rtd2, ... , rtd10;
我想用宏的方式操作这10个变量来简少代码量;
我本来把宏定义为
#define RTD(NUM) rtd##NUM = a*b
但是我在用的时候,由于rtd的索引是一个变量,比如index,那么我这样调用宏 RTD(index);
结果编译的时候总是报错,看起来是因为宏定义里没办法识别变量?那么这个宏应该怎么定义才好?
...全文
109
11
打赏
收藏
请教一个比较难写的宏定义
假如我想定义一个宏,这个宏要实现如下功能: 假如我的程序中有10个变量,变量名字分别为rtd1, rtd2, ... , rtd10; 我想用宏的方式操作这10个变量来简少代码量; 我本来把宏定义为 #define RTD(NUM) rtd##NUM = a*b 但是我在用的时候,由于rtd的索引是一个变量,比如index,那么我这样调用宏 RTD(index); 结果编译的时候总是报错,看起来是因为宏定义里没办法识别变量?那么这个宏应该怎么定义才好?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liufang421
2011-07-14
打赏
举报
回复
再定义10个宏
#define RTD(NUM) RTD_##NUM
#define RTD_1 rtd1 = a*b
...
hai040
2011-07-14
打赏
举报
回复
定义个指针数组,指向那几个变量
AnYidan
2011-07-14
打赏
举报
回复
以拙胜巧
至善者善之敌
2011-07-14
打赏
举报
回复
[Quote=引用 3 楼 zmlovelx 的回复:]
宏是预编译时期展开的, 你来个变量index是不行的,除非它也能在预编译时期被识别。
[/Quote]
++1
赵4老师
2011-07-14
打赏
举报
回复
code generation
haoyuenan
2011-07-14
打赏
举报
回复
感谢各位的回复,俺知道了,看来只能老老实实的写代码了。
vrace
2011-07-14
打赏
举报
回复
那就只有一行一行 ctrl-c ctrl-v 了。。。
要不然..
xxx *rdt[10];
rdt[0] = &rdt1;
rdt[1] = &rdt2;
。。。
然后
#define RDT(NUM) *rdt[NUM] = a * b
...
WOBUGUAN
2011-07-14
打赏
举报
回复
可以写一个脚本自动生成你的C文件
#!/bin/bash
for var in 1,2,3,4,5,6,7,8,9,10
do
echo "RTD($var);" >> my_c_file.c
done
帅得不敢出门
2011-07-14
打赏
举报
回复
宏是预编译时期展开的, 你来个变量index是不行的,除非它也能在预编译时期被识别。
haoyuenan
2011-07-14
打赏
举报
回复
回楼上的,这是历史遗留问题了,因为前面的人已经定义成那样了,我们考虑到尽量做小的改动的原则,所以才~~~
vrace
2011-07-14
打赏
举报
回复
你为什么不把变量定义成 xxx rtd[10];
asp.net知识库
.NET关于string转换的
一个
小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...
c语言
宏定义
常量可以自增吗,
请教
大家
一个
C语言的宏的递归完成自增定义的方法...
思路这这样的:为了测试,需要
一个
数据块,数据的形式是0x55aa0000,0x55aa0001,0x55aa0002,0x55aa0003 。。。,共n*4个字节,如果放在ram中太浪费,就想直接生成到flash笨办法就是直接写死,比如const uint32_t ...
c语言
宏定义
处理结构体,
请教
c语言
宏定义
与结构体
本帖最后由 aaa405944519 于 2016-6-13 17:33 编辑typedef struct RampGen_t //定义结构体{int32_t count;int32_t XSCALE;float out;void (*Init)(struct RampGe...
c语言用宏写
比较
大小函数,c,_C语言中两个宏进行大小对比,其中
一个
没有定义,这种行为如何定义。,c - phpStudy...
C语言中两个宏进行大小对比,其中
一个
没有定义,这种行为如何定义。1.C语言中两个宏进行大小对比,其中
一个
没有定义,这种行为如何定义呢?在学习U-boot的过程中遇到这么
一个
定义:# if (CONFIG_ENV_ADDR >= ...
从
宏定义
到static变量
作为传统的C程序员,深觉得
宏定义
简单,灵活,效率高...后来
请教
别人,找到了个替代的方法,在类里声明
一个
static 子类 public static class Type{ public static int TYPE1 = 1; public static int TYPE2 = 2
C语言
69,372
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章