将参数传递给C程序

时间:2010-04-17 05:42:00

标签: c argument-passing

我正在写一个C程序,我使用6个变量a,b,c,d,e,f

a,b,c是常量值,我应该从命令行作为参数传递。

d,e,f将是结构数组的大小。

typedef struct
{
   blah blah
} ex;

ex ex0[d];

我对如何将所有这些作为参数传递感到非常困惑。现在我已经硬编码了这些值,显然我不应该这样做。

3 个答案:

答案 0 :(得分:7)

这应该让你开始:

int main(int argc, char* argv[]) {
    // argc - number of command line arguments
    // argv - the comand line arguments as an array

    return 0;
}

答案 1 :(得分:3)

传递给程序的所有参数都存储在主函数的第二个参数

int main(int argc, char* argv[]) // or int main(argc, char** argv)

因此您可以通过argc [3]轻松访问第4个参数。但它不是int,它是字符串,所以你需要解析它。有标准库既可以从argc中获取实际参数,也可以根据需要解析它们。但是在临时程序中没有必要使用它们,因此您的代码可能如下所示:

typedef struct
 {
  blah blah
 } ex;
int main(int argc, char* argv[])
{
 ex ex0[(int)argv[3]]; // i am not sure if it works on pure C, so you can try int atoi(char *nptr) from stdlib.h
}

答案 2 :(得分:1)

使用命令行参数

int main(int argc, char* argv[]) // or int main(int argc, char **argv)
{
   // argc is the argument count
   //argv : The array of character pointers is the listing of all the arguments.
   //argv[0] is the name of the program.   
   //argv[argc] is a null pointer
}