我想定义一个宏来指示记录文本的最大大小。 像这样:
#define RECORD_TEXT_MAX_SIZE 255 /*the max size of the text which get from one record*/
然后像这样使用:
char text[RECORD_TEXT_MAX_SIZE+1];
用户必须定义数组大小“RECORD_TEXT_MAX_SIZE+1”以包含空字符。
但我想我可以这样定义
#define RECORD_TEXT_MAX_SIZE 256 /*the max size of the text which get from one record*/
然后像这样使用:
char text[RECORD_TEXT_MAX_SIZE];
我不能决定使用哪个。
你能给我一个建议吗?
一般规范是什么?
最佳答案
这确实是一个偏好问题,但我的意见是:
#define RECORD_TEXT_MAX_SIZE 255
char text[RECORD_TEXT_MAX_SIZE + 1];
原因是 RECORD_TEXT_MAX_SIZE
仍然指示缓冲区中可以容纳多少实际 字符,同时始终为空终止符留出空间。
问题或对此的反驳是,大多数 strn...
函数(采用长度参数)包括限制时的空终止符要写入多少字节。
关于c - 文本的最大大小是否包含空(停止)字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17288683/