17.C/C++基础整理
文章平均质量分 83
cooljuly
这个作者很懒,什么都没留下…
展开
-
探讨c++函数中的参数传递与返回值(三) 函数返回值
第三章 返回值众所周知,函数的返回值是由eax传递出来的(浮点数则用浮点数寄存器ST0及浮点指令fld等)。返回简单值类型的时候,eax中存储的是变量的值。若以指针、引用做返回值,则会mov指针或引用所在内存中的地址值到eax,然后在外部接收返回值时候,在做一次mov操作。在32位系统中,寄存器eax与地址值一样,均为32位,因此可用eax直接返回。测试代码:int g原创 2013-01-05 09:57:44 · 733 阅读 · 0 评论 -
探讨c++函数中的参数传递与返回值(一) 概念介绍与理解
本文从编译器角度,通过反汇编手段,深入的理解了1.引用的理解与使用2.结构体和类做参数时的底层实现,并对函数参数和返回值的各种情况做了归纳。希望能对大家有用,也希望大家能针对本文中的一些不足和缪误给予指正。本文中例子均是用VS系列的VS2008编译环境下测试的。第一章 概念介绍与理解首先从大的方面来分,参数和返回值的传递可以分为pass by value、pass by point原创 2013-01-05 09:45:28 · 1225 阅读 · 0 评论 -
探讨c++函数中的参数传递与返回值(四) 浮点型值的参数传递与返回值
第四章 浮点型值的参数传递与返回值浮点型值做参数和返回值的处理跟简单型值基本一致,区别在于:1. 浮点型值参数拷贝到栈的操作需要浮点寄存器的支持; 先为浮点型值参数预留栈空间,float 4字节, double 8字节,使用push或sub esp,N指令,再使用fld和fstp指令,将实参的值拷贝到栈上空间。2. 浮点型值做返回值,不是用eax传出返回值,而是用浮点寄存器ST0原创 2013-01-05 10:00:33 · 2289 阅读 · 0 评论 -
探讨c++函数中的参数传递与返回值(二) 传参
第二章 传参下面我们来讨论传参的情况:在参数传递的过程中,有一个动作是必然会发生的,这就是从实参到形参的拷贝。在值传递过程中,拷贝的是变量的值(如有必要,调用拷贝构造函数)。在指针传递过程中,拷贝的则是指针的值,也就是所指向变量的地址。在引用过程中,拷贝的是引用所在内存中的值,其实也就是上文所说的常指针的值,总之拷贝的是个地址。而在函数内部,对拷贝进来的这个值的任何改变都不原创 2013-01-05 09:53:48 · 601 阅读 · 0 评论 -
探讨c++函数中的参数传递与返回值(五) 复杂型值的参数传递与返回值
第五章 复杂型值的参数传递与返回值1.数组做参数或返回值 数组做参数或返回值时,传入传出的值将会是数组首地址。其方式与指针类似。示例源码:char* FuncReturnArray(char szAry[]){ return szAry;}void main(){ char szArray[] = "hello"; FuncReturnArray原创 2013-01-05 11:08:55 · 1127 阅读 · 0 评论 -
探讨c++函数中的参数传递与返回值(六) 总结
第六章 总结引用,实际上是C++为了简化指针操作,对指针的操作进行了封装,产生了引用类型。实际上引用类型就是指针类型,只不过它用于存放地址的内存空间对使用者而言是隐藏的,而且对引用的任何操作都会被重定向到其指向的变量。 一句话,引用是一种特殊指针。参数传递:参数传递时候,必然会发生从实参到形参的拷贝。其中:·普通值做参数时,直接拷贝值从实参到栈上作为形参;·指针做参数时,原创 2013-01-05 11:14:26 · 825 阅读 · 0 评论