在确定.asciiz字符串的大小时,我应该参与进来 考虑终止字符?
例如:
.data
string: .asciiz "Hello"
"字符串"的大小是5还是6(字节)?
提前谢谢。
答案 0 :(得分:2)
如果你问的是字符串存储在内存中的字节数那么它是6个字节
如果你问的是一个计算字符串长度的函数应该返回什么(例如strlen C函数)它应该是5
答案 1 :(得分:1)
这个特殊的asciiz字符串需要6个字节的存储空间。
在编程情况下,您将测量字符串大小为5.如strlen()
。
使用此字符串很可能时,您的循环将测试NULL
条件,并将运行5次迭代。
复制时,存储此字符串,您的代码可能会循环5次,然后(在循环之外),添加一个额外的NULL' \ 0'最后的字符,以保持NULL
终止。因此,目标存储空间必须比strlen()
多1个。
答案 2 :(得分:1)
同意Robert,在这种情况下,内存中的字节总数为6.然而,Paxym解释说,在高级语言中,它将测量字符串' size'是5。
答案 3 :(得分:-2)
ascii的每个字符都是1个字节。如果你写你好,它是5字节