我又来了,帮我看看这个s怎么有效地定义啊?
这是我一个程序改了之后的[face]monkey2:024.png[/face][face]monkey2:024.png[/face][face]monkey2:024.png[/face]



把s写在.h里,那么包含该.h的.c文件可以看到该变量声明,反过来则是绝对不行的。(.h包含.c在语法上可能不会报错,但这么做没有意义,通常会引发错误。)你在.h引用s时,s还没声明。
如果你需要全局变量,也得在头文件进行声明。声明和定义最主要的区别是,声明需要一个extern关键字,而且声明不具有定义效力,但定义具有声明效力。具有定义效力的符号不能重复出现,所以不能在头文件定义,但必须在头文件声明。如果在头文件忘记声明,会报编译错误:找不到标识符;如果在头文件进行定义,会报链接错误:符号重定义(如果仅有一处使用该头文件则不会,但要养成好习惯)。