我总是想知道c和汇编声明中的下划线字符的功能(以及其他地方)。 在像
这样的陈述中,'_'的含义是什么?MSVCRT!_output:
77c3f0f3 55 push ebp
77c3f0f4 8bec mov ebp,esp
77c3f0f6 81ec50020000 sub esp,0x250
77c3f0fc 33c0 xor eax,eax
77c3f0fe 8945d8 mov [ebp-0x28],eax
77c3f101 8945f0 mov [ebp-0x10],eax
77c3f104 8945ec mov [ebp-0x14],eax
77c3f107 8b450c mov eax,[ebp+0xc]
或
#ifdef __unix__ /* __unix__ is usually defined by compilers targeting Unix systems */
# include <unistd.h>
#elif defined _WIN32 /* _Win32 is usually defined by compilers targeting 32 or 64 bit Windows systems */
# include <windows.h>
#endif
或
#if !(defined __LP64__ || defined __LLP64__) || defined _WIN32 && !defined _WIN64
// we are compiling for a 32-bit system
#else
// we are compiling for a 64-bit system
#endif
在C预处理器中? (这些只是我在飞行中选择的例子=
为什么以及何时使用单下划线? 非常感谢你的帮助! Ñ
答案 0 :(得分:0)
汇编中的下划线字符没有特殊含义。它通常用作长描述性标签中空格的替代:jumps_here_when_the_things_go_wrong:
无论如何,使用下划线作为第一个char可能只是C编程的习惯。来自其他语言的汇编程序员不使用这样的标签。
我个人认为,仅在库中使用以下划线开头的标签,仅供内部使用的全局标签使用。
所使用的下划线的数量取决于从图书馆外部使用此标签的不受欢迎程度 - 一个下划线表示“想想你做的”,三个下划线表示“从不,根本不使用它”。