导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[红8511]一本超越谭浩强、K&R的C语言编程著作《



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 ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:484毫秒 查询6次