Re: Как правильно инициализировать объединения?
От: Bell Россия  
Дата: 29.01.08 12:51
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Собственно сабж.


А>Если не сложно, то на примере

А>
А>union LARGE_INTEGER {  
А>    struct {
А>        DWORD LowPart;  
А>        LONG  HighPart; 
А>    };
А>    LONGLONG QuadPart;
А>}; 

А>LARGE_INTEGER value = {???};
А>


Во-первых, в объединении не хватает переменной:
union LARGE_INTEGER {  
    struct {
        DWORD LowPart;  
        LONG  HighPart; 
    } dblPart;
    LONGLONG QuadPart;
};


Что касается инициализации, то инициализировать можно только первый член объединения (8.5.1/15), и делать это можно так:
LARGE_INTEGER value = {{1, 1}};

или более коротко:
LARGE_INTEGER value = {1, 1};


Но ИМХО первый способ выразительнее.
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.