用VS编程的时候,经常会在头文件中加一个#pragma once,但是之前不太明白他的作用,本篇文章用做学习记录。
#pragma once
#pragma once是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。
注意:
#pragma once是编译器相关的,有的编译器支持,有的编译器不支持,具体情况请查看编译器API文档,不过现在大部分编译器都有这个杂注了。
具体写法:
#pragma once
... ... // 一些声明语句
第二种保证头文件只能被编译一次的方法
#ifndef,#define,#endif是C/C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式。
具体写法:
方式一:
#ifndef _SOMEFILE_H_
#define _SOMEFILE_H_
.......... // 一些声明语句
俩者比较
#pragma once有的编译器可能不满足;
#ifndef,#define,#endif是C/C++语言中的宏定义,在任何编译器都有效!