我有点困惑,仍然没有找到明确的答案:我应该将标签命名为“label1”还是下划线“_label1”?什么是最流行和最知名的方式?如果我没记错的话,我什至见过一个带有点“.label1”的。
同样的问题也适用于函数:“function1”还是“_function1”?
从代码可维护性的角度来看,前导点和下划线不会向标签添加任何有用的信息,因此如果没有特别需要这些前缀(见下文),您应该去掉它们。您可能认为“它看起来很花哨”这一事实并不足以成为使用它们的理由。
汇编程序有时使用点来指定标签是本地的,即不作为符号导出到目标文件。这对于不使用不需要的符号污染全局名称空间很有用。
其他汇编器使用点来表示汇编器指令,并且根本不允许在符号中使用点。
下划线通常由必须与高级语言集成的汇编代码使用。一些 C 编译器在所有导出的符号前面加上下划线,为了能够从 C 代码中调用,汇编函数需要遵循这个规则。
通常,您的汇编器(和/或编译器,如果您与编译代码集成)手册应该能够告诉您特定的汇编器支持或需要哪些变体。如果手册没有明确告诉您何时以及为什么应该使用这样的前缀,请不要使用它们 - 汇编器标签是自我记录代码的一个(最少也是最重要的)部分。如果你不需要,不要把它浪费在无意义的前缀上。