main()在C和C++中定义函数的正确(最有效)方法是什么- int main()或void main()- 为什么?如果int main()那么return 1或return 0?
这个问题有很多重复,包括:
main()函数的有效签名是什么?main()函数void main()和int main()?main()在C++中的签名main()? - 对于C++,确实有一个非常好的答案.main()C语言中的函数样式main()C中的方法类型int main()vs void main()在C中有关:
在许多C++ IDE和编译器中,当它为您生成主函数时,它看起来像这样:
int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)
当我在没有IDE的情况下编写C++代码时,只需使用命令行编译器,我输入:
int main()
Run Code Online (Sandbox Code Playgroud)
没有任何参数.这意味着什么,对我的计划至关重要?
为了在C程序中获取环境变量,可以使用以下内容:
getenv() extern char **environ;但除了上面提到的,使用char *envp[]第三个参数main()来获取环境变量被认为是标准的一部分?
#include <stdio.h>
int main(int argc, char *argv[], char *envp[])
{
while(*envp)
printf("%s\n",*envp++);
}
Run Code Online (Sandbox Code Playgroud)
是char *envp[]便携式?
每次我用Xcode创建一个项目(标准命令行实用程序)时,我的main函数开始看起来像这样:
int main(int argc, const char * argv[])
Run Code Online (Sandbox Code Playgroud)
括号中的所有内容是什么?为什么要使用这个而不仅仅是
int main()?
如果我写:
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)
这是依赖于操作系统还是依赖于编译器?
我无法弄清楚为什么以下代码中的任何一个无法按预期运行.两者都编译成执行文件.
输出:
a.out , prints 1, expected "no value"
a.out 1, prints 2, expected 1
a.out 2, prints 2, expected 2
Run Code Online (Sandbox Code Playgroud)
使用案例:
void main(int in)
{
int a = in ;
printf("In function if\n");
if ( in == 1 )
printf("1\n");
else
if ( in == 2)
printf("2\n");
else
printf("wrong value\n");
}
Run Code Online (Sandbox Code Playgroud)
使用开关:
void main(int in)
{
switch( in )
{
case 1: printf("1\n"); break;
case 2: printf("2\n"); break;
default: printf("wrong value\n"); break;
}
};
Run Code Online (Sandbox Code Playgroud)
我想在C代码中获得以下LISP功能:
(cond ((= in 1) …Run Code Online (Sandbox Code Playgroud) c ×5
c++ ×3
argc ×1
arguments ×1
argv ×1
command-line ×1
parameters ×1
return-type ×1
return-value ×1