古代的剑客们与
对手相逢时,无
论对手多么强大,
明知不敌,也要亮出自己的剑!
读者:malloc(0) 有什么用?返回一个控指针还是指向 0 字节的指针?
小林:ANSI/ISO 标准声称它可能返回任意一种; 其行为由实现定义。
读者:为什么 ANSI 标准规定了外部标示符的长度和大小写限制?
小林;问题在于连接器既不受 ANSI/ISO 标准的控制也不遵守 C 编译器开发者的规定。限制仅限于标识符开始的几个字符而不是整个标识符。在原来的 ANSI 标准中限制为 6 个字符, 但在 C99 中放宽到了 31 个字符。
读者:我的编译对最简单的测试程序报出了一大堆的语法错误。
小林:可能是个 ANSI 前的编译器, 不能接受函数原型或类似的东西。
读者:为什么有些 ASNI/ISO 标准库函数未定义?我明明使用的就是
ANSI 编译器。
小林:你很可能有一个接受 ANSI 语法的编译器, 但并没有安装兼容 ANSI 的头文件或运行库。事实上, 这种情形在使用非供货商提供的编译器, 如 gcc 时非常常见。
有时候,正是那些意想不到之人,成就了无人能成之事。
——图灵
正文完