百科问答小站 logo
百科问答小站 font logo



C/C++ 数组大小需要是2的倍数吗? 第1页

  

user avatar   pansz 网友的相关建议: 
      

对性能没有影响,但使用2的幂次倍作为分配大小是一个好的编程习惯

为什么呢?因为2的幂次倍分配能够避免内存空洞。

简单的说:内存池机制通过将所分配的内存提升到2的幂次倍来避免内存空洞。

如果你的内存分配器有内存池机制,那么即使你分配了小于2的幂次倍的内存空间,实际占用的内存空间也还是2的幂次倍(比如分配1000字节实际占用1024字节空间)。这种情况下,用不用2的幂次倍不改变性能,但这样用更加划算。

如果你的内存分配器没有内存池机制,那么手工使用2的幂次倍能够有效减少内存空洞,提升内存使用效率。

所以,总的来说,使用2的幂次倍进行内存分配,在各种场合下,都只有好处没有坏处,是好的编程习惯




  

相关话题

  C 语言中字符串常量的好处在哪里? 
  有哪些看似简单其实非常精妙的代码? 
  C、C++、Java、JavaScript、PHP、Python、Ruby 这些语言分别主要用来开发什么? 
  请问怎么深入掌握c语言? 
  如何编写异常代码?比如处理bad-alloc的时候,是不是应该先销毁当前资源? 
  两年嵌入式C语言编程经验,如果有机会做和 Android 相关的 C++、JAVA,还有 Javascript 脚本开发工作,转过去好吗? 
  请问,此题使用switch语句编写是否会比if更高效?若想用switch又该如何编写呢? 
  如果要改进C语言,您最希望添加哪些语言特性,移除哪些语言特性? 
  为什么现在招聘程序员大多要求 Java / C / C++ 技能,而 C# / .NET 不受青睐? 
  作为非计算机专业的学生,觉得 C 语言远比其他语言易于上手,正常吗? 

前一个讨论
有哪些风格特别且大胆的 CG 画手?
下一个讨论
现实核武国家有没有猜疑链?如果有怎么没有爆发核战争?





© 2025-05-03 - tinynew.org. All Rights Reserved.
© 2025-05-03 - tinynew.org. 保留所有权利