gpt4 book ai didi

c++ - 关于条件编译 (ifndef) 的快速问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:14 25 4
gpt4 key购买 nike

这很可能是一个非常愚蠢的问题,但我需要确定。我在头文件中得到了一个类声明,例如。

#ifndef file_H
#define file_H

class ex{
private:

public:
};

#endif

并且我被要求在同一个文件中编写方法定义,我已经完成了,我的问题是“#endif”是留在类声明之后的位置还是在类声明的末尾我的文件在类方法定义之后?

最佳答案

在文件末尾。

#ifndef 模式的这种形式的目标是防止相同的声明或定义在编译单元中出现两次的情况。

这样做是因为一个 C 文件可能包含多个 H 文件,而这些 H 文件在链的上游某处可能又包含同一个文件。如果您只是在没有这些的情况下运行预处理器,您将拥有 H 文件的多个拷贝。这样,您有多个拷贝,但预处理器在第一次遇到后会忽略所有内容。

由于您不应该多次定义任何内容,因此如果您必须将方法定义放在头文件中,请将它们放在 #endif 中。

关于c++ - 关于条件编译 (ifndef) 的快速问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2842560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com