【发布时间】:2012-04-22 10:45:02
【问题描述】:
我们学校的项目只允许我们将 c 程序编译成 64 位应用程序,他们会测试我们的程序的速度和内存使用情况。但是,如果我能够使用 32 位指针,那么我的程序消耗的内存将比 64 位少得多,也可能运行得更快(比 malloc 更快?)
我想知道是否可以在 64 位应用程序中使用 32 位指针?
感谢您的帮助
【问题讨论】:
-
您如何确定 32 位指针会明显快于 64 位指针(如果有的话)?
-
至少它消耗更少的内存。我不确定更快的运行速度
-
你确定它甚至会很重要吗?你有大量的基于指针的数据结构吗?另请注意,开销或重复的指针零扩展操作实际上可能会导致性能下降。
-
使用 GCC? -mx32 选项将 int、long 和指针类型设置为 32 位,并为 x86-64 体系结构生成代码。 (Intel 386 和 AMD x86-64 选项):gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html 其他目标:gcc.gnu.org/onlinedocs/gcc/… - 然后是基准测试 :)
-
@user120115:这应该是一个答案,而不是评论。然后我就可以投票了:-)
标签: c pointers 32bit-64bit