永发信息网

#ifndef谁能详细解说下?

答案:4  悬赏:50  手机版
解决时间 2021-03-06 03:05
#ifndef谁能详细解说下?
最佳答案
#include 

// a header file utility.h
#ifndef UTILITY
#define UTILITY

int fibonacci(int x);

#endif

// you can include this header file twice or more
#ifndef UTILITY
#define UTILITY

int fibonacci(int x);

#endif

int main()
{
    int n;
    std::cin >> n;
    std::cout << fibonacci(n) << std::endl;;

    return 0;
}

// the code of fibonacci function may probably be in utility.cpp
int fibonacci(int x)
{
    if (x == 0) {
        return 0;
    } else if (x == 1) {
        return 1;
    } else {
        return fibonacci(x - 2) + fibonacci(x - 1);
    }
}他们说的基本都是对的,这样做可以防止重复引入头文件,如代码中的第二段引入的fibonacci函数的声明就跳过了,因为UTILITY已经被define了。我这里给了一个例子,你可以试一试。不明白再解释。


通常文件结构是不在一起的,如这个例子,可以分为:main.cpp,utility.h,utility.cpp。

全部回答
最常见的用法是防止重复编译同一个头文件……
其实百科里已经说的很详细了。
就是判断某个宏是否已经被定义过了。
#ifndef 和 #endif 是成对出现的
一般是:
#ifndef XXXXX
#define XXXXX //这里也可以是别的语句,比如报错处理等
#endif
可以通俗理解为:
#如果没有定义 XXXXX
#则定义 XXXXX
#结束
#ifndef __HEAD__ 意思就是如果没有定义__HEAD__ 的宏
#define __HEAD__

代码区。。。

#endif
//常用的地方是防止头文件被重复引用 第一次引用头文件进入#ifndef __HEAD__ ,没有定义__HEAD__ 宏 然后进入#define __HEAD__ ,下次再引用就定义了__HEAD__
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
液氧.液氮.液氩的密度由高向低的排列顺序是()
南充市高坪区青居镇关庙社区居委会地址在什么
万鑫阁健足养生会馆怎么样,好不好的默认
鼠标黏黏的怎么办
关于体液免疫的叙述正确的是A. 有的抗原可以
杭黄高速铁路的初步设计变化
华为荣耀v10报价是多少钱
石灰水可以用碱代替吗
和平寨在哪里啊,我有事要去这个地方
多肉老桩上新长出来新芽要不要继续埋在土里
对于采用时程分析法进行抗震设计的工程,按《
3DMAX 9.0 里的布尔运算使用不了是 什么原因
重庆从双碑到菜园坝怎么走
香炸藕条的做法步骤图,酥香炸藕条怎么做好
燃气壁挂炉可以外置个大的循环泵么自带的不够
推荐资讯
南京大饭店停车场我想知道这个在什么地方
青岛到西安物流一立方多少钱
条码打印机的STATUS的灯绿色闪烁,READY灯绿
请问小巴西龟养在玻璃杯还是塑料瓶好?玻璃杯
东莞有人收购二手plc,马达伺服的吗?
红枣+枸杞+姜+菊花,泡茶喝有什么作用?适合
inventor装配中草图绘制问题
六个星是什么成语
在三星商城买东西怎么用网银付款啊?
奥迪q3进气系统中少量气流是
如果你明知那个女孩有男朋友那你还会不会追?
腰椎间盘突出患者血液循环不畅,浑身不适怎么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?