Enum в отладке не имеет значения после шага - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть enum: enum Результат {OK,ERROR}; - например. и у меня есть функция:

enum Result ReturnAEnumValue() {
}
  • f.e которые возвращают OK или ERROR.

А в main(){} я создаю тип перечисления:

enum Result eResult; 
eResult = Result();

Почему в моем отладчике после перехода у меня нет значения в eResult? Если я ранее дам eResult значение, например: enum Result eResult = ОШИБКА; это работает.

enum Result {OK,ERROR}; 
enum Result eHexStringToUInt(char pcStr[], unsigned int *puiValue) { 
    unsigned char ucCharCounter;
    if ((pcStr[0] != '0' )||( pcStr[1] != 'x')||( pcStr[2]== '\0' ) || (pcStr[6] != '\0')){
        return ERROR;
    }
    *puiValue = 0;
    for (ucCharCounter = 2; ucCharCounter< 6 ; ucCharCounter++) 
    {
        *puiValue = *puiValue << 4; 
        if (pcStr[ucCharCounter] < 'A')
        {
            *puiValue = *puiValue | (pcStr[ucCharCounter] - '0');
        }
        else
        {
            *puiValue = *puiValue | (pcStr[ucCharCounter] - 'A' + 10);
        }
    }
    return OK;
}


int main()
{
    unsigned int uiValue = 65000;
    char cHexStr[12] = "0xF5A7";
    enum Result eReturnValue;   
    eReturnValue = eHexStringToUInt(cHexStr , &uiValue);
}

Информация об отладчике

1 Ответ

2 голосов
/ 10 апреля 2019

Поскольку ваш код не использует это значение, любой уровень оптимизации заставит компилятор оптимизировать его.Поэтому попробуйте как-нибудь использовать свой varaible (например, printf ir);

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