打印

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

[复制链接]
1987|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 | 只看该作者
不会这个问题没人解决,我刚好遇到,而且很纠结。。。

使用特权

评论回复
5
xinzha| | 2011-11-8 10:25 | 只看该作者
可以用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

18

帖子

1

粉丝