C++入口函数main返回值

 

C++入口函数main返回值

分类: 读书笔记:C++primer 2012-11-06 14:56 104人阅读 评论(0) 收藏 举报
1.具有MS特色的main函数,MS坚持20年不动摇.无论是C89,C99,C++98都不支持这种形式.但是MS的编译器支持,如果想程序移植性良好,强烈建议 采用这种方式.
  1. void main()  
  2.  
  3.  
void main()
{
}

2.这种写法是为了兼容早期的C语言,因为第一个版本的C中内置类型只有int(char,double,float,bool都是后来加入的),既然只有一种类型,那么不写就默认int.C99标准中要求,对于这种写法至少给出编译警告.不建议采用这种老的书写方式.

  1. main()  
  2.  
  3.   return 0;  
  4.  
main()
{
  return 0;
}

3.win32控制台程序最常见的写法,返回值为0.为什么不返回-1,或者1呢.0表示正常情况.main的返回值是给操作系统用的,如果是单进程的程序一般用不到这个返回值,但是如果是

作业或者其他联系紧密的进程,那么这个返回值就有用了,其他进程可能会要使用这个返回值.

  1. int main()  
  2.  
  3.    return 0;  
  4.  
int main()
{
   return 0;
}
5.C99规定了两种形式之一

参数1:argc 表示 命令行输入参数的个数(不输入默认1)

参数2:argv表示 命令行输入参数的值(不输入默认为exe的全路径)

  1. int main(int argc,char**argv)  
  2.  
  3.   
  4.     return 0;  
  5.  
int main(int argc,char**argv)
{

    return 0;
}
例如如下代码:
  1. #include   
  2. int main(int argc,char* argv[])  
  3.  
  4.     std::cout<<argc<<std::endl;  
  5.     int i;  
  6.     for (i ;i argc ++)  
  7.      
  8.         std::cout<<argv[i]<<std::endl;  
  9.      
  10.     system("pause");  
  11.     return 0;  
  12. };  
#include 
int main(int argc,char* argv[])
{
        std::cout<<argc<<std::endl;
        int i;
        for (i = 0 ;i < argc ; i ++)
        {
                std::cout<<argv[i]<<std::endl;
        }
        system("pause");
        return 0;
};

直接双击运行输出如下结果:

命令行运行输出如下结果:












5.window窗口程序入口

  1. int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd  
  2.  
  3.      return 0;  
  4.  
int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
{
     return 0;
}

其中宏__in表示入参,WINAPI调用约束 __stdcall

参数1:

  1. hInstance 表示 程序的实力句柄  
 hInstance 表示 程序的实力句柄
参数2:
  1. HINSTANCE hPrevInstance 早期window应用程序用于表示适当程序是否有别的实例正在运行  
HINSTANCE hPrevInstance 早期window应用程序用于表示适当程序是否有别的实例正在运行

参数3:

  1. __in LPSTR lpCmdLine"font-family: Arial,Helvetica,sans-serif;">  命令行, 一般用于文件的load到内存  
 __in LPSTR lpCmdLine  命令行, 一般用于文件的load到内存

参数4:

  1. __in int nShowCmd"font-family: Arial,Helvetica,sans-serif;"> 窗口打开的是的状态(最大化,隐藏,正常)  
__in int nShowCmd 窗口打开的是的状态(最大化,隐藏,正常)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值