prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 2.7

Q我听说结构体可以被赋值给变量,并且可以作为函数参数传入和传出函数,但 K&R1 说不行。


AK&R1 所说(尽管这已经是相当长一段时间之前的事情了)是,对结构体操作的限制将在即将发布的编译器版本中解除,事实上,在 K&R1 发布时,结构体的赋值、作为函数参数传递结构体以及从函数返回结构体的操作在 Ritchie 的编译器中已经完全可用。一些非常古老的编译器可能缺乏这些操作,但所有现代编译器都支持它们,并且它们是 ANSI C 标准的一部分,因此不必犹豫使用它们。[脚注]

(请注意,当结构体被赋值、传递或返回时,复制是整体进行的。这意味着任何指针字段的副本将指向与原始数据相同的位置。换句话说,所指向的数据没有被复制。)

请参阅问题 14.11 中的代码片段,了解结构体操作的实际应用示例。

参考文献:K&R1 第 6.2 节,第 121 页
K&R2 第 6.2 节,第 129 页
ISO 第 6.1.2.5 节、第 6.2.2.1 节、第 6.3.16 节
H&S 第 5.6.2 节,第 133 页


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管