首页 > 代码库 > 《你必须知道的495个C语言问题》笔记--结构、联合和枚举

《你必须知道的495个C语言问题》笔记--结构、联合和枚举

1.如何向接受结构参数的函数传入常量值?

c99标准中引入“复合字面量”(compound literals),它的一种形式就可以允许结构常量。例如,向假定的plotpoint函数
传入一个坐标对常量。
plotpoint((struct point){1,2});
与制定初始式结合,也可以用成员名称确定成员值:
plotpoint((struct point){.x=1, .y=2});

例子:
#include <stdio.h>
#include <termios.h>
#include <fcntl.h>
struct plotpoint{
                int x;
                int y;
        } p;

void point_print(struct plotpoint pp)
{
        printf("x=%d,y=%d\n",pp.x,pp.y);
}

int main(void)
{
        point_print((struct plotpoint){1,2});
        point_print((struct plotpoint){.x=3,.y=4});
        return 0;
}

运行结果:
x=1,y=2
x=3,y=4