-1

我正在从 IL(编译的 C#\VB 代码)创建一个反编译器。有没有办法在 C 中创建引用?

编辑:
我想要比指针更快的东西,比如堆栈。有这样的事情吗?

4

2 回答 2

6

引用只是语法上糖衣的指针——指针就可以了。

于 2012-07-17T09:19:55.297 回答
1

指针是两个完全独立的概念。

引用就像一个指针,一种访问/传递变量而不复制它的方法。另一方面,栈和堆是变量存在的两个不同的地方。变量是否应该存在于堆栈或堆中的决定完全独立于您传递它的方式。

  • 如果您需要一个局部变量,其生命周期会自动耦合到您的函数范围,请在堆栈上声明它。分配很快,但是当函数作用域结束时对象就消失了。考虑到这一点,您可以通过值或通过指针将变量传递给其他函数。
  • 如果您需要一个在函数范围内存在的变量,则需要将其设为全局(或静态),或者将变量动态地放在堆上。分配有点慢,但一旦它在那里,你可以像其他一样使用它。您可以通过值或指针传递它。(请记住,您最终需要取消分配动态创建的对象。)

如果堆分配确实是性能瓶颈,则应确保尽可能使用自动变量(在堆栈上)。然后,对您的分配模式进行分析。最后优化您的分配策略

于 2012-07-17T09:48:26.373 回答