永发信息网

#ifndef谁能详细解说下?

答案:4  悬赏:50  手机版
解决时间 2021-03-06 03:05
  • 提问者网友:刺鸟
  • 2021-03-05 15:02
#ifndef谁能详细解说下?
最佳答案
  • 五星知识达人网友:等灯
  • 2021-03-05 16:10
#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。

全部回答
  • 1楼网友:动情书生
  • 2021-03-05 18:15
最常见的用法是防止重复编译同一个头文件……
  • 2楼网友:往事埋风中
  • 2021-03-05 17:29
其实百科里已经说的很详细了。
就是判断某个宏是否已经被定义过了。
#ifndef 和 #endif 是成对出现的
一般是:
#ifndef XXXXX
#define XXXXX //这里也可以是别的语句,比如报错处理等
#endif
可以通俗理解为:
#如果没有定义 XXXXX
#则定义 XXXXX
#结束
  • 3楼网友:街头电车
  • 2021-03-05 17:21
#ifndef __HEAD__ 意思就是如果没有定义__HEAD__ 的宏
#define __HEAD__

代码区。。。

#endif
//常用的地方是防止头文件被重复引用 第一次引用头文件进入#ifndef __HEAD__ ,没有定义__HEAD__ 宏 然后进入#define __HEAD__ ,下次再引用就定义了__HEAD__
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯