使用 Eclipse 在 C 中将参数传递给 main

Passing arguments to main in C using Eclipse

我在 Eclipse 中有一个程序,我需要将一些参数传递给 main。

更具体地说,我需要传递 2 个字符串(它们是数字)并且需要调用一些其他函数。这是我的主要内容:

int main(int argc, char **argv) {
    int n = atoi(argv[0]);
    size_t size = (size_t)(atoi(argv[1]));
    char **commands = getCommands(n, size);
    return 0;
}

getCommands 是什么并不重要,因为我的问题是:

1) 我在这里使用 atoi 正确吗?让我提醒您,我要传递的参数是一个字符串数组,其中字符串是数字。另外,atoi 中的 int 是否会通过强制转换成功转换为 size_t

2) 我必须在 Eclipse 的参数框中输入什么? 当我通过时:2 {"3","50"} 它不起作用。难道我不应该先传递数组中的参数数量,然后再传递字符串数组吗?我有点困惑。这也适用于从命令行传递参数,因为我猜它必须具有相同的格式?我也不知道怎么做。

谢谢。

1) 当然,如果您假设您的输入是有效数字,那一切都很好(除了下面描述的 argv 索引)。如果不是,atoi 将 return 0.

2) 你不打算将参数传递给 main——相反,你将参数传递给程序,OS 提出正确的参数传递给 main。因此,与其传递 2 {"3","50"},不如传递 3 50。在你的 main 函数中,你会看到 argc == 3argv[0] 是程序的名称,argv[1] 是字符串 "3"argv[2] 是字符串 "50".