作用:防止由于同一个头文件被包含多次,而导致了重复定义。
声明方式:
- 1. 宏定义
#ifndef _FILENAME_
#define _FILENAME_
//...
#endif
- 2. 编译器指令
#pragma once
#ifndef 依赖于宏定义名,当宏已经定义时,#endif之前的代码就会被忽略,但是这里需要注意宏命名重名的问题;
#pragma once 只能保证同一个文件不会被编译多次,但是当两个不同的文件内容相同时,仍然会出错。而且这是微软提供的编译器命令,当代码需要跨平台时,需要使用宏定义方式。