文章目录
一、头文件定义
1、头文件导入限制
2、兼容 C++ 语言
3、函数形参输入输出属性
4、代码示例
一、头文件定义
1、头文件导入限制
头文件导入限制 : 防止头文件多次导入 , 将头文件的内容 , 使用下面的宏定义包裹 ;
// 防止多次导入 #ifndef __CFG_H__ #define __CFG_H__ #endif // __CFG_H__
2、兼容 C++ 语言
兼容 C++ 语言 : 为了使该头文件既可以在 C 语言中使用 , 又可以在 C++ 中使用 , 使用如下宏定义 包裹 头文件内容 ;
// 兼容 C++ #ifdef __cplusplus extern "C" { #endif // __cplusplus #ifdef __cplusplus } #endif // __cplusplus
3、函数形参输入输出属性
如果函数形参 作为输入 , 可以在形参名很后面添加 /*in*/ 注释 ;
如果函数形参 作为输出 , 可以在形参名很后面添加 /*out*/ 注释 ;
如果函数形参 即作为输入 , 又作为输出 , 可以在形参名很后面添加 /*in out*/ 注释 ;
这个注释没有实际的意义 , 本质是普通注释 , 但是可以增加代码的可读性 ;
// 获取配置项 int read_config_file(char *filename /*in*/, char *key /*in*/, char * value/*in out*/, int * value_len /*out*/);
4、代码示例
头文件代码示例 :
// 防止多次导入 #ifndef __CFG_H__ #define __CFG_H__ // 兼容 C++ #ifdef __cplusplus extern "C" { #endif // __cplusplus // 定义接口时 , 如果函数形参用作输入数据时 , 可以在形参名很后面添加 /*in*/ 注释 // // 获取配置项 int read_config_file(char *filename /*in*/, char *key /*in*/, char * value/*in out*/, int * value_len /*out*/); // 写出 / 更新配置项 int write_or_update_config_file(char *filename /*in*/, char *key /*in*/, char *value/*in*/, int value_len /*in*/); #ifdef __cplusplus } #endif // __cplusplus #endif // __CFG_H__