今天,在学习IOCP的时候,突然发现对c++编译器的一些常用的宏比较陌生,就稍微学习了一下。
ps:在vs 2005环境下,打开“Project → Project Settings”,选择 C/C++ 选项卡,在“Category”栏选择“Listing Files”然后在Listing file type栏选择“Assembly with Machine Code”。重新编译工程后则可以在输出目录看到与每一个.cpp文件同名的.cod文件
1、几种函数调用的声明方式
example:
_cdecl:全称为c declaration。这是c 默认的函数调用的方式,调用这样的函数时,所有参数从右向左压栈,由调用者进行清栈,调用函数时,可以不明确参数的个数和类型,c++编译器将不检查这样的不确定性,像printf和scanf就必须使用这种调用方式。
使用int _cdecl maxInt(int x,int y)声明方式编译后的汇编代码如下(关键看压栈和返回阶段):