我是计算机科学专业的学生,并且有一个C游戏项目要做。 几周前,我开始了该项目,现在意识到我根本不被允许使用指针,因为我们的老师这么说(我们不应该看到它们)。但是,我的代码中确实充满了它们!
“不使用指针”的意思是“不使用表观指针”。例如,使用数组是完全可以的,因为我们不知道幕后发生的事情。
所以我想到了使用正则表达式将我的所有代码转换如下:
void increment(int *a){
(*a)++;
}
int a = 12;
increment(&a);
printf("%d", a);
到
void increment(int a[1]){
a[0]++;
}
int a[1] = {12};
increment(a);
printf("%d", a[0]);
另一个问题是可变长度数组,我在这里使用了mallocs,除了将任意长和固定大小放在各处之外,我没有其他解决方案。
是的,这似乎完全是愚蠢的(至少对我而言),但这就是我的老师希望我们编码或以不同的方式思考事物的方式。而且,如果我进行这样的正则表达式,感觉就像我需要指针并避免了该问题。
您有什么想法吗?
还是您知道任何已有的工具可以以这种方式转换C代码?
谢谢!