Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ “叮当声警告”的含义-Wsigned enum位字段“;_C++_Clang_Portability_Bit Fields - Fatal编程技术网

C++ “叮当声警告”的含义-Wsigned enum位字段“;

C++ “叮当声警告”的含义-Wsigned enum位字段“;,c++,clang,portability,bit-fields,C++,Clang,Portability,Bit Fields,请向我解释“-Wsigned enum bitfield”叮当警告的含义 在我的代码中,我得到了带有位字段的结构的定义: struct Options { BackgroundType backgroundType : 2; LineSpace lineSpace : 2; bool letterSpacing : 1; bool shadow : 1; Qt::AlignmentFlag alignment : 9; } options; option

请向我解释“-Wsigned enum bitfield”叮当警告的含义

在我的代码中,我得到了带有位字段的
结构的定义:

struct Options {
    BackgroundType backgroundType : 2;
    LineSpace lineSpace : 2;
    bool letterSpacing : 1;
    bool shadow : 1;
    Qt::AlignmentFlag alignment : 9;
} options;

options.alignment = Qt::AlignLeft;
使用Clang编译此代码时,我收到以下警告:

Microsoft ABI中的枚举默认为有符号整数;考虑 为enum
Qt::AlignmentFlag
提供一个未签名的基础类型以生成此代码 便携式


Enum
Qt::AlignmentFlag
在我的代码之外,我无法更改它。我倾向于忽略这个警告。如果我将此代码保持原样,会发生什么最糟糕的情况?

如果枚举使用了所有9位,则在读回它时会得到一个负数。当将其与其他值进行比较时,可能会给您带来问题。

@BoPersson请提供答案。我认为建议的副本已经表明了这种情况。