1.如果一个函数仅仅被同一个源文件中的其他函数调用,我们就应该声明该函数为static
2.extern int n;
在两外一个文件中: long n;
这是一个无效的程序,因为同一个外部变量名在两个不同的文件中被声明为不同的类型。然后大多数c语言实现不能检测出这种错误。
3.一个程序由多个模块组成,每个模块都需要知道一个特定的文件名。我们希望能够做到只在一处改动这个文件名,所有模块中的文件名就能同时得到更新。
可以,先创建一个文件,叫做file.h,它包含了声明extern char filename[];
需要用到外部对象filename的每个c源文件都应该加上: #include "file.h";
最后选择一个C源文件,在其中给出filename的初始值。如在file.c中
#include "file.h";
char filename[]="/etc/passwd";
这样就保证了filename的类型是正确的。解决了2中的问题。