7.static
面向过程:
变量:存储在全局数据区(程序的数据存储区依次为,代码区,全局数据区,堆区,栈区),生命周期为程序的整个运行周期,如果是静态局部变量,其作用域跟不同变量一样,只在本函数类可见,如果是全局变量,则只在定义它的文件中可见。其他文件中不可见。
函数:其作用域只在定义的文件中可见,其他文件不可见。
面向对象:
变量:生命周期同上,其作用域专属于类,不是某个类所特有。可以用类名::变量名,类对象名.变量名
函数:生命周期通商,函数定义内部不带隐含this指针,不能直接调用非静态成员变量和非静态函数,是归属某个类,而不是某个类对象。其调用方式,类名::函数名
类对象.函数名。
8。__stdcall , __cdecl ,__pascal
这时函数名全部变成大写,第一个参数先压栈,然后清栈。
TESTFUNCTION @1 //def file
__stdcall 标准调用
最后一个参数先压栈,然后清栈。
TestFunction @1 //def file
__fastcall 把参数传递给寄存器
第一个参数先压栈,然后清栈。
@TestFunction @1 //def file
而在C++BUILDER中!
__cdecl的函数输出前会带一"_"
__stdcall无特征,只输出函数名
__fastcall函数输出前带一"@"
都无"@nn"后缀格式!
在VC中!
__cdecl无特征,只输出函数名
__stdcall的函数输出前会带一"_"后缀带"@nn"
__fastcall函数输出前带一"@"后缀带"@nn