MIPS:.asciiz 的大小?
MIPS: Size of .asciiz?
When determining the size of .asciiz string, should I take into
consideration the terminating character ?
例如:
.data
string: .asciiz "Hello"
“字符串”的大小是 5 还是 6(字节)?
如果你问的是字符串在内存中存储了多少字节,那么它是 6 个字节
如果你问的是计算字符串长度的函数(例如 strlen C 函数)应该返回什么,它应该是 5
这个特定的 asciiz 字符串需要 6 个字节的存储空间。
在编程情况下,您将测量字符串大小为 5。如 strlen()
。
使用此字符串时,您的循环很可能会测试 NULL
条件,并将 运行 进行 5 次迭代。
复制、存储此字符串时,您的代码可能会循环 5 次,然后(在循环外)在末尾添加一个额外的 NULL '\0' 字符,以保持 NULL
终止。因此目标存储 space 必须比 strlen()
.
多 1
ascii的每个字符都是1个字节。如果你写 hello 它是 5 byte
同意 Robert 的观点,在这种情况下,内存中的字节总数为 6。然而,正如 Paxym 所解释的那样,在高级语言中,它会将字符串 'size' 测量为 5。
When determining the size of .asciiz string, should I take into consideration the terminating character ?
例如:
.data
string: .asciiz "Hello"
“字符串”的大小是 5 还是 6(字节)?
如果你问的是字符串在内存中存储了多少字节,那么它是 6 个字节
如果你问的是计算字符串长度的函数(例如 strlen C 函数)应该返回什么,它应该是 5
这个特定的 asciiz 字符串需要 6 个字节的存储空间。
在编程情况下,您将测量字符串大小为 5。如 strlen()
。
使用此字符串时,您的循环很可能会测试 NULL
条件,并将 运行 进行 5 次迭代。
复制、存储此字符串时,您的代码可能会循环 5 次,然后(在循环外)在末尾添加一个额外的 NULL '\0' 字符,以保持 NULL
终止。因此目标存储 space 必须比 strlen()
.
ascii的每个字符都是1个字节。如果你写 hello 它是 5 byte
同意 Robert 的观点,在这种情况下,内存中的字节总数为 6。然而,正如 Paxym 所解释的那样,在高级语言中,它会将字符串 'size' 测量为 5。