1. 如何防止头文件被重复包含(#include)
-- 可以使用条件编译,所有头文件都标记:
#ifndef _HEADERNAME_H
#define _HEADERNAME_H
#include ...
#endif
当头文件第一次被包含时,它被正常处理,符号_HEADERNAME_H被定义为1,头文件被再次包含,通过条件编译,它的内容被忽略;符号_HEADERNAME_H按照被包含头文件的文件名进行取名,以避免由于其他头文件使用相同的符号而引起的冲突。
2. 如何放防止变量被重复定义
test.h | test.h--diff |
#ifndef _TEST_H_ #define _TEST_H_ // 防止test.h被重复包含 char add1[] = "zly"; char add2[] = "zyj"; int i = 10; void test1(); void test2(); #endif |
××× ××× extern char add1[]; extern char add2[]; extern int i; ××× ××× ××× |
test.c | test.c--diff |
#include <stdio.h> extern i; |