getopt_long 函数解析命令行参数时的 struct option

static const struct  option  options[] = {
{"help"         , no_argument      , NULL, 'h'},
{"output"       , required_argument, NULL, 'o'},
{"level"        , required_argument, NULL, 'l'},
{"size"         , required_argument, NULL, 's'},
{"symversion"   , required_argument, NULL, 'v'},
{"margin"       , required_argument, NULL, 'm'},
{"structured"   , no_argument      , NULL, 'S'},
{"kanji"        , no_argument      , NULL, 'k'},
{"casesensitive", no_argument      , NULL, 'c'},
{"ignorecase"   , no_argument      , NULL, 'i'},
{"8bit"         , no_argument      , NULL, '8'},
{"version"      , no_argument      , NULL, 'V'},
{NULL, 0, NULL, 0}
};

它声明了一个数组options,元素的类型是一个静态结构常量。

static const 静态常变量
struct  option 变量类型 
options[]变量名

struct option {
	const char *name; //name表示的是长参数名
	int has_arg;
		//has_arg有3个值,no_argument(或者是0),表示该参数后面不跟参数值
		// required_argument(或者是1),表示该参数后面一定要跟个参数值
		// optional_argument(或者是2),表示该参数后面可以跟,也可以不跟参数值
		int *flag;
	//用来决定,getopt_long()的返回值到底是什么。如果这个指针为NULL,
	//那么getopt_long()返回该结构val字段中的数值。如果该指针不为NULL,
	//getopt_long()会使得它所指向的变量中填入val字段中的数值,并且getopt_long()返回0。
	//如果flag不是NULL,但未发现长选项,那么它所指向的变量的数值不变。
	int val;
	//和flag联合决定返回值 这个值是发现了长选项时的返回值,
	//或者flag不是 NULL时载入*flag中的值。典型情况下,若flag不是NULL,
	//那么val是个真/假值,譬如1 或0;另一方面,如 果flag是NULL,那么val通常是字符常量,
	//若长选项与短选项一致,那么该字符常量应该与optstring中出现的这个选项的参数相同。
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值