0x01 C++的static关键字主要在以下场景中用到 1)static修饰全局变量和局部变量 全局变量属于数据,放在.data或.bss段,如果是常量字符串的话,那就放在.rodata段,接下来看一下一个普通全局变量和static全局变量有什么区别? int gdata1 = 10; static int gdata2 = 10; int main() { return 0; } Linux下创建a.c文件,查看符号表: delphi@delphi-vm:~$ g++ -c a.cpp -o a.o delphi@delphi-vm:~$ objdump -t a.o a.o: file format elf32-i386 SYMBOL TABLE: 00000000 l df *ABS* 00000000 a.cpp 00000000 l d .text 00000000 .text 00000000 l d .data 00000000 .data 00000000 l d .bss 00000000 .bss 00000004 l O .data 00000004 _ZL6gdata2 00000000 l d .note.GNU-stack 00000000 .note.GNU-stack 00000000 l d .eh_frame 00000000 .eh_frame 00000000 l d .comment 00000000 .comment 00000000 g O .data 00000004 gdata1 00000000 g F .text 0000000a main 00000000 *UND* …
