Объявление enum в Windows для Linux - PullRequest
0 голосов
/ 18 ноября 2010

У меня есть объявление C ++:

enum SETTINGS:UINT32
{
     a=1,
     b=2,
};
  1. что означает: UINT32?
  2. как я могу перевести это объявление в linux?

Ответы [ 3 ]

4 голосов
/ 18 ноября 2010

Это часть нового C ++ 0x способа объявления перечислений

enum <EnumTypeName> [: <Optinal-Type>] { <ValueList> };

По умолчанию перечисление представлено целым числом.
Новый синтаксис позволяет при желании определить тип, используемый для представления перечисления

В этом случае это указывает, что базовое представление перечисления должно иметь тип UINT32. Что это означает, будет зависеть от того, какой макрос UINT32 был определен. Но это, вероятно, целое число, по крайней мере, 32 бит и без знака. : -)

См. Описание Бьёрнса нового материала enum:
http://www2.research.att.com/~bs/C++0xFAQ.html#enum

1 голос
/ 18 ноября 2010

Здесь синтаксис :UINT32 указывает базовый тип перечисления. Однако это не стандартный C ++ (по крайней мере, не стандартный C ++ 03), а расширение Visual Studio: g ++, вероятно, отклонит его, и вам тоже следует.

РЕДАКТИРОВАТЬ Как указывалось в комментариях Мартина Йорка, g ++ поддерживает этот синтаксис начиная с версии 4.4, поэтому я думаю, что единственной проблемой для портежа Linux будет UINT32 нестандартность.

0 голосов
/ 18 ноября 2010

u = без знака int = целое число 32 = 32 бита

прочитайте это: "Uint32", "int16" и т.п .; они стандартные с ++?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...