问题 The following compiles fine, using static only during declaration of function: #include <stdio.h> static int a(); int a(){ return 5; } int main(){ printf("%d\n", a()); return 0; } As a side note, same behaviour as above happens with inline functions, i.e only the declaration could have the keyword. However the following fails, doing the same but on a variable: #include <stdio.h> static int a; int a = 5; int main(){ printf("%d\n", a); return 0; } Getting thew error: non-static declaration of