C++ 怎么用变量去获取结构体的值?

举个例子structConfig{booldebug=true;boolshowMenu=false;};现在写一个函数boolgetConfig(char*name){... 举个例子
struct Config
{
bool debug = true;
bool showMenu = false;
};

现在写一个函数
bool getConfig(char* name){
return Config.name //通过这个name 获取这个值

}
getConfig(L"debug"); 就能获取到这个值了

不要说直接return config; 这个我知道
展开
 我来答
cdyzxy
2020-03-22 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3972万
展开全部

一般来说,在程序编译之后,你开设的变量名已经被编译程序翻译成了地址指针,也不再保留原先存放的变量名,因此希望提供变量名字符串来访问相应的变量不太靠谱。

可以考虑:将结构体中的变量定义成数组,或者在结构体中专门定义指针数组,外部函数提供数组下标来得到相应变量的访问。

或者getConfig负责分析name字符串,然后分情况返回,比如:

struct Config {
bool debug = true;
bool showMenu = false;
} mConfig; //结构实例为mConfig

bool getConfig(char* name){

if ( strcmp(name,"debug")==0 ) return mConfig.debug;

else if ( strcmp(name,"showMenu")==0 ) return mConfig.showMenu;
}
bool status=getConfig("debug"); //获取mConfig的相应变量值

还应当考虑你提供的字符串在结构中不存在对应变量的情况处理。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式