C 程序员传统上喜欢知道很多(可能比他们需要知道的还要多) 关于机器实现的细节。
空指针在源码和大多数机器实现中都用零来表示的事实导致了很多无根据的猜测。
问题:
考虑到有关空指针的所有这些困惑,
难道把要求它们内部表达都必须为0 不是更简单吗?如果没有其它的原因, 这样做会是没脑筋的。
因为它会不必要地限制某些实现, 阻止它们...
我的strCAt() 不行.
我试了char *s1 = "Hello, "; char *s2 ="world!"; char *s3 = strCAt(s1, s2);
但...
一般地说, 使用指针的时候, 你必须总是考虑内存分配, 除非明确知道编译器替你做了此事。
如果一个库函数的文档没有明确提到内存分配, 那么通常需要调用者来考虑。Unix 型的手册...
在调用alloCA() 的函数返回的时候, 它分配的内存会自动释放。
也就是说, 用alloCA 分配的内存在某种程度上局部于函数的“堆栈帧&rdquo...
字符和字符串的区别显而易见, 而strCAt() 用于连接字符串。
C 中的字符用它们的字符集值对应的小整数表示, 参见下边的问题8.4。
字符串用...
简单地说:
实现定义意味着实现必须选择某种行为并提供文档。
未明确意味着实现必须选择某种行为但不必提供文档。
未定义意味着任何事情都可能发生。
标准在任何情况下都不强加需求...
问题:
我发现如果坚持检查返回值以确保用户输入的是我期待的数值, 则 sCAnf() 的使用会安全很多, 但有的时候好像会陷入无限循环。在sCAnf() 转换数字的时候, 它遇到...
sCAnf() 有很多问题—— 参见问题12.15, 12.16 和12.17。
而且, 它的%s 格式有着和gets() 一样的问题(参见问题12.20...