博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
条件编译——头文件多次调用重复包含解决方法—STM32
阅读量:3948 次
发布时间:2019-05-24

本文共 859 字,大约阅读时间需要 2 分钟。

stm32头文件多次调用重复包含解决方法

使用条件编译

预处理程序提供条件编译的功能。可以按不同的条件去编译不同的程序部分,产生不同的目标代码文件。使用条件语句进行编译,生成的目标代码程序较长,而采用条件编译,生成的目标程序较短。如果条件选择的程序段很长,采用条件编译的方法是十分必要的。

当头文件第一次被包含时,它被正常处理,如果头文件被再次包含,通过条件编译,它的内容被忽略。符号_STM32F10X_GPIO_H按照被包含头文件的文件名进行取名,以避免由于其他头文件使用相同的符号而引起的冲突。

预处理器仍将整个头文件读入,即使这个头文件所有内容将被忽略。由于这种处理将托慢编译速度,所以如果可能,应该避免出现多重包含。

/*如何解释 !://第一次未define执行include,第二次已经#define不合条件(条件是notdefine,而已经define了)所以不执行include*/#ifndef _STM32F10X_GPIO_H#define _STM32F10X_GPIO_H#imclude "stm32f10x.h"	//此处为头文件内容#endif
#ifndef _STU_H#define _STU_H/*条件编译的中间可以添加的内容*///引入库头文件#define N 20#define SIZE 3//结构体类型定义typedef struct student{
char name[N]; //姓名 int height; //身高 float scores[SIZE]; //三门成绩}Stu;//枚举定义//函数声明//宏定义#endif

使用#ifndef只是防止了头文件被重复包含,但是无法防止变量被重复定义。

待补充ing:变量被重复定义之全局变量

参考文章:
https://www.jianshu.com/p/3447f3230b29
https://blog.csdn.net/a623891391/article/details/13773715

你可能感兴趣的文章
Android之Gridview图片列表
查看>>
objdump的使用方法
查看>>
编译错误处理noproguard.classes-with-local.dex已杀死
查看>>
LTE - CSFB技术
查看>>
GSM链路层信令协议
查看>>
技术道德
查看>>
“需求为王”才是根本
查看>>
高效率的危害
查看>>
寻找边缘性创新
查看>>
让创意瞄准市场
查看>>
高效经理人应具有的八个重要习惯
查看>>
优秀的领导者能读懂人才
查看>>
大智若愚也是领导力
查看>>
android如何编译MTK的模拟器
查看>>
android如何添加AP中要使用的第三方JAR文件
查看>>
利用sudo命令为Ubuntu分配管理权限
查看>>
Ubuntu下几个重要apt-get命令用法与加速UBUNTU
查看>>
Ubuntu中网页各种插件安装命令
查看>>
使用tar命令备份Ubuntu系统
查看>>
ubuntu flash 文字乱码解决方案
查看>>