将多个参数传递给main()

Ily*_*hot 0 c parameters program-entry-point command-line-arguments

对于我的类,我需要创建一个在运行时接受多个参数的函数:

void main(int x, int y, int generation, char *layout[20])
Run Code Online (Sandbox Code Playgroud)

但是,当程序以我对这些变量的输入运行时,信息不会存储在调试过程中

run 3 3 3 Test_Round
print x // returns 5
print y // returns -8779
Run Code Online (Sandbox Code Playgroud)

如何将多个参数传递给main函数,以便main识别我给它的参数?

感谢大家!我只是使用argv [1]等来获取我需要的正确数据!

Men*_*ックス 5

该标准清楚地表明了如何声明主要功能.

从C99标准:

5.1.2.2.1程序启动

程序启动时调用的函数名为main.该实现声明此函数没有原型.它应与被定义返回类型INT,并没有参数:

int main(void) { /* ... */ } 
Run Code Online (Sandbox Code Playgroud)

或者两个参数

(这里称为argcargv,虽然可以使用任何名称,因为它们是声明它们的函数的本地名称):

int main(int argc, char *argv[]) { /* ... */ } 
Run Code Online (Sandbox Code Playgroud)

或等效的; 9)或其他一些实施定义的方式.

如果声明它们,main函数的参数应遵循以下约束:

- 值argc为非负值.

- argv[argc]应为空指针.

-如果值argc大于零,阵列成员argv[0]通过argv[argc-1]包容应包含指向 为字符串,其通过编程启动之前的主机环境给定实现所定义的值.目的是在程序启动之前从托管环境中的其他地方向程序提供信息.如果主机环境不能提供大写和小写字母的字符串,则实现应确保以小写形式接收字符串.

-如果值argc大于零,则该字符串指向argv[0]表示节目名称; 如果程序名不能从主机环境获得,argv[0][0]则应为空字符.如果argc的值大于1,则argv[1]through 指向的字符串argv[argc-1]表示程序参数.

- 数组指向的参数argcargv字符串argv应由程序修改,并在程序启动程序终止之间保留它们最后存储的值.