C定义预处理器的范围

C定义预处理器的范围,第1张

概述#define的范围直到文件结尾.但是从哪里开始. 基本上我试过下面的代码. #include<stdio.h> #include<stdlib.h> #define pi 3.14 void fun(); int main(){ printf("%f \n",pi); #define pi 3.141516 fun();return 0;}void fun(){pr #define的范围直到文件结尾.但是从哪里开始.
基本上我试过下面的代码.
#include<stdio.h> #include<stdlib.h> #define pi 3.14 voID fun(); int main(){ printf("%f \n",pi); #define pi 3.141516    fun();return 0;}voID fun(){printf("%f \n",pi);}

上面的程序的输出是出来的

3.1400003.141416

考虑到主要的预处理,pi的值应为3.141516
外面主要是3.14.这是不正确的,但请解释为什么.

解决方法 C预处理器通过文件从顶部到底部运行,并处理#define语句,如荣耀的复制和粘贴 *** 作.一旦遇到#define pi 3.14的行,它就会用3.14替换字pi的每一个实例.预处理器不处理(甚至通知)C语言范围设定机制,如括号和大括号.一旦看到#define,那个定义才有效,直到文件的末尾到达,宏将被#defef定义,或者(在这种情况下),宏被另外一个#define语句重新定义.

如果你想要遵循C范围规则的常量,我建议在const float pi = 3.14的行上使用更多的东西.

总结

以上是内存溢出为你收集整理的C定义预处理器的范围全部内容,希望文章能够帮你解决C定义预处理器的范围所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1247785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存