带命令行参数的main函数的误解[到处转载的垃圾]
参考带命令行参数的main函数详解[转载]
http://www.cnblogs.com/xdshennju/archive/2012/01/23/2328992.html
一个C程序总是从main()函数开始执行的。
评:有的C程序压根就没有main()函数
在最新的 C99 标准中,只有以下两种定义方式是正确的:
(参阅ISO/IEC 9899:1999 (E) 5.1.2.2.1 Program startup)
评:这个是对C99的误解。在C89中,“只有”这两个字才成立。C99并不绝对拒绝这两种外形式的main()
编译环境是TC
评:用这种C89之前的编译器来讨论C标准是扯淡。TC本身还容许main()带第3个参数懂不懂?
如果把 return 0; 改为 return 99;
评:C标准只谈到main()返回0或1,其他的情况由编译器确定。你这里返回99,问过编译器吗?
要是你这样写 return 99.99; 那还是返回99,因为99.99被传给操作系统之前,被强制类型转换成整数类型了。
评:和main()八竿子打不着的事情,返回类型为int的函数都是这样处理
C编译器允许main()函数没有参数,或者有两个参数(有些实现允许更多的参数,但这只是对标准的扩展)。这两个参数,一个是int类型,一个是字符串类型。
评:C99已经把这种扩展作为了标准,所以谈不上什么“只是对标准的扩展”。
“一个是字符串类型”:在C语言中根本就不存在字符串类型,C语言操作字符串是通过char *类型指针。把char **当作字符串类型,C语言还没入门吧?
系统使用空格把各个字符串格开。
评:无中生有,没有任何依据。
把程序本身的名字赋值给argv[0],接着,把最后的第一个字符串赋给argv[1]。
评:什么叫“程序本身的名字”?argv[0]实际上与具体的实现相关。
“最后的第一个”,这是话么?
argv[0] ------> c(程序名) 。
评:很难说这个是什么。
编译运行,打开命令行并输入d love.txt 回车。这样,打开d.c文件所在的目录,你会发现多了一个名为 love.txt 的文件,打开后里面的内容正是世界上说的最多的那句话。
love.txt 文件和d.c文件所在目录没有关系,d.c是源文件而不是可执行文件。love.txt应该是在系统当前目录下。
使用命令行参数的理由或许就是练习命令行用法,以备以后需要编写基于命令行的程序。还有一个好处是,不需要C环境就可以运行已经编译好的程序。
运行已经编译好的程序和是否使用命令行参数没有任何关系。
带命令行参数的main函数的误解[到处转载的垃圾]相关推荐
- c语言学习进阶-C语言带命令行参数的文件数据批量计算
C语言带命令行参数的文件数据批量计算 (1)假设输入文件中的数据为多行整数,把数据文件命名为"InputData.txt",也可以命名为任意的文件名,尝试设计一个c 语言程序, 主 ...
- c语音学习进阶-C语言带命令行参数的程序设计
C语言带命令行参数的程序设计 (1)深入理解并学习带命令行参数的程序设计方法,使用c 语言完成带命令行参数的科学计算程序,能从给定的任意文件名的文件当中输入数据,并能向给定的任意文件名的输出文件当中输 ...
- vs2013中带命令行参数的调试方法
@VS2013带命令行参数的调试方法 在C++函数参数传递中,我们知道,main函数是演示C++程序如何向函数传递数组的好例子.一般来说,我们定义的大多main函数都只有空的形参列表: int mai ...
- python编写请求参数带文件_转载:如何编写一个带命令行参数的Python文件
看到别人执行一个支持命令行参数的python文件,瞬间觉得高大上起来.牛逼起来,那么如何编写一个带命令行参数的python脚本呢?不用紧张,下面将简单易懂地让你学会如何让自己的python脚本,支持命 ...
- main函数带命令行参数的使用
假设程序编译后生成的可执行文件为mycal.exe..在命令行提示符下,通过在windows开始菜单执行cmd命令,出现:c:>,键入mycal 100+200 运行的结果为 300:键入myc ...
- 每日一测1(带命令行参数运行)
怎么让程序带参数运行以便适应不同的测试环境? 命令行参数在程序中的配置位置是在项目-属性-启动选项-命令行参数里 可以通过Main方法传入命令行参数(控制台程序本身就已带), 传入一个string类型 ...
- python带命令行参数解析的文件遍历脚本(找出文件名长度大于某值的文件)
背景 复制一个目录时,提示有个文件名太长未能复制成功,然后忘记是哪个了,现在要靠脚本把它找出来. 代码 #!/usr/bin/pythonimport getopt import os import ...
- 在c语言中命令行参数是什么,C语言命令行参数
这是可能在命令行中的一些值传递给C程序执行.特别是从参数传入,而不是外界硬编码写入这些值到代码控制程序中,这些值被称为命令行参数,很多时候,它们对程序很重要. 命令行参数使用main()函数的参数,其 ...
- 【C 语言】数组 ( 指针数组用法 | 命令行参数处理 )
文章目录 一.指针数组用法 ( 命令行参数处理 ) 二.完整代码示例 一.指针数组用法 ( 命令行参数处理 ) main 函数是 操作系统 与 应用程序 交互的入口 , main 函数的 char* ...
最新文章
- Java多线程闲聊(五):AQS
- IOS开发之----远程推送通知
- 手握价值70万录用书的程序员提离职,领导:你已升职成功,还走?
- container_of 用法解析
- HTML和CSS常见问题整理
- Sublime Text 的下载巨慢的问题,安装问题,html页面代码生成问题,代码提示问题 全都解决了【最完美的解决方案】
- 设置Java JDK的默认编码为UTF-8
- 日文邮件变成乱码解决方案
- 深入理解Mysql - 事务与锁原理
- MWC-电机、电池螺旋桨搭配
- php 解压 中文文件夹,如何把文件夹压缩为rar
- Spark Core实战:解析Tomcat日志
- Google广告中介(以MoPub广告接入为例)
- 台式计算机VGA线可以拔掉吗,电脑开机花屏拔掉vga线在插入又会清晰
- 柳如是,当得奇女子。
- MindManager:将excel转成思维导图
- PMP章节练习—项目经理的角色
- 51单片机(8051系列)最小系统图--内部时钟
- Java 9~Java 17主要更新了什么?
- 单片机断电记忆方法C语言,单片机实现具有掉电记忆功能的计时器
热门文章
- java mybatis狂神说sql_狂神说SpringBoot09:整合MyBatis
- Java学习_day009(oop):引用类型数组、继承的意义
- python创建文件os_Python之文件与目录操作(os、zipfile、tarfile、shutil)
- iOS12系统应用发送普通邮实现发送
- 网站截图工具EyeWitness
- Xamarin Android项目真机测试闪退
- Wireshark数据抓包分析(网络协议篇)1.2安装Wireshark
- 查询添加条件_035 JAVA-MySQL 约束、DML操作(增改删)、事务处理、查询数据
- 怎么判断膝关节错位_膝关节韧带损伤该如何处理——健康科普
- 灰色关联投影法python_python灰色关联算法(灰度关联算法)