Jessie-Cheng1 / xuexi

0 stars 0 forks source link

C++头文件定义:防卫式声明 #12

Open Jessie-Cheng1 opened 2 years ago

Jessie-Cheng1 commented 2 years ago

防卫式声明的作用是:防止由于同一个头文件被包含多次,而导致了重复定义。 两种格式:

  1. 宏定义
    
    #ifndef _FILENAME_
    #define _FILENAME_
    ...
    #endif

2. 编译器指令
`#pragma once`

 #ifndef 依赖于宏定义名,当宏已经定义时,#endif之前的代码就会被忽略,但是这里需要注意宏命名重名的问题;

 #pragma once 只能保证同一个文件不会被编译多次,但是当两个不同的文件内容相同时,仍然会出错。而且这是微软提供的编译器命令,当代码需要跨平台时,需要使用宏定义方式。

#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作

参考:
[防卫式声明](https://blog.csdn.net/dingzhiq1/article/details/53148643)