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



C/C++在函数调用时,为什么需要先将参数压栈? 第1页

  

user avatar   haozhi-yang-41 网友的相关建议: 
      

你这是受了“经典教科书”的荼毒。

实际上在全面进入64位年代,寄存器传参才是主流。

至于说早年为什么要压栈?也很简单:当年的cpu就没那么多寄存器可用:最早的x86,通用寄存器也就abcd四个。而且16位机的年代一个寄存器稍大点的数就放不下——不放内存是真的没办法传啊。




  

相关话题

  C语言中,为什么指向指针的指针的类型是int **?类型的话直接int*不就行了? 
  如果有两颗药丸,一颗吃了让你写代码100%不出错,另一颗吃了能让你100%发现并修改bug,选哪颗? 
  朋友自杀前把名字改成了nullptr,是什么意思? 
  现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢? 
  C++ 学到什么程度才能叫精通? 
  既然有 memcpy_s 这种安全实现,为啥不禁用危险的 memcpy 或者更新 memcpy 源码? 
  <<深度探索c++对象模型>>中的虚继承看着蛋疼,感觉这在实际中也没多大用,需要继续深究吗? 
  C++中除以2和右移1有什么区别? 
  在内存特定位置填数据后,placement new 是否完全等价与cast? 
  C语言中, for 和 while 在汇编上有什么区别? 

前一个讨论
历史上有没有在后来得到了印证的科幻故事?
下一个讨论
为什么我见过的操作系统都是树状存储结构,有没有用关键字来组织文档存储的网状结构的操作系统?





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