2

このような関数の引数としていくつかの構造体を渡す必要があります

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)と同じです。

ありがとう

4

1 に答える 1

8

C99では、複合リテラルを使用できます。

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

もちろん、構造体は値によって渡されるため、「const」であると見なすかどうかは関係ありません。関数がそれに対して何をするにしても、外部には関係ありません。

以前のバージョンのCでは、これを行うことはできません。

于 2012-12-11T16:11:41.020 に答える