-
没有。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...
-
一般来讲, 不行。Span>
运算符优先级和括弧只能赋予表达是计算部分的顺序. Span>
在如下的代码中Span>
f() + g() * h()Span>...
-
序列点是一个时间点(在整个表达式全部计算完毕之后或在||、&&、? : 或逗号运算符处, 或在函数调用之前), 此刻尘埃落定, 所有的副作用都已确保结束。ANSI/...
-
根据C 的内部类型转换规则, 乘法是用int 进行的, 而其结果可能在转换为 long 型并赋给左边的c 之前溢出或被截短。Span>
可以使用明确的类型转换, 强迫乘法 以...
-
问题:我想声明一个指针并为它分配一些空间, 但却不行。Span>
这些代码有什么 问题?Span>
char *p; *p = malloc(10);
你所声明的指针...
-
后缀++ 和-- 操作符本质上比前缀一目操作的优先级高, Span>
因此*p++ 和 *(p++) 等价,Span>
它自增p 并返回p 自增之前所指向的值。S...
-
问题:
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。
为什么如下的代码((int *)p)++; 不行?在C语言中,
类型转换意味着“...
-
问题:Span>
我有个函数,Span>
它应该接受并初始化一个指针void f(int *ip) { Static int dummy = 5; ip = &...
-
真的没有。&nbSp;Span>严格地讲, C 总是按值传递。Span>
你可以自己模拟按引用传递, 定义接受指针的函数, 然后在调用时使用& 操作符。Spa...
-
最初, Span>
一个函数指针必须用* 操作符(和一对额外的括弧) “转换为” 一个“真正的” 函数才能调用:Span>...
-
语言定义中说明, Span>
每一种指针类型都有一个特殊值&mdaSh;&mdaSh; “空指针” &mdaSh;&mdaSh; 它与同类型的其它所有...
-
根据语言定义, 在指针上下文中的常数0 会在编译时转换为空指针。Span>
也就是说, 在初始化、赋值或比较的时候, 如果一边是指针类型的值或表达式, 编译器可以确定另一边的...