不同编译器如何处理 C 语言函数名?

https://godbolt.org/z/YrzsWbMh8

在以下几种编译器上都尝试了:

  1. x86-64 gcc 13.2
  2. x86-64 clang 18.1.0
  3. x64 msvc v19.38
  4. x86 msvc v19.38

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