链接器处理多重定义的全局符号: 规则1:不允许多个同名强符号(会error)规则2:如果有一个强符号和多个同名弱符号,会选择强符号(意味着弱符号会被刷掉)规则3如果有多个弱符号同名那么从中任选一个 如果x在一个模块中定义为全局的double另一个模块里定义成全局的int编译器会选择double型存储,这些错误会在很远的地方爆发。 用GCC -fno-common这个选项会告诉链接器遇到多重定义符号会触发一个错误。-Werror把所有警告当做错误处理