关于static关键字应用到函数上的文章网上比比皆是,但我一直不太能完全理解,我一直觉得只要函数不声明在头文件中,即使不是静态,别的文件也无法采用。但最近看到网上的一个例子。

1 char a = 'A'; // global variable
2 void msg() 
3 {
4     printf("Hello\n"); 
5 }
1 int main(void)
2 {    
3     extern char a;    // extern variable must be declared before use
4     printf("%c ", a);
5     (void)msg();
6     return 0;
7 }

上面的代码没说msg()函数是写在头文件还是写在c文件中,于是我自己试验了一下,发现msg写在c文件中,果然是可以被其他文件调用的。然后我把msg改成static的,则编译的过程中就会报错。

 

这提醒我以后即使是C文件中的函数也要加上static关键字,避免函数名的冲突。

相关文章:

  • 2021-12-24
  • 2022-01-03
  • 2022-12-23
  • 2021-06-30
  • 2021-11-27
  • 2022-12-23
猜你喜欢
  • 2021-07-19
  • 2021-05-06
  • 2021-10-03
  • 2021-10-10
  • 2021-10-27
  • 2021-04-18
相关资源
相似解决方案