我必须使用以下签名实现main函数:
int main(int argc, char *argv[])
什么是命令行参数,为什么我不需要它的测试用例?他们的“签名”是什么意思?它只是功能原型吗?
我肯定会编辑这个问题,以便在我澄清这些事情之后包括我对解决方案的尝试。
我对这个程序本质上做了什么感到困惑,我可以看到它返回一个整数值,但该整数值代表什么?另外,如何使用参数列表中指定的参数返回整数值?他们的意思是什么?谢谢你的帮助!
答案 0 :(得分:1)
虽然这是一个很难说的问题,但我觉得有义务帮助缓解你的困惑。
这是一个程序,它打印出它的名字(argv[0]
),而需要至少一个参数。如果没有给出至少一个参数,则返回1表示失败。否则,它打印出它的参数并返回0表示成功(对shell或者任何启动它的人)。
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
printf("Hello World, my name is \"%s\" \n", argv[0]);
if (argc < 2) {
printf("I require at least 1 argument! Exiting!\n");
return 1; // Indicate failure.
}
printf("I was given %d command-line arguments:\n", argc-1);
for (i=1; i<argc; i++) {
printf(" [%d] %s\n", i, argv[i]);
}
return 0; // Indicate success
}
编译并运行该程序,事情应该变得更加清晰。