条件编译

对于如下情况:有多个源文件(.c 或.cpp),都引用了同一个头文件,为了防止出现重复定义的情况,我们经常需要使用条件编译。

参考:http://baike.baidu.com/view/1617265.htm

Tips:

在c语言中,对同一个变量或者函数进行多次声明是不会报错的。所以如果h文件里只是进行了声明工作,即使不使用# ifndef宏定义,多个c文件包含同一个h文件也不会报错。但是在c++语言中,#ifndef的作用域只是在单个文件中。所以如果h文件里定义了全局变量,即使采用#ifndef宏定义,一个c文件包含同一个h文件多次还是会出现全局变量重定义的错误。

使用#ifndef可以避免下面这种错误:如果在h文件中定义了全局变量,一个c文件包含同一个h文件多次,如果不加#ifndef宏定义,会出现变量重复定义的错误;如果加了#ifndef,则不会出现这种错误。
 
通常在头文件中,我们只定义函数的原型,而不给出函数的具体实现。

原文链接: https://www.cnblogs.com/denflyson/archive/2012/06/16/2552085.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    条件编译

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/52861

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午4:15
下一篇 2023年2月9日 上午4:16

相关推荐