强符号:编译器默认函数和初始化的全局变量为强符号
弱符号:未初始化的全局变量为弱符号。也可以通过atrribute((weak))来指定。
编译器关于强弱符号的规则有:
(1)强符号不允许多次定义,但强弱可以共存;
(2)强弱共存时,强覆盖弱;
(3)都是弱符号时,选择占用空间最大的,如选择double类型的而不选择int类型的。
初始化了的全局变量位于数据段,未初始化的静态位于bss段。
强符号:编译器默认函数和初始化的全局变量为强符号
弱符号:未初始化的全局变量为弱符号。也可以通过atrribute((weak))来指定。
编译器关于强弱符号的规则有:
(1)强符号不允许多次定义,但强弱可以共存;
(2)强弱共存时,强覆盖弱;
(3)都是弱符号时,选择占用空间最大的,如选择double类型的而不选择int类型的。
初始化了的全局变量位于数据段,未初始化的静态位于bss段。