c,将struct作为参数传递

时间:2012-12-11 16:09:33

标签: c struct

我需要将一些结构作为函数参数传递,如此

void myFunc(unsigned char c);

我将使用myFunc(4)myFunc(8)左右。

现在函数接受一个结构作为参数,所以我尝试了

typedef struct {
    unsigned char address;
    unsigned char command;
    unsigned char group;
    unsigned char response;
    unsigned char flags1;
    unsigned char flags2;
}test_t;

void myFunc(test_t test);

myFucn({0,0,0,0,0}); // but this gives me error 

如何将const struct作为参数传递而不必先实例化? 就像myFunc(4)作为unsigned char。

由于

1 个答案:

答案 0 :(得分:8)

在C99中,您可以使用compound literal

myFunc((test_t) { 0, 0, 0, 0, 0 });

当然,由于结构是按值传递的,所以如果你认为它是“const”则无关紧要;无论函数做什么都无关紧要。

在以前的C版本中,您无法执行此操作。