注意 .symtab节,这个节存储符号表,假设当前可重定位目标模块为m, 符号表会告诉我们m中定义和引用的符号信息,主要分为:
- m定义,并可以被其它模块引用的全局符号:m中的非static函数,非static全局变量。
- 由其它模块定义,并被m引用的全局符号:m中使用extern声明的变量
- 只被m引用的本地符号:m中的static函数,static全局变量。
所以static可以将数据和函数私有化,因为其它模块并不可以引用它
摘自:http://minixbeta.github.io/%E6%8A%80%E6%9C%AF/c%E8%AF%AD%E8%A8%80/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F/2014/04/21/static-in-c.html