这是一个相当假设的问题,但是假设我有3个以相同字母开头的长参数。
--parse or -p
--prune or -r
--pivot or -i
最终,我会开始用尽有意义的单个字母,更重要的是,在GNU getopt_long()配置中很难分配一些有意义的字母。
{"parase", no_argument, 0, 'p'},
{"prune", no_argument, 0, 'r'},
{"pivot", required_argument, 0, 'i'}
在这些情况下,最佳做法是什么?
答案 0 :(得分:7)
您不必为val
成员使用可打印字符。此外,它是int
,而不是char
。它应该只是帮助您确定选项。 (意思是,你不必有相应的短路)。
答案 1 :(得分:5)
您可以选择大写和小写,为您提供52个短选项,但是许多接受长选项的程序甚至不会为某些选项分配短选项,迫使用户仅使用长选项,好的。
答案 2 :(得分:1)
数字0-9可用于。想象一下,一个数据压缩程序要么接受-compression=[0-9]
,要么接受-[0-9]
(我不知道这是否适用于getopt)。
此外,也可以使用大写字母。
我理解这是一个假设的问题,但有很多选项,程序可能做得太多或需要配置文件。
答案 3 :(得分:0)
我建议你看看boost program options。它是用于获取命令行参数的通用库。非常容易使用。