3
我想创建一个方法get_name(...),它返回一个enum_value的名字。枚举值很少,但可以高达1^32 - 1(所以我不认为我可以使用数组映射)。返回一个临时的const char * - 它会起作用
我做了以下内容:
const char* get_name(type_t x) {
static const char* name_1 = "NAME_FOR_TYPE_1";
static const char* name_2 = "NAME_FOR_TYPE_2";
...
static const char* invalid = "INVALID";
switch (x) {
case type_1: return name_1;
case type_2: return name_2;
...
}
return invalid;
}
然后,我被告知以下也将工作:
const char* get_name(type_t x) {
switch (x) {
case type_1: return "NAME_FOR_TYPE_1";
case type_2: return "NAME_FOR_TYPE_2";
...
}
return "INVALID";
}
是真的吗?它会一直工作吗?
我没有返回临时指针吗?
什么是“临时”?你读过关于范围和寿命的内容吗?哪一部分令人困惑?看,分享你的研究也会帮助其他人。 –