条件编译是先判断变量是否被宏定义吗

2019-07-14 15:39发布


条件编译不是先判断变量是否被宏定义,然后再执行下面的语句,为什么这段程序的 __STM32F10x_IT_H 是先条件编译再宏定义??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
servile
2019-07-16 00:27
7762642422d 发表于 2018-11-28 12:41
1.根据图,编译器第一次包含该头文件时,在第17行时会判断“__STM32F10x_IT_H”是否定义过?显然没有定义过(除非你在其它地方定义了,当然根据实际需要我们是要避免这种情况的,所以才用一些非常奇怪的下划线和全大写等等,其目的就是为了不在别的头文件或源文件或编译器中定义该“__STM32F10x_IT_H”)。
2.编译器发现“_ ...

您的意思是头文件里的语句被编译过一次就行了吧,比如函数声明,第一次被某C源文件包含过了,当另一些C源文件想找到相应的函数,包不包含该头文件已经无所谓了,是这个意思吗?

一周热门 更多>