我见过许多 ANSI C 编译器必须支持的最低要求,例如函数最多支持 31 个参数,大多数数字似乎都有一定的道理。
然而,我无法理解至少需要支持源代码行中的 509 个字符的原因。511 或者 512 更合理,但是 509 似乎有点武断。
这个数字的原因是什么?
我见过许多 ANSI C 编译器必须支持的最低要求,例如函数最多支持 31 个参数,大多数数字似乎都有一定的道理。
然而,我无法理解至少需要支持源代码行中的 509 个字符的原因。511 或者 512 更合理,但是 509 似乎有点武断。
这个数字的原因是什么?
这也许是要考虑到可能出现的CR
+LF
+'\0'
字符,并且使每行的字符串表示仍适合512字节的内存。
CR
或LF
字符 - 我恐怕还是在猜测。 - Digital Trauma\r\n
的假设就变得不那么相关了(如果您有一个有大小的块,则可以根据需要添加终止字符),但是您确实需要两个八位字节来描述数字[0, 512),并且您可能希望保留\0
以便于C代码更好地使用空终止。 - mtraceur"
字符和\0字符组成的。
我不认为这2个字符是用于CRLF的,有两个原因:这些不是您必须写入的默认字符,并且对于LINUX而言,它只有LF。这就是为什么我说是两个"
字符的原因。