读书人

举例来说防止全局变量、头文件重复

发布时间: 2012-09-15 19:09:29 作者: rapoo

举例——防止全局变量、头文件重复包含

C语言中经常会出现文件重复包含而导致全局变量重复定义,下面以一个例子说明

-----Makefile:

#define ERRHANDLE_GLOBALS/* 这条语句必须位于 #include "errhandle.h" 的前面 */
这种方法的原理很简单:

定义过 ERRHANDLE_GLOBALS 的文件: ERRHANDLE_EXT int errcode; == int errcode;

未定义过 ERRHANDLE_GLOBALS 的文件: ERRHANDLE_EXT int errcode; == extern int errcode;

这样,就只有一份 int errcode; 的声明在 errhandle.c 中,其它文件均为 extern int errcode;

其实,预处理之后跟第一种方法是一样的















读书人网 >编程

热点推荐