汇编和C共用常数定义,究竟有无可能?!

[复制链接]
3121|4
 楼主| 洞房不败 发表于 2010-4-23 15:28 | 显示全部楼层 |阅读模式
在汇编中用EQU定义的常数,如果要在C中引用,似乎不可能。
同样,在C的头文件中用#define定义的常数,在汇编中也不能引用。
看到好多人的做法是:同一个名字的常数,在汇编和C中分别用EQU和#define各定义一次,各用各的,如果要更改,2个地方都要单独改。
这么显然的一个问题,难道真的无解么?!
mybao 发表于 2010-4-23 18:37 | 显示全部楼层
在C的头文件中用#define定义的常数,在汇编中也不能引用。

这个意义不大啊,而且这个在GCC中应该是可以实现的,LZ你想做什么?
 楼主| 洞房不败 发表于 2010-4-24 08:58 | 显示全部楼层
这个当然有意义啊!
最常见的,CPU的寄存器定义,一般做2个文件,在C的.H和汇编的.INC文件中各定义一次。如果C的定义可以在汇编中引用,那就只需要1个.H文件就行了。
再比如,编译控制,编译的时候经常要定义一些宏,来通知编译器进行选择性编译。如果全C或全汇编,都很简单。但是如果混合编程,且同一个宏,既要控制C的编译,又要控制汇编,那只好分别定义2个宏,各控制各的,每次修改都得改2个地方。麻烦,而且容易出错。
su730085915 发表于 2011-11-7 14:37 | 显示全部楼层
不会这个问题没人解决,我刚好遇到,而且很纠结。。。
xinzha 发表于 2011-11-8 10:25 | 显示全部楼层
可以用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

18

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部