C语言 可以将结构初始化为函数参数吗

9udxz4iz  于 2023-04-19  发布在  其他
关注(0)|答案(1)|浏览(135)

假设我有一个名为vector 2的结构体。

typedef struct
{
   int x, y;
} vector2;

我有一个函数,用printf打印这个向量。

void printvector2(vector2 v)
{
   printf("x: %d", v.x);
   printf("y: %d", v.y);
}

我知道我可以像这样初始化一个结构体,然后把它作为参数放到函数中

vector2 size = {800, 600};

printvector2(size);

但是,我并不想每次打印向量时,都创建一个新的变量。
我想做这样的事情:

printvector2({800, 600});

但是它吐出一个错误。

* 请帮帮忙!*

iyr7buue

iyr7buue1#

你可以这样做

#include <stdio.h> 

typedef struct
{
    int x, y;
} vector2;

void printvector2(vector2 v)
{
    printf("x: %d\n", v.x);
    printf("y: %d\n", v.y);
}

int main() {
    printvector2((vector2){800, 600});   // compound literal
    return 0;
}

相关问题