gpt4 book ai didi

visual-c++ - 使用 #pragma Once 或 #ifndef#endif 哪个更有效?

转载 作者:行者123 更新时间:2023-12-03 00:55:47 25 4
gpt4 key购买 nike

为了避免多次包含头文件,我的一位 friend 建议采用以下方法

  #ifndef _INTERFACEMESSAGE_HPP
#define _INTERFACEMESSAGE_HPP
class CInterfaceMessage
{
/ /Declaration of class goes here
//i.e declaration of member variables and methods
private:
int m_nCount;
CString m_cStrMessage;
public:
CString foo(int);
}
#endif

其中 _INTERFACEMESSAGE_HPP 只是一个标识符

但是当我使用 Visual Studio 2005 IDE 声明一个类时,我得到的声明为 #pragma 一次在类定义的开头当我在msdn的帮助下找到#pragma的目的时它给了我以下解释

“指定编译器在编译源代码文件时仅包含(打开)该文件一次。”

有人请告诉哪种方法是正确的?如果两者都正确,那么有什么区别?一种方法比另一种更好吗?

最佳答案

gcc 的编译指示已被弃用。您应该使用标准包含防护。所有编译指令都是根据定义实现来定义的。因此,如果您想要可移植性,请不要使用它们。

关于visual-c++ - 使用 #pragma Once 或 #ifndef#endif 哪个更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5537107/

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