此贴希望有人能够指出我现在这种理解有没有问题,欢迎指正!
例子:
平台:vs2005
使用.c和.h文件
主函数文件Appmain.c ,全局变量和函数声明文件 command.h ;
1. static 的使用: 为了结构和阅读方便,子函数按照功能划分到subfunc.c/data.c/...等等.c文件中,如果使用的函数或变量仅在本文件中使用,则在子文件.c头部声明 static +变量名;
2. extern 的使用: 如果函数或变量需要在两个或两个以上文件中使用并都能对变量读写,则可以在其中之一的文件中直接声明变量类型,但不能加static,另外文件头部使用extern引用;否则引用的变量不能得到原函数的赋值.
3. 在两个以上文件中需要对变量进行读写的话则可以依照方法2,但是也可以在各个文件头部增加#include "command.h",然后直接在command.h中声明变量.
心得:
1.单文件中使用的变量尽量在声明时加上static修饰,避免调用不同文件产生问题;
2. 全局变量声明书写要有一定风格,很多代码中对全局变量声明都如:" G_imynum"即G表示全局(globe的意思?),i为整型,mynum表示具体变量的意义.
如果上述理解没有问题,那么在头文件中声明static 变量究竟限制了那些操作?