前一章提到了如何开始学习C语言,这一章将在Linux环境下编写第一个C语言程序,我使用的Linux系统是Ubuntu14.04.
在编写程序之前,首先要确定保证你对Linux有基本的了解,比如如何打开终端,目录路径(相对路径,绝对路径),一些基本的命令(ls, cd, mkdir, touch, mv, cp,man)。
随便找个文本编辑器就可以写程序,Linux系统自带的gedit,通过wine安装一个notepad++都可以,哪个用的顺手用哪个,比如写一个最简单的程序。
1.编写程序
首先要注意C语言的文件后缀是“.c”,后面还会有“.h”的文件后缀,文件后缀不能乱写,另外文件名中不能包含诸如空格,表达符合,运算符合之类的符号,不要有汉字。
示例程序取名为hello.c, 代码如下:
2. 编译程序
打开终端(Ctrl+Alt+t),然后切换到代码文件所在目录。然后调用命令编译该文件即可。
$ gcc hello.c -o hello
注:调用gcc命令编译hello.c,将其变成一个名为hello的可执行文件;
通过ls命令会发现目录下多了一个hello的可执行文件(老司机看文件颜色大致能猜到,通过ls -l可查看文件的权限状态)。
-o表示指定输出文件名,如果未指定,即命令如下:
$ gcc hello.c
该命令会在当前目录下,生成一个名为a.out的可执行文件。
3. 执行程序
$ ./a.out
或者
$ ./hello
如上即可执行程序,并看到输出结果: hello world!
代码解释:
1.第一行 #include <stdio.h>
1-1. #include 是什么,有什么用?
#include是一个预处理命令,告知预处理器将已指定文件的内容视为它们在源程序中指令出现处出现的方式处理。
1-2. <stdio.h> 通过#include包含stdio.h,为什么要包含该文件呢?
因为后面要使用printf函数,该函数的原型声明就在头文件中,由此断定,头文件不能随便包含,用到哪个引入哪个。可以通过man来获取该函数原型需要include的头文件。
注:头文件中主要包含定义的一些常量,宏和函数声明,有些也会包含函数定义。
2. 程序的入口函数
int main(void)
{
return 0;
}
返回值int也可以改为void, 而参数void也可以改为int argc, char **argv; 但是函数名字必须是main,main是一个可执行程序的入口,但不一定是结束。
在main中写要实现的功能即可。
3. 代码主体
printf("hello world!\n");
printf函数的主要功能就是在终端中输出一段字符串, '\n'表示换行符。
在编写程序之前,首先要确定保证你对Linux有基本的了解,比如如何打开终端,目录路径(相对路径,绝对路径),一些基本的命令(ls, cd, mkdir, touch, mv, cp,man)。
随便找个文本编辑器就可以写程序,Linux系统自带的gedit,通过wine安装一个notepad++都可以,哪个用的顺手用哪个,比如写一个最简单的程序。
1.编写程序
首先要注意C语言的文件后缀是“.c”,后面还会有“.h”的文件后缀,文件后缀不能乱写,另外文件名中不能包含诸如空格,表达符合,运算符合之类的符号,不要有汉字。
示例程序取名为hello.c, 代码如下:
#include <stdio.h>
int main(void)
{
printf("hello world!\n");
return 0;
}
2. 编译程序
打开终端(Ctrl+Alt+t),然后切换到代码文件所在目录。然后调用命令编译该文件即可。
$ gcc hello.c -o hello
注:调用gcc命令编译hello.c,将其变成一个名为hello的可执行文件;
通过ls命令会发现目录下多了一个hello的可执行文件(老司机看文件颜色大致能猜到,通过ls -l可查看文件的权限状态)。
-o表示指定输出文件名,如果未指定,即命令如下:
$ gcc hello.c
该命令会在当前目录下,生成一个名为a.out的可执行文件。
3. 执行程序
$ ./a.out
或者
$ ./hello
如上即可执行程序,并看到输出结果: hello world!
代码解释:
1.第一行 #include <stdio.h>
1-1. #include 是什么,有什么用?
#include是一个预处理命令,告知预处理器将已指定文件的内容视为它们在源程序中指令出现处出现的方式处理。
1-2. <stdio.h> 通过#include包含stdio.h,为什么要包含该文件呢?
因为后面要使用printf函数,该函数的原型声明就在头文件中,由此断定,头文件不能随便包含,用到哪个引入哪个。可以通过man来获取该函数原型需要include的头文件。
注:头文件中主要包含定义的一些常量,宏和函数声明,有些也会包含函数定义。
2. 程序的入口函数
int main(void)
{
return 0;
}
返回值int也可以改为void, 而参数void也可以改为int argc, char **argv; 但是函数名字必须是main,main是一个可执行程序的入口,但不一定是结束。
在main中写要实现的功能即可。
3. 代码主体
printf("hello world!\n");
printf函数的主要功能就是在终端中输出一段字符串, '\n'表示换行符。