我在head.h中定义一个变量 int head_value1 = 1; int head_value2; 请问,我在源文件中像下面的方法使用是否正确? //file.c void pf() { head_value1 = 10; head_value2 = 20; printf("Source file head_value1 = %d : head_value2 = %d\n",head_value1,head_value2); } 对我有用[0]丢个板砖[0]引用举报管理TOP 回复次数: 6 fox000002 (糊糊。。闭关闭关) 等 级: #1楼 得分:5回复于:2008-11-16 23:03:36 头文件尽量不要定义变量声明即可 C/C++ code extern int head_value1; 源文件里定义 C/C++ code int head_value1 = 1 ; 对我有用[0]丢个板砖[0]引用举报管理TOP 精华推荐: qq公司的08年招聘面试题 不会做 大家给帮忙看看咋作 最后能说说原理 lonelywinter340 (Jimmy.Yang) 等 级: #2楼 得分:5回复于:2008-11-16 23:11:51 这种全局变量最好不要在头文件中定义 如果想要在多个.c或.cpp文件中共享变量的话,应该在一个文件中定义该变量,其他文件中用extern来声明该变量 对我有用[0]丢个板砖[0]引用举报管理TOP 精华推荐: 请教:char *p="abcdef"和char s[]="abcdef"存储在哪里的问题! hqin6 (太乙) 等 级: #3楼 得分:5回复于:2008-11-16 23:25:32 C/C++ code 如果是多个文件,多个cpp / c包含同一个.h文件,那么在这个.h里的全局变量,必须只是声明,而不是定义 否则会出现多次定义的错误 方式: .h: extern int i; // 声明 .cpp / c: #include < .h > int i; // 定义 使用: .cpp / c #include < .h > i = 10 ; 如果是多个文件,多个cpp/c包含同一个.h文件,那么在这个.h里的全局变量,必须只是声明,而不是定义否则会出现多次定义的错误方式:.h: extern int i;//声明 .cpp/c: #include<.h> int i;//定义 使用: .cpp/c #include<.h> i = 10;