不同编译器如何处理 C 语言函数名?
https://godbolt.org/z/YrzsWbMh8
在以下几种编译器上都尝试了:
- x86-64 gcc 13.2
- x86-64 clang 18.1.0
- x64 msvc v19.38
- x86 msvc v19.38
发现只有 x86 msvc v19.38 给函数名前面加了下划线,其他几种编译器都是尊重函数定义的名字。以前做川合秀实的 30 天自制操作系统时,还以为所有编译器都会固定地给 C 语言函数名前面加上下划线,所以汇编中引用时有一些区别。现在看来只是因为平台不同,所以编译器处理方式也不同。