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中的問題。