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



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

  

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

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

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

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




  

相关话题

  C/C++ 数组大小需要是2的倍数吗? 
  是不是后置类型语言的函数一定要加关键字,不加关键字编译器识别不出吗? 
  C「带坏了」多少程序语言的设计? 
  学C#后还有必要学C语言吗? 
  现在快2022年了,c++为什么还要实现(.cpp)和声明(.h)分开? 
  请问#define PI 3.1416比float pi=3.1416有什么优势呢? 
  编译器生成的汇编语句执行顺序为什么与C代码顺序不同? 
  为什么很多编程语言采用花括号区分 block 而非缩进? 
  C语言编译器是如何实现指针+1这样的一个机制? 
  c语言中,关于switch循环的这个疑问怎么解? 

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





© 2025-02-21 - tinynew.org. All Rights Reserved.
© 2025-02-21 - tinynew.org. 保留所有权利