cores

来源:互联网 发布:java编程思想 百度云 编辑:程序博客网 时间:2024/05/11 19:37

C程序高级应用设计读后笔记

Void  _cdecl    intdos(int intno, union REGS &regs, union REGS &regs);

1.

__cdecl,__stdcall是声明的函数协议.主要是参和弹栈方面的不同.一般c++用的是__cdecl,windows里大都用的是__stdcall(API)  

 

2.     __cdeclC/C++MFC程序默使用的定,也可以在函数声明加上__cdecl关键字来手工指定。采用__cdecl,函数参数按照从右到左的序入,并且由用函数者把参数以清理堆。因此,实现参数的函数只能使用该调定。由于一个使用__cdecl定的函数都要包含清理堆的代,所以生的可行文件大小会比大。__cdecl可以写成_cdecl  
         __stdcall
定用于Win32   API函数。采用__stdcal,函数参数按照从右到左的序入,被用的函数在返回前清理送参数的,函数参数个数固定。由于函数体本身知道传进来的参数个数,因此被用的函数可以在返回前用一条ret   n指令直接清理传递参数的堆__stdcall可以写成_stdcall  
         __fastcall
定用于性能要求非常高的合。__fastcall定将函数的从左边开始的两个大小不大于4个字DWORD)的参数分放在ECXEDX寄存器,其余的参数仍旧自右向左压栈传送,被的函数在返回前清理送参数的堆__fastcall可以写成_fastcall

 

3.    _cdecl:函数参数从右边压栈,由函数用者释栈c/c++使用  
 
    _stdcall:从左边压栈,由函数本身释栈basic,pascal,   winapi,com等使用  

 

4.   getchar() 使用getchar()来读取字符时候, 每一次读取完后 都把回车字符  /n 留在读入缓冲区中。所以如果要是在使用getchar()读取字符后在一次使用getchar()读取下一个字符时候 必须在读取前使用getchar()把回车符 /n取走.    使用getchar时候 必须 在读取后 再加一个getchar();函数调用。 以防止读取错误。

5.  对文件进行读取操作时候,一定记得把文件指针控制好。

原创粉丝点击