打印

关于宏定义中对数据的处理

[复制链接]
1204|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 tao180539 于 2014-4-1 09:05 编辑

关于 编译的时候自动生成具体浮点数 大家谁有相关方面的详细资料

看了2个地方 这2个地方说的自相矛盾
哪个对     就是在编译处理过程中是否会对宏进行处理  比如像第一个图片中所说的 把1/3.1416直接编译成0.3183    用0.3183这个数来代替宏

截图00.jpg (29.82 KB )

截图00.jpg

截图01.jpg (31.28 KB )

截图01.jpg

相关帖子

沙发
逗你玩~~~| | 2014-3-30 22:11 | 只看该作者
这个需要看具体的计算机体系结构,也可参考[IEEE 754]。

使用特权

评论回复
板凳
大道至简| | 2014-3-31 09:13 | 只看该作者
你要问什么?

使用特权

评论回复
地板
dirtwillfly| | 2014-3-31 09:41 | 只看该作者
宏定义在编译时是直接替换,具体浮点数的精度等要看计算机

使用特权

评论回复
5
tao180539|  楼主 | 2014-3-31 21:33 | 只看该作者
dirtwillfly 发表于 2014-3-31 09:41
宏定义在编译时是直接替换,具体浮点数的精度等要看计算机

你在仔细看看 我后面的这个图   我是说的这个意思  就是编译的时候是否会对宏定义进行编译处理

使用特权

评论回复
6
dirtwillfly| | 2014-3-31 21:49 | 只看该作者
C语言程序的一般编译成最终可执行程序的过程:
C源程序头文件-->预编译处理-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件
其中,在预编译处理时,会把程序中的宏定义直接进行替换。替换掉之后就都是一般的代码,就没有所谓的宏定义了。
如果没加括号,就像你的图片2,可能会出现问题。

使用特权

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

本版积分规则

321

主题

515

帖子

3

粉丝