inline BOOL GetMenuInfoWin50( HMENU hmenu, const MENUINFO_WIN50* lpcmi )
{
typedef BOOL ( WINAPI* GETMENUINFO )( HMENU hmenu, const MENUINFO_WIN50* lpcmi );
GETMENUINFO pfGetMenuInfo = ( GETMENUINFO )::GetProcAddress( _T("USER32"), "GetMenuInfo" );
ASSERT( pfGetMenuInfo != 0 ); return pfGetMenuInfo( hmenu, lpcmi );
}
{
typedef BOOL ( WINAPI* GETMENUINFO )( HMENU hmenu, const MENUINFO_WIN50* lpcmi );
GETMENUINFO pfGetMenuInfo = ( GETMENUINFO )::GetProcAddress( _T("USER32"), "GetMenuInfo" );
ASSERT( pfGetMenuInfo != 0 ); return pfGetMenuInfo( hmenu, lpcmi );
}
typedef type-declaration synonym;The typedef keyword defines a synonym for the specified type-declaration. The identifier in the type-declaration becomes another name for the type, instead of naming an instance of the type. You cannot use the typedef specifier inside a function definition.A typedef declaration introduces a name that, within its scope, becomes a synonym for the type given by the decl-specifiers portion of the declaration. In contrast to the class, struct, union, and enum declarations, typedef declarations do not introduce new types — they introduce new names for existing types.Example// Example of the typedef keyword
typedef unsigned long ulong;ulong ul; // Equivalent to "unsigned long ul;"typedef struct mystructtag
{
int i;
float f;
char c;
} mystruct;mystruct ms; // Equivalent to "struct mystructtag ms;"typedef int (*funcptr)(); // funcptr is synonym for "pointer
// to function returning int"funcptr table[10]; // Equivalent to "int (*table[10])();"--------------------------------------------------------------------------------
Send feedback to MSDN.Look here for MSDN Online resources.