C语言链接决议的规则如此。带初始化的称为强符号,不带的称为弱符号。多重强符号是链接错误。一强多弱取强符号。多个弱符号取最大的一个。 sin_value.c和main.c都声明了angle,因为如果在不同的c文件中定义了同名的全局变量,它们会占用同一个地址,而且编译链接时不会报错,所以两个angle是一个地址,所以sin_value(void)也接收到了angle的值