比方说,我在SDK里看到的
int WINAPI WinMain(...);
int CDECL MessageBox(..);
等等,
1,请问在C或者C++里有这样的语法吗?
2,象__stdcall等是C的关键字吗?
3,书上的意思好象是说,表示该函数调用时入栈的方式,对吗?
4,这样做有什么意义吗?
多谢多谢,分数很少,它日再谢,问题多.

解决方案 »

  1.   

    C和C++的缺省函数调用方式是__cdecl:
       由主调用函数进行参数压栈并且恢复堆栈,实参的压栈顺序是从右到左,最后由主调函数进行堆栈恢复。由于主调用函数管理堆栈,所以可以实现变参函数。
    WINAPI指定函数调用方式是__stdcall:
       在主调用函数中负责压栈,在被调用函数中负责弹出堆栈中的参数,并且负责恢复堆栈。因此不能实现变参函数,参数传递是从右到左。
      

  2.   

    1,那我如果什么都不写, 有缺省值吗?
    2, eg:  ...
          #define A 
          int A main()
           {
            ....
           }
       我随便定义的一个宏,也可以通过,是有这种语法吗
      

  3.   

    1.有缺省值。
    2.你的例子是属于偏执型的例子,试试
     #define A SHUIBIAN
          int A main()
           {
            ....
           }
    保证出错。
      

  4.   

    不好意思,最后一个问题.请问我有哪几种选择呢?  
    1, __stdcall
    2, __cdecl
    3, ?
      

  5.   

    这个应该对你有帮助http://www.csdn.net/Develop/Read_Article.asp?Id=12276
      

  6.   

    这个应该对你有帮助http://www.csdn.net/Develop/Read_Article.asp?Id=12276http://www.csdn.net/Develop/Read_Article.asp?Id=18168