赞
踩
#pragma once是C和C++编程语言中的一个非标准但广泛支持的预处理指令,用于使当前源文件在单次编译中只被包含一次。它与#include guards有相同的作用,但有一些优点,如:代码更少,避免名称冲突,有时可以提高编译速度
代码例子:
- // Foo.h
- #pragma once
- class Foo { };
这个指令告诉编译器只包含一次Foo.h文件,不管它被导入了多少次。它相当于一个#include guard,但避免了一些问题。请注意,#pragma once不是任何ISO C++标准的一部分,它是编译器特定的
#include guard是C和C++编程语言中的一种特殊构造,用于避免处理#include指令时出现的重复包含问题。它的作用是确保编译器只处理一次某个文件,不管它被包含了多少次。
代码例子:
- // Foo.h
-
- #ifndef FOO_H_
-
- #define FOO_H_
-
- class Foo { };
-
- #endif //FOO_H_
这个指令告诉编译器如果没有定义FOO_H_这个标识符,就定义它,并包含Foo类的代码。如果已经定义了FOO_H_,就跳过这个文件
FOO_H_是一个宏,它是通过#define FOO_H_语句定义的。这个语句告诉编译器,把FOO_H_替换为一个空值。这样,当编译器再次遇到#ifndef FOO_H_时,就会检查FOO_H_是否已经被替换过,从而判断是否需要包含Foo.h文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。