发布时间:2025-04-21 22:06:00
C语言中被调函数被定义为void以后还有没有返回值返回给主调函数?
在C语言中,一个函数声明其返回值类型是void时,表明其没有返回值。但是这并不表示其没有返回数据给调用者(caller)函数。在标准的C调用规范中,返回值是存放在寄存器中的,在X86中一般是AX寄存器,在ARM中一般是r0寄存器,在Risc-V中一般是x10(即a0)寄存器。在被调用函数(callee)结束时,返回到调用者(caller)前,这个存放返回值的寄存器中都是有值的。只是当该被调用函数(callee)声明其返回值类型是void时,表明这个存放在返回寄存器中的值是无意义的,调用者(caller)不能使用这个存放在返回寄存器中的值做任何事情,即存放在返回寄存器中的值可以丢弃,也可以被后续的指令覆盖。
《c语言void函数有没有返回值》不代表本网站观点,如有侵权请联系我们删除