参数入栈顺序: 调用约定: gcc语言默认使用__cdecl调用约定。调用约定不是语言的一部分,是编译器的一部分。 调用约定使用的最典型的地方就是库函数的调用。因为库的编译方式我们的自己的程序的编译方式可能不一样。 小问题: 如何编写一个计算n个数平均值的函数? 示例程序: 这里我们求平均值的时候还 ...
分类:
其他好文 时间:
2018-08-30 22:14:11
阅读次数:
240
#__author:"Feng Lin" #date: 2018/8/29 #装饰器:在不修改函数的调用方式,但是还是想在原来的函数前后添加功能 #如下:timer 就是一个装饰器函数,支队一个函数有一些装饰作用 #使用闭包是实现装饰器的基本原理 import time # def func(): ... ...
分类:
编程语言 时间:
2018-08-29 19:11:28
阅读次数:
140
结果: test()函数引用返回就是 $a 引用$b 同一个内存地址区域 因此改变$a的值 $b的值同时改变 结果改变 static静态局部变量 不会随着函数的调用(调用过程中不操作)和退出而发生改变 调用结束该变量继续存在但是不能使用它; 不能用表达式初始化静态变量 静态全局变量 只能在定义它的文 ...
分类:
Web程序 时间:
2018-08-29 18:42:57
阅读次数:
216
前言 虚函数执行速度要稍慢一些。为了实现多态性,每一个派生类中均要保存相应虚函数的入口地址表,函数的调用机制也是间接实现。所以多态性总是要付出一定代价,但通用性是一个更高的目标。 实验环境 Windows10 企业版 Visual Studio2017 15.8.1 #include<iostrea ...
分类:
编程语言 时间:
2018-08-29 01:03:02
阅读次数:
141
引言 8086CPU的转移指令分为以下几类: 无条件转移指令(如:jmp) 条件转移指令 循环指令(如:loop) 过程(函数的调用过程) 中断 9.1 操作符 offset 9.2 jmp 指令 9.3 依据位移进行转移的 jmp 指令 9.4 转移的目的地址在指令中的 jmp 指令 9.5 转移 ...
分类:
其他好文 时间:
2018-08-27 18:15:09
阅读次数:
154
位置参数的传递 Python虚拟机函数机制之无参调用(一) Python虚拟机函数机制之名字空间(二) Python虚拟机函数机制之参数类别(三) 前面我们已经分析了无参函数的调用过程,我们来看看Python是如何来实现带参函数的调用的。其实,基本的调用流程与无参函数一样,而不同的是,在调用带参函数 ...
分类:
编程语言 时间:
2018-08-25 14:05:35
阅读次数:
209
1、闭包的定义: 当子函数有调用父级函数变量(非全局变量)并返回子函数名时父级函数不会随着函数运行而结束释放,而是会保存状态等待子函数的调用。 我们常见的闭包类型: 这样的闭包大家肯定能一眼看出。 那么这样的呢: 运行上面程序你会发现其实都是闭包,第一种fun2调用了父级函数的name变量,然后函数 ...
分类:
编程语言 时间:
2018-08-23 22:07:06
阅读次数:
142
装饰器装饰器实际上就是为了给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器,使得其满足:(1).不能修改被装饰的函数的源代码(2).不能修改被装饰的函数的调用方式(3).满足(1)、(2)的情况下给程序增添功能实现:我们写一个嵌套函数,在内部函数中添加新功能新内容,然后调用原函数,再在外部函数return这个内部函数。由于
分类:
编程语言 时间:
2018-08-20 22:48:42
阅读次数:
158
★定义 在不改变原函数的调用方式的情况下,在函数前后添加功能 ★固定模式 ★学习步骤 1, 最简单的装饰器 1 # 简单的装饰器 2 import time 3 def timer(f): # 将被装饰的函数传进来 4 def inner(): 5 start_time = time.time() ...
分类:
编程语言 时间:
2018-08-19 23:52:46
阅读次数:
356
本篇内容 1.什么是函数 2.函数定义,函数名,函数体以及函数的调用 3.函数的返回值 4.函数的参数 一.什么是函数 函数:定义一个事情或功能.等到需要的时候直接去用就好了.(对代码块和功能的封装和定义) 二..函数定义,函数名,函数体以及函数的调用 def 函数名(): 函数体 函数名的命名规则 ...
分类:
其他好文 时间:
2018-08-19 13:01:33
阅读次数:
120