博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C/C++中的“头文件卫士”
阅读量:4141 次
发布时间:2019-05-25

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

       在Objective C中可以用#import来防止重复包含,但在C/C++中就不同了,只能用“头文件卫士”了.

       

      下面的程序是有错误的:

// global.h 文件// #ifndef GLOBAL// #define GLOBALint total = 0;// #endif

 

//test.h 文件// #ifndef TEST// #define TEST#include "global.h"// #endif

 

// main.c 文件#include 
#include "global.h"#include "test.h"int main(){ int i = total; printf("%d\n", i); return 0;}

 

 

     需要改为防止重复包含的“头文件卫士”机制,如下:

// global.h 文件#ifndef GLOBAL#define GLOBALint total = 0;#endif

 

//test.h 文件#ifndef TEST#define TEST#include "global.h"#endif

 

// main.c 文件#include 
#include "global.h"#include "test.h"int main(){ int i = total; printf("%d\n", i); return 0;}

      加上“头文件卫士”后,程序可以正常运行.

转载地址:http://qjzti.baihongyu.com/

你可能感兴趣的文章
跟据经纬度实现附近搜索Java实现
查看>>
oracle 实现分页
查看>>
JQuery.validate自定义校验分享数组中英文文件后缀等等
查看>>
表和视图,存储过程和函数的区别
查看>>
kali 使用u盘安装提示“无法挂在光盘..”的解决方案
查看>>
kali2.0安装完乱码
查看>>
VirtualBox 安装 Kali linux 之后的简单设置
查看>>
Ubuntu系统上安装Nginx服务器的简单方法
查看>>
Ubuntu Linux系统下apt-get命令详解
查看>>
ubuntu 16.04 下重置 MySQL 5.7 的密码(忘记密码)
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>
HTTPS那些事 用java实现HTTPS工作原理
查看>>
mysql游标嵌套循环
查看>>
oracle函数trunc的使用
查看>>
MySql四舍五入
查看>>
在navicat上设置定时计划执行存储过程
查看>>
mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
查看>>
js 阻止form表单提交
查看>>
MySQL 将查询出来的一列数据拼装成一个字符串
查看>>
MySQL 存储过程或者函数中传参数实现where id in(1,2,3,...)IN条件拼接
查看>>