#ifndef用于避免多重包含

摘要:
原因:在C语言中,一个重要的头文件可能包含在多个文件中。如果多个编译文件包含相同的头文件,则可能存在头文件被多次包含的问题。

原因:C中,某一个重要的头文件可能被多个文件包含,如果编译的多个文件均包含了同一个头文件,

就可能存在,一个头文件被多次包含的问题。

用法:这个问题,一般用#ifndef来解决。

1、定义一个与文件名相同的标识符来标识该头文件,点号用下划线替换,例如:myhead_h_,
因为前下划线被系统库占用了,所以,多添加一个后划线来标识,表示用于标识文件名的惯用法。

2、然后用#ifndef来包含需要的头文件内容。如果之前没有定义该标识符,说明是第一次,则包含内容。

如果,已经定义了,则略过。

3、具体的写法如下:

#ifndef  myhead_h_
#define  myhead_h_
... 此处为头文件内容
#endif

免责声明:文章转载自《#ifndef用于避免多重包含》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇esp8266物联网开发四:MQTT再论部控js中动态载入css js样式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

浅析前端常见文件下载的9种场景:Blob基础知识/组成/Blob URL、a标签下载、showSaveFilePicker API下载(兼容性差)、FileSaver.js库下载、Zip下载(JSZip库)、附件形式下载(设置Content-Disposition)、base64格式下载(需转为blob)、分块传输下载、HTTP范围请求下载、大文件分块并行下载

它主要涉及九种文件下载场景。在浏览器端文件下载场景中,JavaScript中的blob类型对象表示一个不可变的原始数据类文件对象。在JavaScript中,您可以通过blob构造函数创建blob对象,blob构造函数表示要放入blob的数组内容的MIME类型。行终止符将更改为适合主机操作系统文件系统的新行字符,允许Blob和file对象用作图像的URL源、下...

java中cookie存取值

Cookie保存值:CookieuserCookie=newCookie(“loginInfo”,loginInfo);userCookie.setMaxAge(30*24*60*60);//生存期为一个月30*24*60*60userCookie.setPath(“/”);response.addCookie(userCookie);Cookie值:Coo...

Oracle 12c新特性(For DBA)

2: Oracle12cIn-MemoryOracle12cIn-Memory提供了一种独特的双格式体系结构,它可以使用传统的行格式和新的内存列格式同时在内存中存储表。与其他NOSQL分片结构相比,OracleSharding提供了优异的运行时性能和更简单的生命周期管理。OracleSharding使用GDS体系结构自动部署和管理分片和复制技术。GDS还提供...

windows下vue项目启动步骤

辗转反侧之后,我终于开始了构建的vue项目。我记下了备份步骤。它只适用于那些没有启动前端项目经验的人,可能对其他人没有参考价值:OS:windows7gitclone已经为构建的vue项目安装了Nodejs。6.10以上的最新版本似乎能够自动配置路径和npm。无论如何,安装后,我可以使用cmd在任何路径下查询“node version”或“npm-v”以提供...

Unreal Engine is exiting due to D3D device being lost

先保证显卡驱动最新,然后打开显卡控制面板,关掉“优化以提高计算性能”:参考的是游戏玩家的经验总结:黄卡驱动“优化以提升计算性能”疑问,附简单测试其他常规解决方案:1.[Solved]UnrealEngineisexitingduetoD3Ddevicebeinglost2.由于D3D设备丢失,如何解决虚幻引擎闪退问题?...

微信公众号平台开发(三):几大微信接口的调用

但是,有一些高级接口。您的微信公众号必须具有一定的权限,例如通过微信认证,才能调用自定义菜单、微信支付和其他高级功能。不过,微信公众号的测试号系统可以应用这些高级接口。菜单类型很多,但xml类型不同。详情可在微信公众号平台查看相应文件。...