我有一个枚举:枚举结果{OK,ERROR};
-例如。
我有一个功能:
enum Result ReturnAEnumValue() {
}
f.e.公司
返回OK或ERROR。
在
main(){}
中,我创建了一个枚举类型:enum Result eResult;
eResult = Result();
为什么在我的调试器中,在单步执行之后,我在eResult中没有任何值?
如果我之前给一个eResult一个值,例如:
枚举结果eResult=ERROR;有效。
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);
}
A debuuger info
最佳答案
由于代码不使用此值,任何优化级别都将强制编译器对其进行优化。所以试着以某种方式使用变量(例如printf ir);