• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ifndef/define/endif作用和用法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

ifndef/define/endif”主要目的是防止头文件的重复包含和编译  

   比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。 
还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个


1.用法::标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h 

  .h文件下

  #ifndef XX_H     //放在XX.h被重复引用

  #define XX_H 

  .....

  #endif

 

2.举个例子:

假设你的工程里面有4个文件,分别是Stock.cpp,     b.h,      c.h,     d.h。
Stock.cpp的头部是:
  #include "b.h "
  #include "c.h "

b.h和c.h的头部都是:
#include "d.h "
而d.h里面有class Stock的定义。


运行:
编译器编译Stock.cpp的时候,先根据头文件#include "b.h "去编译b.h这个问题,再根据b.h里面的#include "d.h ",去编译d.h的这个文件,这样就把d.h里面的class D编译了;
然后再根据Stock.cpp的第二句#include "c.h ",去编译c.h,最终还是会找到的d.h里面的class D,但是class D之前已经编译过了,所以就会报重定义错误。

加上ifndef/define/endif,就可以防止这种重定义错误。

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#读取SAP数据发布时间:2022-07-13
下一篇:
c++学习之多态(虚函数和纯虚函数)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap