Форум программистов, компьютерный форум CyberForum.ru

dev c++: ошибка <anonymous union> - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
andrey95
0 / 0 / 0
Регистрация: 28.07.2010
Сообщений: 6
03.08.2010, 07:49     dev c++: ошибка <anonymous union> #1
есть такой код

C++
1
2
3
4
5
6
7
struct Wt { 
short w; 
union {
struct C {unsigned char c0, c1;} c; // Counts of 0, 1
unsigned short c01; // Concatenated counts for sigma2 function
};
};
в Visual Studio 2008 все компилится, а вот в dev c++ почему-то ругается:

<anonymous union>::C' invalid; an anonymous union can only have non-static data members
Не подскажите в чем проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2010, 07:49     dev c++: ошибка <anonymous union>
Посмотрите здесь:

C++ ошибка Dev-c++
Ошибка в простейшей программе (Dev C++) C++
Ошибка Dev-C++: undefined reference to '__cpu_features_init' C++
C++ Ошибка в Dev C++
C++ Ошибка в Dev-C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
03.08.2010, 09:28     dev c++: ошибка <anonymous union> #2
Так будет работать...
C++
1
2
3
4
5
6
7
struct Wt { 
short w; 
union {
struct /*C */ {unsigned char c0, c1;} c; // Counts of 0, 1
unsigned short c01; // Concatenated counts for sigma2 function
};
};
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.08.2010, 11:36     dev c++: ошибка <anonymous union> #3
надо позаботиться, чтобы к элементам объединения был доступ
там объединение описано, но не создано
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
03.08.2010, 18:02     dev c++: ошибка <anonymous union> #4
Цитата Сообщение от accept Посмотреть сообщение
там объединение описано, но не создано
Так это если бы оно не было анонимным, а так как раз оно создано.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.08.2010, 03:33     dev c++: ошибка <anonymous union> #5
http://programmersclub.ru/19/
это, конечно, не источник

Анонимное объединение представляет собой объединение, у которого нет имени (тэга).
C
1
union { int a; double b; } u;
создано объединение u
здесь обращение пойдёт через u.a и u.b, а там ?

Добавлено через 4 минуты
а, нашёл там пример

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
union
 
   {
      int miles;
      long meters;
   };
 
   miles = 10000;
   cout << "Значение в милях " << miles << endl;
   meters = 150000;
   cout << "Значение в метрах " << meters << endl;
конечно такой вариант - это глюк (одно затирает другое и за этим нужно постоянно следить, чтобы не забыть)
Yandex
Объявления
04.08.2010, 03:33     dev c++: ошибка <anonymous union>
Ответ Создать тему
Опции темы

Текущее время: 16:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru