Q我如何将常量值传递给接受结构体参数的函数?我如何创建无名、即时、常量结构体值?
A传统的 C 语言无法生成匿名结构体值;您必须使用临时结构体变量或一个小的结构体构建函数;请参阅问题 14.11 以获取示例。
C99 引入了“复合字面量”,其中一种形式提供了结构体常量。例如,要将一个常量坐标对传递给一个假设的plotpoint函数,该函数期望一个struct point,您可以调用
plotpoint((struct point){1, 2});结合“指定初始化器”(C99 的另一项功能),还可以通过名称指定成员值
plotpoint((struct point){.x=1, .y=2});
另请参阅问题 4.10。
参考文献:C9X Sec. 6.3.2.5, Sec. 6.5.8