这篇文章给大家分享的是有关main函数怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
main函数,是以C为基础开发平台的程序入口点,通常,我们写程序很少去关注函数main函数参数列表,而是简单给出下面这种情况。
int main() { system("pause"); return 0; }
打开MSDN,查看main函数,
main( int argc, char *argv[ ], char *envp[ ] )
{
program-statements
}
首先,我们先来看前两个参数,argc和 argv[ ],这两个主要是用来描述命令行参数的,但并不能说他们是命令行参数,对一个程序而言,它们表示的是main函数的形参。(有点绕)
举个例子,打开cmd,如下图
我们输入hello.exe,表示这是一个可执行程序,后面我们可以跟上一些参数,-m,2,1等,参数在这里没有什么实际意义,但如果我们提前写好了hello.exe,之后我们加上的参数,都是可以获取到的,那我们这里加上的这些参数,就是所谓的命令行参数,和main函数的参数是两回事。
那在cmd下可以运行,在外部环境下怎么去设置环境变量呢?
打开VS编译器,项目----->属性---->调试
在这里,我们可以提前设置好命令行参数。
argc和argc[ ]就是用来调整这些参数的,它们可以获取到我们设置的命令行参数
其中,argc表示的是参数的个数,对程序而言,去识别命令行参数时,都是当做字符串来识别,而argv[]是一个字符指针数组,数组的每个元素都是char*类型的,指向的就是我们的命令行参数的各个参数,数组名为argv。
还是上面的例子,我们的argc值为4,而argv[]中共有五个char*类型的元素,分别为"hello.exe","-m","2","1",最后还存放了一个NULL。argc里面是NULL之前的参数个数。
那我们就可以通过数组下标的方式 argv[i] 来访问到我们的命令行参数的内容,再去实现我们的功能。通常,一般会在程序最开始对argc进行判断,是否满足我们接下来要访问的参数个数,如果小于我们所需最少的参数个数,程序往往会奔溃。
另外需要强调的一点,还是,这几个参数只是形参,名字并不是固定的,可以去改变它,只是我们通常这样来理解。
很明显,我们每次需要实现一个操作,都需要跑到工程----->属性下面去改命令行参数,这并不是我们想要的,但命令行参数确实是很重要的,这主要体现在cmd环境下。
在cmd环境下找到我们刚刚建的工程,Debug下找到刚刚的可执行程序(后缀为.exe),在它后面跟上我们的参数,点击回车,参数就会被获取到,就会出现我们想要的结果。
再举个简单的例子,fcopy.exe 是实现文件复制的可执行程序文件,在命令行方式运行fcopy格式:
系统提示符 + fcopy.exe in.dat out.dat
in.dat”和“out.dat”是命令行参数,其中,“in.dat ”和“out.dat”前均可带盘符和查找路径。
关于环境变量
简单地说就是“Path”是一个变量,里面存储了一些常用命令所存放的目录路径。跟DOS的默认路径相似,当吧目录添加到Path下之后,运行某些程序时除了在当前文件夹中寻找外,还会到设置的默认路径中去查找。
比如path, 是告诉系统, 当要求系统运行一个程序而没有告诉它程序所在的完整路径时, 系统除了在当前目录下面寻找此程序外, 还应到哪些目录下去寻找。
一般情况下,看不出环境变量有什么意义,但学习过Java的应该都知道,eclipse安装之后是要配置环境变量的,也就是把bin目录给复制过去,具体是为什么,这里就不多解释了。环境变量能解决的另一个大问题,就是双系统的软件共用问题。例如分别在C盘和D盘安装win7和xp的系统,但有些软件却只在某个系统下安装,另一个系统下往往不能使用,比较麻烦的办法就是在另个平台下再安装一遍。
为什么在某个系统下安装的软件在另外一个系统打不开呢?原因是安装软件时往往须要向系统目录中复制某些文件,而使用另外一个系统时会由于缺少这些文件而无法运行。环境变量则可以很好的解决这个问题。
查看环境变量,可以通过我的电脑-〉属性-〉高级,来设置系统的环境变量,然而在此设置的环境变量是否在注册表中具有对应的项呢?答案是肯定的。
感谢各位的阅读!关于“main函数怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。