我的代码类似于以下内容。无论传递给find_instruction的是什么,返回值总是inst_unknown。
当我使用调试器逐步执行代码时,没有执行任何strcmp调用。 我在绝望中尝试编写自己的比较函数,但这也不起作用。
我也无法在函数调用上设置断点,这表明编译器首先没有编译函数调用。
有人可以解释这种行为吗?
const char* const inst1 = "instruction1";
const char* const inst2 = "instruction2";
const char* const inst3 = "instruction3";
const char* const inst_unknown = "instruction_unknown";
const char* find_instruction(const char* decoded_inst)
{
if (std::strcmp(decoded_inst, inst1) == 0)
return inst1;
else if (std::strcmp(decoded_inst, inst2) == 0)
return inst2;
else if (std::strcmp(decoded_inst, inst3) == 0)
return inst3;
return inst_unknown;
}
我不认为这是相关的,但我在Eclipse中使用德州仪器的Code Composer Studio和CDT,芯片型号是MSP430F2274。