2014-08-29 56 views
1

我“由丹尼斯里奇C编程语言”,并在一开始 阅读它按照书上的代码应该只是罚款演示代码即以下旧的和新的Unix编译器之间的区别?

#include<stdio.h> 
main() 
{ 
printf("Hello, World"); 
} 

。然而,当我编译这段代码时,它会产生一个错误,要求我使主返回类型具体为“int”类型。即使使其无效也会导致编译错误。这是为什么?它真的让我烦恼。我想,既然这本书是由语言的创造者撰写这将是准确的,我想不会...

进出口运行它在Unix FreeBSD的10.0

+0

这不是不准确,它只是大量过时。你在使用什么编译器,以及使用什么设置? – 2014-08-29 23:57:21

+2

这是一个警告,不是一个错误,除非你正在编译'-Werror' – 2014-08-30 00:02:49

+0

我在Unix上运行它通过VMware的FreeBSD 10.0,对不起,这是最技术的im知道。只是一个新手,很多要学习 – 2014-08-30 00:03:19

回答

3

那本书是几十年前写的,语言有从那以后,它有不少变化。

即使是涵盖ANSI C(前身为K & R)的版本也已过时。它涵盖了C89/90,此后我们拥有了C99和C11。

很可能有编译器使用标准的旧版迭代(例如对于某些嵌入式系统),但编译器您并不是,至少使用您的选项。

如果你想学习当前语言,我建议你选择一个更新的书。

+2

为什么downvote?这对我来说似乎是一个正确的答案。只是好奇。 – 2014-08-30 00:02:57

相关问题