Tim*_*Tim 8 c c++ command-line command-line-arguments
如果我写:
int main(int argc, char** argv)
Run Code Online (Sandbox Code Playgroud)
我得到适当的命令行输入.如果我写的话怎么会说,
int main(int foo, double fooDouble, fooType FooVar)
Run Code Online (Sandbox Code Playgroud)
这是依赖于操作系统还是依赖于编译器?
鉴于它确实编译,它仍然只能使用argc和argv参数调用.
所以你的fooDouble将获得argv的指针值,而FooVar将获得用于该参数位置的寄存器/堆栈空间中的任何值(可能没有被被调用者初始化,因此它可能包含任何未定义的值).
这段代码甚至不需要编译.如果是,则可能发生未定义的行为.
添加第三个(或第四个或第五个......)参数的效果main确实取决于操作系统.例如,在Windows上(我也相信Unix)你可以有第三个参数来授予对环境变量的访问权限:
int main( int argc, char **argv, char **env )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
941 次 |
| 最近记录: |