-
为什么strncpy()不能总在目标串放上终止符’\0’?SPan>
strncpy() 最初被设计为用来处理一种现在已经废弃的数据结构—...
-
scanf() 有很多问题—— 参见问题12.15, 12.16 和12.17。而且, 它的%s 格式 有着和gets() 一样的问题(参见问题12.20)...
-
C99 标准定义了long long 类型, 其长度可以保证至少64 位, 这种类型在某些编译器上实现已经颇有时日了。其它的编译器则实现了类似longlong 的扩展。SPan...
-
毫无用途;它已经过时。参见问题20.32。SPan>
-
函数只定义了一次,调用了一次,为什么提示非法重定义?
在范围内没有声明就调用(可能是第一次调用在函数的定义之前) 的函数被认为返回整型(int) (且没有任何参数类型信息), 如...
-
问题:对于没有初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为“零”, 它可否作为空指针或浮点零?具有“静态” 生存期...
-
用下面这样的代码SPan>extern int func();SPan>int (*fp)() = func;SPan>当一个函数名出现在这样的表达式中时, 它就会&l...
-
第一种形式声明了一个“结构标签”; SPan>
第二种声明了一个“类型定义”。SPan>
主要的区别是在后文中你需要用&...
-
让客户使用指向没有公开定义(也许还隐藏在类型定义后边) 的结构类型的指 针是一个好办法。SPan>
只要不访问结构成员, SPan>
声明和使用“匿名&rd...
-
把函数指针直接加入到结构中就可以实现简单的“方法”。SPan>
你可以使用各种不 雅而暴力的方法来实现继承, 例如通过预处理器或含有“基类...
-
问题:我遇到这样声明结构的代码: struct name { int namelen; char&nbSP;namestr[1];}; 然后又使用一些内存分配技巧使namestr ...
-
没有。SPan>
编译器没有简单的好办法实现结构比较(即, 支持结构的== 操作符), SPan>
这也符合C 的低层特性。SPan>
简单的按字节比较会由于结构...
-
传统的C 没有办法生成匿名结构值; SPan>
你必须使用临时结构变量或一个小的结构生成函数。SPan>C99 标准引入了“复合常量” (comp...
-
用fwrite() 写一个结构相对简单:SPan>
fwrite(&somestruct, sizeof somestruct, 1, fp);SPan>
对应...
-
问题:我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外部 数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域的 对齐方式?&nbSP;这...
-
为了确保分配连续的结构数组时正确对齐, 结构可能有这种尾部填充。SPan>
即使 结构不是数组的成员, 填充也会保持, 以便sizeof 能够总是返回一致的大小。SPan...
-
ANSI C 在<stddef.h> 中定义了offsetof() 宏, 用offsetof(struct s, f) 可以计算出域f 在结构s 中的偏移量。SPa...
-
问题程序:SPan>
struct list {SPan>
char *item;SPan>
struct list *next;SPan>
}SPan...
-
只有很小的区别。
C 标准中允许枚举和其它整形类别自由混用而不会出错。
(但是, 假如编译器不允许在未经明确类型转换的情况下混用这些类型,则聪明 地使用枚举可以捕捉到某些程序错...
-
问题:
使用我的编译器,
下面的代码int i=7; printf("%d\n", i++ * i++); 返回49?
不管按什么顺序计算, 难道不该打印出56吗?&nbSP...