徐土豆
认证:优质创作者
所在专题目录 查看专题
C语言中去除不必要的内存引用可以有效地提高性能
C语言中内循环和外循环的位置可能产生性能上的区别
[C语言朝花夕拾] C语言中的命令行输入参数判断
用“位操作”取代“取模操作”判断奇数偶数
c语言运行时出现segment fault的原因
一文理解C语言中的volatile修饰符
作者动态 更多
【论文极速看】ERNIE 3.0 通过用知识图谱加强的语言模型
2星期前
工作一年时期的土豆总结——复杂度和困难度
10-22 14:24
【见闻录系列】我所理解的“业务”
10-19 11:25
markdown数学公式编辑
10-17 13:58
在linux系统上部署FTP服务时进行权限管理(利用chown,chmod命令实现)
10-09 10:24

[C语言朝花夕拾] C语言中的命令行输入参数判断

本文转自徐飞翔的“[C语言朝花夕拾] C语言中的命令行输入参数判断

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

在C语言中,我们的函数入口经常会有:

int main(int argc, char** argv) {
	...
	return 0;
}

类似这样的传入参数,这类型的参数是为了,用户在利用命令行调用该程序的时候,能够传入适合的参数去控制程序的特定行为。例如,假如现有程序:

#include <stdio.h>

int main(int argc, char** argv) {
	printf("number of arg %d\r\n", argc);
	int i = 0;
	for (;i < argc;++i) {
		printf("params = %s\r\n", argv[i]);
	}
}

其中的argc是英文arguments counts,即是参数计数的简称;argvarguments value,即是参数值的简称。假如以上的程序命名为test,那么编译完后,运行以下命令行:

./test -gpus 0,1,2,3

该命令的意图在于指定特定的gpu列表,那么将会输出:

number of arg 3
params = -gpus
params = 0,1,2,3

其中参数计数为3的原因是需要将./test计入在数,而-gpus0,1,2,3等分别用空格隔开的看成是不同的参数,都是字符串的格式(也即是char*),需要后续用特定程序去处理和解析。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 2
收藏 1
关注 50
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧