关于可变变量名的问题(求救)

evelan 2003-03-20 09:44:43
现有一变量名x 怎么在程序中新生成一新变量x1 , x2 等!或者在程序中把一字符串(text)变为一变量名,可以声明string text!
...全文
160 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
arya 2003-03-20
  • 打赏
  • 举报
回复
well, 两种办法实现:
1. 本质静态的,就是所有功能用C/C++函数实现;在程序里实现对所有情况的处理;缺点是新的模板需要增加新的源程序和重新编译。
2. 本质动态的,用C/C++实现某种应用语言,在这个应用语言上实现需要的复杂功能。你说的用模板配置文件本质上属于这个范畴。
你所谓的“分析模板”就是定义数据结构,所谓的“操作模板”就是定义程序行为。有这两条,不管你如何对你的工作命名,你就是在干一件语言解释器的工作。C/C++可以实现一个语言解释器,但是C/C++本身不是解释执行的。所以不要指望你能直接利用C/C++的语法来实现你要的功能。
liu_feng_fly 2003-03-20
  • 打赏
  • 举报
回复
在运行的时候是不可能实现的
evelan 2003-03-20
  • 打赏
  • 举报
回复
to arya(行者)

结构体的利用也可以利用模板配制文件!

假设我程序需要对一段二进制流进行分析,分析后的结果有500个字段的值(进制流根据版本不同,需要不同的模板),而且这些结果我需要选择其中任意多个的组合进行insert操作,当然不同组合对应不同的表,所以这些操作我可以定义一些模板.
所以我定义分析模板和操作模板!
程序獵人 2003-03-20
  • 打赏
  • 举报
回复
不仅仅是变量,如果能够直接自动执行C语言的语句就更好了。

升级程序只需要更新一下文本文件即可。呵呵……(在代码公开和速度要求不高的情况下)
arya 2003-03-20
  • 打赏
  • 举报
回复
假设你可以生成这样的结构体,你的程序怎么用这样的结构体呢?你的说法,只有“语言解释器”才说得通。
evelan 2003-03-20
  • 打赏
  • 举报
回复
to fox6811!
谢谢你,##是在linux下C可以实现,但是在c++或者标准c下好象不行!
evelan 2003-03-20
  • 打赏
  • 举报
回复
在linux下就有很多代码是用到可变变量名的(用C写的),如果大家研究过linux下的原代码,应该很熟悉!
我想实现的功能是:从一个配置文件中读去配置信息,生成struct一个结构体,结构体的变量名就是配置文件中的字符串名,如果可以做到,在不修该程序的情况下,可以扩展程序的很多功能!
arya 2003-03-20
  • 打赏
  • 举报
回复
C/C++不提供这种功能。但是你可以自己构造。就是说你得自己写函数,完成生成根据字符串生成新变量,自己管理变量的地址,包括提取,赋值等。在这方面,C/C++的语法不会给你任何好处,也就是说,永远不要期望你可以像声明/使用一个普通变量一样来声明/使用一个动态变量!你必须自己管理自己生成的东西!
lisding 2003-03-20
  • 打赏
  • 举报
回复
没有理解题意!
fox6811 2003-03-20
  • 打赏
  • 举报
回复
使用##--token-pasting operator。
diabloqin 2003-03-20
  • 打赏
  • 举报
回复
study
rtdb 2003-03-20
  • 打赏
  • 举报
回复
C/C++语言中没这种说法。

试举例说明你想做什么。
susan7703 2003-03-20
  • 打赏
  • 举报
回复
关注
zhouzhaohan 2003-03-20
  • 打赏
  • 举报
回复
这种想法应该是错误的,变量名在编译完以后就不存在了,真正有意义的是地址值,所以你在运行的时候生成变量是没有什么意义的。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧