use*_*544 5 llvm
我只是 llvm 汇编的初学者,我喜欢问我不确定的所有问题。
我只是在看 hello world 程序和 @str = 内部常量 [13 x i8] c"hello world\0A\00"
我不明白后缀是什么意思 \0A\00 我尝试读取它,但最终输出没有换行符,但是如果我只有 \0A 换行符就会回来......我觉得 \00 是没用……是真的吗?
Oak*_*Oak 6
在 LLVM IR 语法中,反斜杠后跟两个十六进制字符表示该字符的ASCII 值与这两个字符定义的值相同。
在本例中,字符是索引 10 (0xA) 处的字符(换行符)和索引 0 处的字符(称为“null”),用于在许多不同系统中终止字符串。在 C 语言中,这些将被写为\nand \0 (或只是 0),并\0隐式添加到 C 中文字字符串的末尾(但在 LLVM IR 中则不然)。
\n
\0
换句话说,你看到的字符串相当于"hello world\n"C中的字符串。
"hello world\n"
注意:虽然可以使用非空终止字符串,但这是非常不健康的,并且许多内置字符串操作会对这些字符串产生未定义的行为。不要省略空终止符。
归档时间:
12 年,9 月 前
查看次数:
2444 次
最近记录:
6 年,8 月 前