bosthhe1 / cpushpush

0 stars 0 forks source link

inline函数 auto 函数 for函数 #4

Open bosthhe1 opened 1 year ago

bosthhe1 commented 1 year ago

inline函数是在为了节约一些小函数(函数命名一般小于10行)对栈帧的调用,inline函数会在函数调用的地方展开,而不是去建立栈帧,因为内联函数会在调用它的地方进行展开,所以说内联函数没有地址,没有进入符号表中,也不需要函数地址,所以内联的定义和声明不能分开写,分开写的话,内联函数定义没有存地址,声明无法访问到函数,只能定义和声明一起写, 内联函数是给编译器的一个建议,编译器也可选择使用,也可以选择不使用,具体情况要看编译器

bosthhe1 commented 1 year ago

auto函数会自动推到类型,但是类型除了指针其他会默认去掉const image 虽然不会加const,但是在对引用使用的时候,如果改变引用还是会报错,说明在某些情况下const依然存在,如取别名和指针,b相当于创建了一个变量int b = a; 由于去掉了const属性,所以可以对b进行修改 image 如果需要auto的常规变量也有const属性,就需要在aotu前面加上const image

还需要注意的是aotu不能推导数组,aotu产生了就必须要在当前初始化,由于aotu产生了就必须要初始化,所以aotu也不可以做函数的形参。

bosthhe1 commented 1 year ago

范围for,需要迭代指令,具体情况需要后续学习了解