Re: typedef и struct в Windows
От: jedi Мухосранск  
Дата: 06.11.04 19:59
Оценка:
Здравствуйте, Fylhe, Вы писали:

F>Непонятки с использованием typedef и struct в Windows:

F>typedef struct tagNMHDR
F>{
F>HWND hwndFrom;
F>UINT idFrom;
F>UINT code;
F>} NMHDR;

F>Что здесь tagNMHDR и NMHDR? Синонимы одного и того же типа – структуры? Но зачем тогда их нужно двое?


Ну, Windows, здесь непричем Это особенности языка С.
Эта запись эквивалентна следующим двум.

struct tagNMHDR
{
    HWND hwndFrom;
    UINT idFrom;
    UINT code;
};

typedef struct tagNMHDR NMHDR;


Дело в том, что в языке С tagNMHDR не является именем типа. Например
следующее объявление переменной неверно:

tagNMHDR hdr;


Вместо этого нужно писать:

struct tagNMHDR hdr;


typedef делает возможной первую (более короткую) форму записи.
Заметьте что в С++ обе формы записи эквивалентны.

Надеюсь объяснил более-менее понятно

Best regards, jedi.
... << RSDN@Home 1.1.4 beta 3 rev. 219>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.