No.63574 作者:红8511 邮件: ID:136082 登陆:1次 文章数:8篇 最后登陆IP: 最后登陆:2009/9/2 13:41:08 注册:2009/9/2 13:41:08 财富:100 发帖时间:2009/9/4 16:55:20 发贴者IP:221.219.118.207 标题:红8511:一本超越谭浩强、K&R的C语言编程著作《 Linux C编程一站式学习》连载四 摘要:No.63574一本超越谭浩强、K&R的C语言编程著作《 Linux C编程一站式学习》连载四 4. 第一个程序 通常一本教编程的书中第一个例子都是打印“Hello, World.”,这个传统源自[K&R],用C语言写这个程序可以这样写: 例 1.1. Hello World #include <stdio.h> /* main: generate some simple output */ int main(void) { printf("Hello, world.\n"); return 0; } 将这个程序保存成main.c,然后编译执行: $ gcc main.c $ ./a.out Hello, world. gcc是Linux平台的C编译器,编译后在当前目录下生成可执行文件a.out,直接在命令行输入这个可执行文件的路径就可以执行它。如果不想把文件名叫a.out,可以用gcc的-o参数自己指定文件名: $ gcc main.c -o main $ ./main Hello, world. 虽然这只是一个很小的程序,但我们目前暂时还不具备相关的知识来完全理解这个程序,比如程序的第一行,还有程序主体的int main(void){...return 0;}结构,这些部分我们暂时不详细解释,读者现在只需要把它们看成是每个程序按惯例必须要写的部分(Boilerplate)。但要注意main是一个特殊的名字,C程序总是从main里面的第一条语句开始执行的,在这个程序中是指printf这条语句。 第3行的/* ... */结构是一个注释(Comment),其中可以写一些描述性的话,解释这段程序在做什么。注释只是写给程序员看的,编译器会忽略从/*到*/的所有字符,所以写注释没有语法规则,爱怎么写就怎么写,并且不管写多少都不会被编译进可执行文件中。 printf语句的作用是把消息打印到屏幕。注意语句的末尾以;号(Semicolon)结束,下一条语句return 0;也是如此。 C语言用{}括号(Brace或Curly Brace)把语法结构分成组,在上面的程序中printf和return语句套在main的{}括号中,表示它们属于main的定义之中。我们看到这两句相比main那一行都缩进(Indent)了一些,在代码中可以用若干个空格(Blank)和Tab字符来缩进,缩进不是必须的,但这样使我们更容易看出这两行是属于main的定义之中的,要写出漂亮的程序必须有整齐的缩进,第 1 节 “缩进和空白”将介绍推荐的缩进写法。 正如前面所说,编译器对于语法错误是毫不留情的,如果你的程序有一点拼写错误,例如第一行写成了stdoi.h,在编译时会得到错误提示: $ gcc main.c main.c:1:19: error: stdoi.h: No such file or directory ... 这个错误提示非常紧凑,初学者往往不容易看明白出了什么错误,即使知道这个错误提示说的是第1行有错误,很多初学者对照着书看好几遍也看不出自己这一行哪里有错误,因为他们对符号和拼写不敏感(尤其是英文较差的初学者),他们还不知道这些符号是什么意思又如何能记住正确的拼写?对于初学者来说,最想看到的错误提示其实是这样的:“在main.c程序第1行的第1 ......
>>返回讨论的主题
|