我注意到在很多地方,字符缓冲区的大小是这样确定的:
const int bufferSize = 255;
char buffer[bufferSize+1];
为什么加一个?因为 char 可以存储 256 个值,为什么不立即这样定义它:
const int bufferSize = 256;
char buffer[bufferSize];
字符数组也一样:
const int MAX = 256;
char array[MAX];
我注意到在很多地方,字符缓冲区的大小是这样确定的:
const int bufferSize = 255;
char buffer[bufferSize+1];
为什么加一个?因为 char 可以存储 256 个值,为什么不立即这样定义它:
const int bufferSize = 256;
char buffer[bufferSize];
字符数组也一样:
const int MAX = 256;
char array[MAX];
大小与分配缓冲区的大小
char无关——甚至是 1 兆字节 :)为了方便,它是这样分配的,如果你分配一个
bufSize+1字节,你可以bufSize在其中存储一个字符串(另一个用于终止空字符)。至于具体的 255,在我看来,这里的原因是相当心理上的——比如,一个圆(二进制意义上的 :))数字,再加上通常这个大小不能超过文件名(例如,
_MAX_FNAME在 Windows 中)。