参数、返回值、局部变量、数组分析
1.返回值的传递 各种类型返回值传出来的方式: 1、char类型的返回值 ->寄存器al 2、short 类型的返回值 ->寄存器ax 3、int 类型的返回值 ->寄存器eax 如果是long long 则将低位保存在eax,将高位保存在edx; //vc用__int64表示long long __int64 fun(){ return 0x1234567890; } int main(int argc, char* argv[]) { __int64 a = fun(); return 0; } 在函数中返回值保存: 在函数外面取出返回值: 总之: int、char、long、数组等变量类型本质上的区别只是到底能存多少位的数,也就是容量的区别; 2.参数传递的本质 参数传递有两种方式:1】寄存器;2】堆栈; 不同类型的参数传递时,通常会转换成本机尺寸来传递; 例如32位机中char类型的参数:虽然char是1个字节,但传递到栈中时按4个自己来保存; 情况1: void fun(char x, char y){ } int main(int argc, char* argv[]) { fun(1,2); return 0; } 参数入栈前: 参数入栈后: 情况2: void fun(char x, char y){ } int main(int argc, char* argv[