7、在引用头文件时,不要使用绝对路径。如果使用绝对路径,当需要移动目录时,必须修改所有
相关代码,繁琐且不安全;使用相对路径,当需要移动目录时,只需修改编译器的某个选项即可。
例如:
#include “/project/inc/hello.h” /* 不应使用绝对路径 */
#include “../inc/hello.h” /* 可以使用相对路径 */
8、在引用头文件时,使用 <> 来引用预定义或者特定目录的头文件,使用 “” 来引用当前目录或者
路径相对于当前目录的头文件。
#include <stdio.h> /* 标准头文件 */
#include <projdefs.h> /* 工程指定目录头文件 */
#include “global.h” /* 当前目录头文件 */
#include “inc/config.h” /* 路径相对于当前目录的头文件 */
9、为了防止头文件被重复引用,应当用 ifndef/define/endif 结构产生预处理块。
#ifndef __DISP_H /* 文件名前名加两个下划线“__”,后面加 “_H”
#define __DISP_H
...
...
#endif
10、头文件中只存放“声明”而不存放“定义”,通过这种方式可以避免重复定义。
/* 模块 1 头文件: module1.h */
extern int a = 5; /* 在模块 1 的 .h 文件中声明变量 */
/* 模块 1 实现文件:module1.c */
uint8_t g_ucPara; /* 在模块 1 的 .h 文件中定义全局变量 g_ucPara */
11、如果其它模块需要引用全局变量 g_ucPara, 只需要在文件开头包含 module1.h
/* 模块 2 实现文件:module2.c */
#include “module1.h” /* 在模块 2 中包含模块 1 的 .h 文件 */
......
g_ucPara = 0;
......
12、对于文件的长度没有非常严格的要求,但应尽量避免文件过长。一般来说,文件长度应尽量保
持在 1000 行之内。
评论1