函数返回值类型

时间:2020-12-26 19:43:46

有没有发现,编译器根本不对函数头中的的返回值类型进行检查?


static struct skfjkasgfkdsjfkjsadkfjk * function(int a, int b)

{

return a;

}


返回值类型为不存在的struct skfjkasgfkdsjfkjsadkfjk 编译竟然不报错。。。


但是我想,如果返回的如果不是指针的话就会报错,试了下,果真如此

也就是说,函数的返回值必须声明为基本类型(指针也是基本类型)

如果要返回一个结构体,那只能是结构体的指针。而编译器对这个结构体类型本身并不关心。


这么重要的信息,教科书上竟然没说!FUCK!