Как инициализация структуры может использоваться как переменная в вызове функции.Версия ANSI-C - PullRequest
0 голосов
/ 30 декабря 2010

Я пишу C89, C90, код Ansi-C.Одна из моих функций требует структуру в качестве параметра.Я хочу вызвать функцию с инициализацией этой структуры, вместо того, чтобы создать структуру forst, а затем передать ее функции.

Вот некоторые фрагменты, которые работают.

typedef struct {
    char* EventName;
    char* Message; 
} Event;

Event myEvent = {
    .EventName = "infomessage", 
    .Message = "Testmessage"
};

Notify(myEvent);        

и вотто, что я хотел бы написать, но которое не работает

Notify({.EventName = "infomessage", .Message = "Testmessage"});

или даже лучше

Notify({"infomessage", "Testmessage"});

РЕДАКТИРОВАТЬ: LabCVI использует стандарт ISO 9899: 1990.

1 Ответ

2 голосов
/ 30 декабря 2010

Используйте составной литерал (Event){"infomessage", "Testmessage"}, т.е.

Notify((Event){"infomessage", "Testmessage"});
...