私はC89、C90、Ansi-Cコードを書いています。私の関数の1つは、構造体をパラメータとして必要とします。私はその構造体の初期化を使って関数を呼び出すのではなく、構造体を作成してそれを関数に渡します。構造体の初期化は、関数呼び出しでどのように変数として使用できますか。 ANSI-C Version
ここにいくつかのスニペットがあります。
typedef struct {
char* EventName;
char* Message;
} Event;
Event myEvent = {
.EventName = "infomessage",
.Message = "Testmessage"
};
Notify(myEvent);
、ここで私が書きたいものですが、ウィッヒdoesntの仕事
Notify({.EventName = "infomessage", .Message = "Testmessage"});
またはより良い
Notify({"infomessage", "Testmessage"});
EDIT:1990標準:LabCVIは、ISO 9899を使用しています。
、
(Event){"infomessage", "Testmessage"}
複合リテラルを使用します。彼らはANSI-C、ウィッヒはISO-C90と同等であると言うとき、ほとんどの人がANSI-C89を意味します。同様に、ISO-C99はANSI-C2000と同等です。 C99をANSI-Cと呼んでいる唯一の場所はここにあります。 – Christophああ、初心者のミスかもしれませんが、私が読んだ「現代の」Ansi-Cの本はすべてC99を参照しています。ドイツ語なので多分地域のことです。私が使用しているIDEはLabCVI 2010です。++演算子と構造体のコンポーネントの初期化を理解しているのでC99と思っています。 – Johannes