C++:main 函数和命令行参数

main 函数和命令行参数

所有 c + + 程序必须具有 main 函数。 如果尝试编译没有函数的 c + + 程序 main ,编译器将引发错误。 (动态链接库和 static 库没有 main 函数。 ) main 函数是源代码开始执行的位置,但在程序进入 main 函数之前,所有 static 没有显式初始值设定项的类成员都将设置为零。 在 Microsoft c + + 中,全局 static 对象还会在进入之前进行初始化 main 。 一些限制适用于 main 不适用于任何其他 c + + 函数的函数。 main 函数:

无法重载 。
不能声明为 inline 。
不能声明为 static 。
无法获取其地址。
不能从程序调用。

main函数签名

该 main 函数不具有声明,因为它内置于该语言中。 如果是这样,的声明语法将如下所 main 示:

int main();
int main(int argc, char *argv[]);

如果未在中指定返回值 main ,则编译器将提供返回值零。

标准命令行参数

的参数 main 允许自变量的命令行分析。 argc 和 argv 的类型由语言定义。 名称 argc 和 argv 是传统的,但你可以将其命名为你喜欢的任何名称。

自变量定义如下所示:

argc
一个整数,其中包含后面的参数的计数 argv 。 argc 参数始终大于或等于1。

argv
表示由杂注用户输入的命令行自变量的以 null 结尾的字符串的数组。 按照约定, argv[0] 是用于调用程序的命令。 argv[1] 是第一个命令行参数。 命令行中的最后一个参数为 argv[argc - 1] ,并且 argv[argc] 始终为 NULL。

备注

按照约定, argv[0] 是程序的文件名。 但是,在 Windows 上,可以使用来生成进程 CreateProcess 。 如果同时使用第一个和第二个参数 (lpApplicationName 和 lpCommandLine) ,则 argv[0] 可能不是可执行的名称。 您可以使用 GetModuleFileName 检索可执行文件名称及其完全限定路径。

Microsoft 专用扩展

以下各节介绍了特定于 Microsoft 的行为。

wmain函数和 _tmain 宏

如果将源代码设计为使用 Unicode 宽 char acters,则可以使用特定于 Microsoft 的 wmain 入口点,这是的 char acter 版本 main 。 下面是的有效声明语法 wmain :

int wmain();
int wmain(int argc, wchar_t *argv[]);

你还可以使用 Microsoft 特定的 _tmain ,它是在中定义的预处理器宏 tchar.h 。 _tmain 解析为, main 除非 _UNICODE 定义了。 在该示例

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值