#pragma once
在C/C++中,为了避免同一个头文件被重复包含,最常用的方式是使用宏:#ifndef ... #define ... #endif,除此之外还有一种方式:#pragma once。
第一种方式:
1 #ifndef PORTAL_USER_H 2 #define PORTAL_USER_H 3 ... 4 ... 5 #endif
第二种方式:
1 #pragma once 2 ... 3 ...
#ifndef, #define, #endif是C/C++语言中的宏定义,依赖于宏名字不能冲突来避免头文件多次包含。它不仅可以保证同一个头文件不会被包含多次,也能保证内容完全相同的两个文件不会被同时包含。但是,如果不同头文件中的宏名不小心”碰撞”,可能就会导致你看到头文件明明存在,编译器却找不到声明的状况。由于编译器每次都需要打开头文件才能判定是否有重复定义,因此在编译大型项目时,此方式会使得编译时间相对较长,因此一些编译器逐渐开始支持#pragma once的方式。这种方式是所有C/C++编译器都支持的,如果写的程序要跨平台,最好使用这种方式。
#pragma once是编译器相关的,有的编译器支持,有的编译器不支持。相对于使用宏方式,使用此种方式,大型项目的编译速度会有所提高。
浙公网安备 33010602011771号