一般我们打开一个C写的库,比如cJSON.h这个文件:
#ifndef cJSON__h #define cJSON__h #ifdef __cplusplus extern "C" { #endif C声明部分XXXXXXXXXXXXXXXX #ifdef __cplusplus } #endif #endif
#ifndef cJSON__h
#define cJSON__h
这个相当于是一个默认的规范,格式大概就是这样的,文件名_h , 当然也可以用别的,文件名可以保证唯一性。
用来区分在任何 C++或者C 所有的文件都能引入这个库
而C++文件默认会有一个宏 #define __cplusplus,所以用这个宏来区分C++和C
另外:
#pragma once 作用同 #ifndef _c文件名全大写_H, 但是比较老的编译器不支持,兼容性没有前者好
#pragma once只针对本文件,前者支持部分代码