函数的返回值能不能是结构体类型 c语言关于结构体类型的函数的返回值return?
c语言关于结构体类型的函数的返回值return?
是的,只要在定义函数时声明要返回的类型,就可以引用代码://#include“StdAfx。H“//如果是VC 6.0,用这行。#包括“stdio。H“#include”字符串。H“结构ABC{char name[20]int n}结构ABC myfun(void){struct ABC x={lining”,99}//声明一个结构局部变量x并初始化返回x//返回局部变量struct x}int main(void){struct ABC y=myfun()//声明一个相同类型的结构变量y,并将函数返回值赋给它printf(%s%dn”,y.name,y.n)//键入它,从语法编码规则,ansic语言标准明确规定数组类型和函数类型不能作为返回值。解决这个问题的方法是通过指针间接返回值,即使用数组指针和函数指针。这可能是在C语言中引入指针的另一个原因。结构类型可以用作返回值。我猜当时C语言的设计者引入了struct结构的概念,是为了添加一种机制来创建一种新型的C语言。换句话说,它希望struct创建的类型与内置int float类型一样易于使用。//从汇编的角度来看,有两种返回值方法。第一种方法是直接返回寄存器。第二种方法是类似于返回值的结构来建立一个临时存储区。例如int的返回值类型和指针的返回值类型都直接返回到IA32平台上的eax寄存器中,无论是VC还是GCC,例如IA32平台上的float,type的浮点返回值类型通常借助FPU浮点运算单元中的寄存器存储在堆栈中。第三种类型是struct structure的返回值,需要建立临时对象。对于C语言来说,引入一个临时的内部区域并不是一个大问题,但对于C语言来说,这有时是致命的。我希望我能帮助你。房东英俊,浪漫,一定是世界上的英雄。诚邀您加入0x30贴吧,共商义举,共建不朽功业!
函数的返回值能不能是结构体类型 函数的返回值是结构体类型 结构体函数调用
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。