c语言中字符串能否转为代码执行?或者有啥替代办法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中字符串能否转为代码执行?或者有啥替代办法?相关的知识,希望对你有一定的参考价值。

假设循环变量是i,我想在一个循环中,调用变量datai(i为循环变量的值),通过宏定义还是什么方法可以实现吗?求大神解答~
因为我想和另外一段代码保持一致,所以不想用数组。

在循环中是不可以用宏定义的方法来实现的,因为宏是在编译前替换,不会根据代码逻辑来。

用数组肯定是最合理的,多个变量的方法,有一种不安全的方法来做,就是使用野指针。

前提:变量连续定义,这样他们在内存中的地址就是连续的。

之后用一个int指针:

int *pi = &data1;
pi++ ;//就指向data2了

但这个方法,不是安全方法,如果是商业项目,不推荐使用。

参考技术A 这样的变量最好存放在一个数组里

宏定义的方法
#define data(i) data##i本回答被提问者采纳
参考技术B for(i=0;i<XX;i++)

char nameStr[20] = "data";
char *iStr = NULL;
(istr = malloc......)

sprintf(iStr, "%s", i);
strcat(nameStr,iStr);
参考技术C 不能转换为代码。

以上是关于c语言中字符串能否转为代码执行?或者有啥替代办法?的主要内容,如果未能解决你的问题,请参考以下文章

转C# 将字符串或表达式直接转为可执行代码的办法

C语言中 字符串如何转为整型数值

Rust 能否替代 C 语言,主宰 Linux 的世界?

Rust 能否替代 C 语言,主宰 Linux 的世界?

Rust 能否替代 C 语言,主宰 Linux 的世界?

C语言能否用在shell脚本