首页 > 其他 > 详细

C 头文件、宏、编译问题

时间:2019-02-15 13:11:50      阅读:154      评论:0      收藏:0      [点我收藏+]

@2019-02-15

【小记】

> C 头文件的防重复包含是针对同一个源文件而言

原因:

  #include 头文件就是一段代码的拷贝,头文件中若有类型定义等,重复包含就会造成编译错误,若无类型定义等不造成重复定义的,则无需防重复包含机制

防重包含机制:

  #pragma once

  #ifndef _MACRO_  #define _MACRO_  #endif

 

> 在头文件中不要定义变量、函数等是为了解决被多个源文件包含时出现重复定义

 

> 宏具有隐蔽性、最新性

  在不同源文件中定义同名宏,不会出现任何问题

  在同一源文件中多次定义同名宏,则宏为最后一次定义的值

使用场景:

  公共头文件中依据宏值或宏定义不同,而对应不同的执行语句,则在不同源文件中包含该公共头文件,根据需要定义不同的宏使用相应的执行语句

  使用案例:rt-thread中文件 <rtdbg.h> ,详见其开头说明部分

 

> 同一源文件中多次定义同名变量无错误,但只允许初始化一次

> 不同源文件中不允许定义同名变量

C 头文件、宏、编译问题

原文:https://www.cnblogs.com/skullboyer/p/10382835.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!