数组版本是否会分配数组内存,所以一个 100 字节的字符串将在常量部分使用 100 个字节,在静态数组上使用 100 个字节,还是总共只使用 100 个字节?而指针版本,除了字符串的 100 字节之外,它会为指针分配字大小,还是将指针完全优化为常量部分地址?
问问题
2438 次
1 回答
1
如果您使用的是普通计算机,则有一个.rodata
部分:
#include <stdio.h>
static const char *s = /* string of 100 characters */;
int main(void)
{
puts(s);
return 0;
}
它在节中分配100 + sizeof(char *)
字节。.rodata
#include <stdio.h>
static const char s[100] = /* string of 100 characters */;
int main(void)
{
puts(s);
return 0;
}
它在节中分配100
字节。.rodata
于 2013-01-12T14:14:45.683 回答