把s写在.h里,那么包含该.h的.c文件可以看到该变量声明,反过来则是绝对不行的。(.h包含.c在语法上可能不会报错,但这么做没有意义,通常会引发错误。)你在.h引用s时,s还没声明。
如果你需要全局变量,也得在头文件进行声明。声明和定义最主要的区别是,声明需要一个extern关键字,而且声明不具有定义效力,但定义具有声明效力。具有定义效力的符号不能重复出现,所以不能在头文件定义,但必须在头文件声明。如果在头文件忘记声明,会报编译错误:找不到标识符;如果在头文件进行定义,会报链接错误:符号重定义(如果仅有一处使用该头文件则不会,但要养成好习惯)。
赞你这种坚持的精神。
请用 ‘代码’ 控件把你的代码贴出来, 这样大家都能清楚地看到所有代码。
switch 命令请看: https://blog.csdn.net/qq_34625397/article/details/99579943