![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C语言教材里的程序都是基于什么系统的
现在的大部分外国经典教材,书上讲的例子都是基于什么系统的?UNIX?LINUX?还是WINDOWS?另外有些书上讲的程序格式互相都不一样、比如main主函数有的就是mai...
现在的大部分外国经典教材,书上讲的例子都是基于什么系统的?UNIX?LINUX?还是WINDOWS?
另外
有些书上讲的程序格式互相都不一样、
比如main主函数
有的就是main()或者int main()或者是 main(void)
有的main函数里还有return,有的书里就没有、
请问这些有什么区别呢?是不是针对不同的操作系统?
请各位解释一下为什么会出现这种情况。 展开
另外
有些书上讲的程序格式互相都不一样、
比如main主函数
有的就是main()或者int main()或者是 main(void)
有的main函数里还有return,有的书里就没有、
请问这些有什么区别呢?是不是针对不同的操作系统?
请各位解释一下为什么会出现这种情况。 展开
18个回答
展开全部
大部分外国C语言经典教材 不针对任何系统,它们的C语言标准主要有:C89,C90(ISO/IEC 9899:1990),C99(ISO/IEC 9899:1999) 三种。
C89,C90类似,都是经典ANSI C,C90作了少量改进,并让 ISO采纳。C99 是较新的ISO国际标准,ANSI后来也接受了它。
经典教材 以 C89,C90 为主,很难见到C99。
用C89,C90,即常说的ANSI C 写的程序,所有的常见编译器都支持(例如 TC,VC++,gcc编译器).
main() -- C89,C90 默认是 int main(), 但 C99 认为是错的,C99要求显式定义为 int 型或 void 型.
int main(),必须有 return 语句。
void main(),必须有exit(0)语句。
main() 等同 main(void)。
当需要传递位置参数(命令行参数)到c语言内时,要用:
void main(int argc, char *argv[]){..};
argc 是命令行参数总个数,参数内容 依次在 argv[0],argv[1],argv[2]...里,argv[0] 是程序名。
C99 里含 长64位的变量,见到 long double, long long ... 就是C99。当然,还有些别的新花样。
C89 函数头有点怪样,形参类型不一同写在扩号里,而在下面花括号前声明一下。
C89,C90类似,都是经典ANSI C,C90作了少量改进,并让 ISO采纳。C99 是较新的ISO国际标准,ANSI后来也接受了它。
经典教材 以 C89,C90 为主,很难见到C99。
用C89,C90,即常说的ANSI C 写的程序,所有的常见编译器都支持(例如 TC,VC++,gcc编译器).
main() -- C89,C90 默认是 int main(), 但 C99 认为是错的,C99要求显式定义为 int 型或 void 型.
int main(),必须有 return 语句。
void main(),必须有exit(0)语句。
main() 等同 main(void)。
当需要传递位置参数(命令行参数)到c语言内时,要用:
void main(int argc, char *argv[]){..};
argc 是命令行参数总个数,参数内容 依次在 argv[0],argv[1],argv[2]...里,argv[0] 是程序名。
C99 里含 长64位的变量,见到 long double, long long ... 就是C99。当然,还有些别的新花样。
C89 函数头有点怪样,形参类型不一同写在扩号里,而在下面花括号前声明一下。
展开全部
linux,windows都有的
格式不一样是因为编译器不一样
同一系统下有不同的编译器的话也会不一样
一般,main的写法是
int main()
和
int main(int argc, char *argv[])
有时也会多一个参数
int main(int argc, char *argv[], char *envp[])
格式不一样是因为编译器不一样
同一系统下有不同的编译器的话也会不一样
一般,main的写法是
int main()
和
int main(int argc, char *argv[])
有时也会多一个参数
int main(int argc, char *argv[], char *envp[])
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大多是windows系统,而且一般大多是xp的,也有2000的,这两者都差不多的。
而且大多用的编译器都是vc6.
至于int main()还是main你以后用多了就了解了。一般两种形式:
int main()
{
return 0;
}
void main()
{
}
(注:void这里也可以不写)
两种形式都可,书中大多用后者吧。不过,其实正规的都是用第一种的。
而且大多用的编译器都是vc6.
至于int main()还是main你以后用多了就了解了。一般两种形式:
int main()
{
return 0;
}
void main()
{
}
(注:void这里也可以不写)
两种形式都可,书中大多用后者吧。不过,其实正规的都是用第一种的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
"main()或者int main()或者是 main(void)
有的main函数里还有return,有的书里就没有"
这是书写规范问题,int类型可以省略,不写的话就默认为int;
因为main()的括号里面不写形参名,所以main()与main(void)一样;
最标准的还是
int main()
{
过程
return 0;
}
因为main是主函数,所以不需要return值给其他函数,return几乎没什么用,但规范上来说还是写return比较好,return;和return 0;差不多。如果lz在非WINDOWS下编译的话,不写return可能无法通过。
一般翻译的国外教材导言上会写基于什么OS,如果导言没说的话,一般都是UNIX、LINUX、WINDOWS通用的。但是GCC与VC与DEV C++不同编译环境下是有差别的,翻译教材时一定会说明,lz留意一下导言与后序就行了。(GCC一般在UNIX与LINUX下,VC的话三者都行,DEV C++在WINDOWS下)。
有的main函数里还有return,有的书里就没有"
这是书写规范问题,int类型可以省略,不写的话就默认为int;
因为main()的括号里面不写形参名,所以main()与main(void)一样;
最标准的还是
int main()
{
过程
return 0;
}
因为main是主函数,所以不需要return值给其他函数,return几乎没什么用,但规范上来说还是写return比较好,return;和return 0;差不多。如果lz在非WINDOWS下编译的话,不写return可能无法通过。
一般翻译的国外教材导言上会写基于什么OS,如果导言没说的话,一般都是UNIX、LINUX、WINDOWS通用的。但是GCC与VC与DEV C++不同编译环境下是有差别的,翻译教材时一定会说明,lz留意一下导言与后序就行了。(GCC一般在UNIX与LINUX下,VC的话三者都行,DEV C++在WINDOWS下)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()函数是头文件<stdio.h>中声明的一个函数。每个C程序都是由一个或多个函数组成的,每个C程序都必须有一个main()函数,因为每个C程序总是从这个函数开始执行的。
int表示main()函数返回值的类型,关键字int是表示main()函数返回一个整数值。若有int这个关键字,就要有return语句来结束main()函数的执行,把值0返回给操作系统。从main()函数返回0表示程序正常终止,而返回非0值表示异常。如果没有int关键字则后面可以没有return语句。
void 括号中的单词是函数的参数,带有函数开始执行时候传递给它的信息,void表示没有给函数传递任何数据。因为没有传递任何数据,所以可以省略。
你可以把程序写成:
#include <stdio.h>
int main(void)
{
...
return 0;
}
也可以写成:
#include <stdio.h>
main()
{
...
}
都可以。甚至你可以写成 void main()都可以
前的一个问题,我认为是不针对任何系统的。书上讲的是标准的C,经过编译器编译之后已经变成机器码,可以运行在任何操作系统上。
int表示main()函数返回值的类型,关键字int是表示main()函数返回一个整数值。若有int这个关键字,就要有return语句来结束main()函数的执行,把值0返回给操作系统。从main()函数返回0表示程序正常终止,而返回非0值表示异常。如果没有int关键字则后面可以没有return语句。
void 括号中的单词是函数的参数,带有函数开始执行时候传递给它的信息,void表示没有给函数传递任何数据。因为没有传递任何数据,所以可以省略。
你可以把程序写成:
#include <stdio.h>
int main(void)
{
...
return 0;
}
也可以写成:
#include <stdio.h>
main()
{
...
}
都可以。甚至你可以写成 void main()都可以
前的一个问题,我认为是不针对任何系统的。书上讲的是标准的C,经过编译器编译之后已经变成机器码,可以运行在任何操作系统上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言发明人的原版著作是基于UNIX,因为C语言比windows年龄大,而且C语言就是为UNIX而生 ,不过现在c语言有标准的,和系统关系不大
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询