传递给main()的args的名称是否重要

时间:2014-11-11 20:51:00

标签: c command-line-arguments argv argc

我知道要在C中使用命令行参数,你可以这样做:

int main(int argc, char **argv)
{
//use argc and argv
}

今天我在思考它,我意识到我从来没有见过他们叫argcargv。要求他们被称为这个或仅仅是惯例吗?如果需要,为什么会这样呢?

我可以这样做:

int main(int length, char**myinput){
//use length as you would argc and myinput
// as you would argv
}

我还没有机会写一个程序来测试它。

2 个答案:

答案 0 :(得分:5)

C标准说你可以随意打电话给他们。

  

5.1.2.2.1程序启动

     

1程序启动时调用的函数名为main。该实现声明没有原型   功能。它应该使用返回类型int和no来定义   参数:

int main(void) { /* ... */ }
     

或有两个参数(这里称为argc和argv,虽然任何参数   可以使用名称,因为它们是它们所在的函数的本地名称   宣布): [..]

What does int argc, char *argv[] mean?中,回答者meager表示argcargv按惯例命名(分别为参数计数和参数向量)。

答案 1 :(得分:2)

这只是一个惯例,对名称没有要求。它们是任何其他用户定义的参数,因此请使用您想要的任何名称。