本文内容:
编写一个 c 程序,让其输出 hello, world。
这是第一个 hello world 的程序,文件命名为 hell_world.c (c 语言中的程序以 “.c” 作为后缀,类比 php 程序以 “.php” 作为后缀),
#include <stdio.h> // 包含标准库信息
int main(){ // 程序执行入口
printf("hello, world\n"); // 这个和 php 语言一样
}
可以看到和 php 程序的差别不大,唯一两处不同就是: 1、
#include <stdio.h>
这行有什么作用,看到 include 语法,也许你已经猜到了,其表示包含了一个 stdio.h 的文件。其实, stdio.h 已 “.h” 为后缀,表示这是一个头文件,其作用是对下文 printf 函数的申明,这 c 语言中,函数需要先申明,再使用的。
2、
main(){
}
这个 main 函数定义了程序的入口,既程序总是从 main 函数开始指定。
那么问题来了,程序已经写好了,如何执行呢。
让我们先回顾一个php 程序是如何执行的, 下面是一个 php 程序的 hello world 代码:
<?php
// 文件保存为 index.php
printf("hello, world\n");
然后我们在 index.php 所在的目录执行下面命令:
php -f index.php
下 console 看到了如下的输出:
leon@leon-ThinkPad-T440 c $ php -f index.php
hello,world
那么,我们要执行 c 程序,是不是也有类似的命令呢,简单来说不完全是。
因为 php 是 脚本语言,脚本语言的特点呢就是解释执行, 而 c 语言是静态语言,需要先编译,然后执行。
接着,我们如何编译 hello_world.c 程序呢,我们使用 cc 命令:
cc hello_world.c
我们会发现,当前目录多了一个 a.out 的文件。( ls 是 list 的意思, 即查看当前目录的文件和文件夹列表。)
leon@leon-ThinkPad-T440 c $ ls
a.out hello.c
这就是我们要的文件, 我们来执行它:
./a.out
("." 表示当前目录, “/” 表示分隔符, 上面的命令的意思就是"执行当前目录的 a.out 文件"), 我们看到了如下输出:
leon@leon-ThinkPad-T440 c $ ./a.out
hello, world
hello, world 成功输出了,大功告成。
让我们来回顾一下,本文的知识点:
1、c 语言是静态语言,需要先编译,然后执行 (不同于 php 语言,直接解释执行)
2、c 程序是以 “.c” 后缀结尾的
3、c 程序使用 #include <xxx.h> 语言包含标准头文件
4、c 程序总是从 main() 开始执行
5、c 中的方法需要先申明,然后使用
6、使用 cc 命令可以编译 c 源程序,生成可执行文件
思考题:
1、如果我们忘记包含 stdio.h 的头文件,执行使用 cc 命令编译会出现什么错误呢
2、如果我们觉得 a.out 的文件太难看,我们想改变 cc 编译后的可执行文件名,该如何实现呢
提示:
问题1 可以自行测试,问题2 可以使用如下的命令查看手册:
man cc
man 就是 manual 的意思,也就是手册的意思 ^^, 实现上 Unix 环境的命令都是使用这个命令查看命令的使用实测,是不是很方便呢