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



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

  

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

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

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

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




  

相关话题

  编程的时候 命名 方法或变量 词穷了怎么办? 
  C++ 是否适合做 GUI? 
  C语言编写时,将参数传递跨越多个函数的方式是否是妥当的? 
  C语言中整型输出(%d)有什么用? 
  int *p=new int,当free(p)时free函数是怎么知道要释放4个字节而不是5个的? 
  C++ 的智能指针不就基本解决了野指针问题了吗?为什么还要吹捧rust的内存安全? 
  2022年学C++开发好比49年入国军,没什么公司在用C++了? 
  一门编程语言,先将代码编译为C,再由C编译器编译为可执行文件,是否可行? 
  C 语言中不同类型指针的大小是否完全相同,为什么? 
  C 语言自带函数返回值为指针类型的数组为什么不需要释放内存? 

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





© 2025-04-15 - tinynew.org. All Rights Reserved.
© 2025-04-15 - tinynew.org. 保留所有权利