mbed warning 억제

2883 단어 mbedmbedLPC1768

warning 발생



통신 데이터 형식을 struct로 정의하고 Id를 enum으로, (통신량을 줄이기 위해) enum을 uint8_t로 설정하면,
enum ComputerPacketId : uint8_t
{
    COMPUTER_PACKET_CMD_GET_STATUS,
    COMPUTER_PACKET_CMD_SET_SOLENOIDS,
    COMPUTER_PACKET_CMD_END,
    COMPUTER_PACKET_RES_GET_STATUS,
    COMPUTER_PACKET_RES_SET_SOLENOIDS,
};
struct ComputerPacket
{
    uint8_t Sequence;
    ComputerPacketId Id;
    uint8_t Checksum;
    uint8_t DataSize;
    uint8_t Data[10];
};

컴파일에서 warning이 발생합니다.

Warning: Explicit enum base types are a C++11 feature in "Computer.h", Line: 9, Col: 24



warning을 억제하는 방법?



pragma diag_suppress 로 할 수 있는 것 같다.

태그?



pragma diag_suppress에서 태그를 지정하고 싶지만 경고 오류 번호를 모르는 orz

내보내고 오프라인으로 컴파일하면 오류 번호를 알 수 있습니다. (^^)/

Computer.h(9): warning: #3641-D: explicit enum base types are a C++11 feature

warning 억제


#pragma push
#pragma diag_suppress 3641  // explicit enum base types are a C++11 feature
enum ComputerPacketId :
uint8_t {
    COMPUTER_PACKET_CMD_GET_STATUS,
    COMPUTER_PACKET_CMD_SET_SOLENOIDS,
    COMPUTER_PACKET_CMD_END,
    COMPUTER_PACKET_RES_GET_STATUS,
    COMPUTER_PACKET_RES_SET_SOLENOIDS,
};
#pragma pop

좋은 웹페이지 즐겨찾기