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

А>
А>union LARGE_INTEGER
А>{
А>    struct 
А>    {
А>        int i_int;
А>        long  long_first;
А>    }dbPart;
А>    long long_second;
А>};
А>


А>вот у меня такой вопрос есть union и когда я иницализирую LARGE_INTEGER u = {{1,3}}; то у меня переменная long_second; инизиализируется значением 1?

Вообще говоря нет. Для данного примера можно гарантировать, что dbPart.i_int == 1, и dbPart.long_first == 3. Если представление long и int совпадает, то обе переменные i_int и long_second имеют один и тот же адрес и размер, и dbPart.i_int == long_second == 1


А>...если я меняю тип long на допустим double то запис. какой то мусор или это немусор(6.365987375366e-314#DEN)

Размер int и double не совпадает, поэтому получается то, что получается.
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.