相关疑难解决方法(0)

在C中写`eval()`

我一直在尝试在C中制作一个eval函数.

目前,我的想法是String -> function pointer使用所有标准库C函数和我所做的所有函数进行散列,这样我就可以处理函数调用(在已经定义的函数上).

但是,用字符串定义函数(即调用eval("int fun(){return 1;}"))仍然是一个问题,我不知道如何在运行时处理它,有没有人有任何想法?

变量定义似乎不是太大的问题,因为我可以使用另一个哈希var_name -> pointer并在需要变量时使用该指针.

顺便说一句,我不关心性能,我想让这个工作.

c eval dynamic

10
推荐指数
3
解决办法
6071
查看次数

用于C代码重构的工具

有哪些工具支持重构C代码(重命名变量,提取方法,查找方法引用,......)

最好是Linux环境,但Windows工具也可以.如果有可用于emacs的东西,甚至更好!

c linux emacs refactoring

7
推荐指数
1
解决办法
6746
查看次数

C口译员(非编译器)?

可能重复:
是否有C语言翻译?

在执行C程序时是否有"C实现"与"C抽象机器"相同?也就是说,C语言的简单解释器,如C99等C标准中所描述的.

C编程语言的许多实现都是编译器(Clang,GCC,MSVC).我正在寻找C解释器的开源实现.

c compiler-construction interpreter

7
推荐指数
1
解决办法
2787
查看次数

为什么python中的普通循环运行速度比C++中的慢?以及如何优化?

简单地在python和C++中运行一个近空的for循环(如下所示),速度非常不同,python慢​​了一百多倍.

a = 0
for i in xrange(large_const):
  a += 1
Run Code Online (Sandbox Code Playgroud)
int a = 0;
for (int i = 0; i < large_const; i++)
  a += 1;
Run Code Online (Sandbox Code Playgroud)

另外,我该怎么做才能优化python的速度?

(另外:我在这个问题的第一个版本中做了一个不好的例子,我并不是说a = 1因此C/C++编译器可以优化它,我的意思是循环本身消耗了大量资源(也许我应该使用+ = 1作为示例.. ..我的意思是如何优化是如果for循环就像一个+ = 1那么简单,它怎么能以与C/C++类似的速度运行?在我的练习,我使用了Numpy所以我不能再使用pypy了(现在),是否有一些通用的方法可以更快地制作循环(例如生成列表中的生成器)?)

c c++ python optimization performance

4
推荐指数
2
解决办法
2745
查看次数

从命令行c运行程序的特定部分

我有一个程序可以做两件事.但我希望程序只根据我在格式中输入的命令运行一个特定的部分

program -a
program -s
Run Code Online (Sandbox Code Playgroud)

a或s的编程方式是告诉它做某些特定的事情.

例如,如果我的程序是这样的:

# program -a entered
z = x + y
# program -s entered
z = x - y
Run Code Online (Sandbox Code Playgroud)

现在我可以在运行程序后使用if语句轻松完成此操作,但是是否可以直接跳转到我在命令提示符下说的语句?

c

4
推荐指数
1
解决办法
96
查看次数

通过写入__FILE__动态更改运行代码?

我知道了一种使用__FILE__宏在C中打印正在运行的代码的源代码的方法.因此,我可以寻找位置并使用putchar()来改变文件的内容.

是否可以使用此方法动态更改正在运行的代码?

c

3
推荐指数
2
解决办法
192
查看次数

如何将C游戏移植到浏览器

这是我的目标 - 采用ASCII roguelike Angband并创建一个用户可以在游戏服务器端玩游戏的在线控制台.从我肤浅的角度来看,这似乎应该是可行的 - 因为有可以在线显示多种语言的REPL控制台,所以解释语言应该不是问题,对吧?

理想情况下,它就像在服务器上运行游戏并将输出显示到客户端浏览器一样简单.这是可能吗?

c browser porting

1
推荐指数
1
解决办法
299
查看次数

如何将字符串转换为c中的命令?

在c中是否有办法将字符串转换为命令?例如:

void x(string n){
   //do something
}
void y(int n){
   //do something
}
void z(int n){
   //do something
}
stringForConvert="z(10);y(2);x(\"Its cool\");";
mysteryCommand(stringForConvert);
Run Code Online (Sandbox Code Playgroud)

请注意,我没有奢侈的写入另一个文件并进行编译.

c eval

0
推荐指数
1
解决办法
644
查看次数

我如何知道函数在内存中的位置(获取地址) - c/c ++

我正在寻找一种简单的方法来查找在内存中结束的函数.我正在开发一个项目,可以在其他代码中找到运行时问题,例如:代码注入,病毒等等.我的程序将使用将在运行时检查的代码运行,以便我可以访问内存.我无法访问源代码本身.我想只检查它的具体功能.我需要知道函数在堆栈中的起始和结束位置.我正在使用Windows 8.1 64位.

c memory

0
推荐指数
1
解决办法
103
查看次数

C编译或/和解释?

关于"编译与解释"有很多答案和引文,我确实理解它们之间的差异.

说到C,我不确定.C是编译还是解释或两者兼而有之?如果你加上一些解释,我真的很感激.

c c++

-1
推荐指数
3
解决办法
1万
查看次数