int main(int argc,char* argv[]) 为什么 argc 给出 2 个参数

int main(int argc,char* argv[]) why does argc gives 2 argument?

本文关键字:argc int 为什么 给出 参数 argv main char      更新时间:2023-10-16

如果我正确理解了int main(int argc,char* argv[])的使用,每当我声明 4 整数 argc 必须是 5。例如;

int main(int argc,char* argv[])
{
int portNb = 0;
int leftMotorHandle;
int rightMotorHandle;
int sensorHandle;

if (argc>=5)
{
    portNb=atoi(argv[1]);
    leftMotorHandle=atoi(argv[2]);
    rightMotorHandle=atoi(argv[3]);
    sensorHandle=atoi(argv[4]);
}
else
{
    printf("Indicate following arguments: 'portNumber leftMotorHandle  rightMotorHandle sensorHandle'!n");
    extApi_sleepMs(55000);
    return 0;
}

但是当我调试代码时,argc 的值是 2。如何确定 argc 的值为 5 ?

如果我正确理解使用"int main(int argc,char* argv[])",每当我声明 4 整数 argc 必须是 5。

argcargv与您在程序中声明的变量数量无关。 argc 表示从命令行运行它时提供的参数数。 argv是指向参数(包括程序本身的名称)的字符指针数组。

假设您的程序名为 proc 。您需要从命令行运行它(否则您需要从 IDE 中找出如何提供命令行参数)。

./proc 5 10 15 20
数字 5、10

、15、20 将是你的argv[1].. argv[4]

您应该从命令行输入不少于4个参数。

space 分隔参数。

Int argc 是参数计数,表示您传递的参数数,包括程序名称。

字符指针数组表示参数