一、编写第一个C程序(hello world!)
文件名字为hello.c的文件
#include<stdio.h>
int main(){
printf("hello world!");
return 0;
}
对每行代码的注释:
// #include : 用来包含头文件的
// <stdio.h> : 标准输入输出的头文件,使用printf函数时,需要包含stdio.h头文件
// 包含头文件的两种方式:<头文件名> 或 "头文件名"
// <头文件名> : 从系统默认的路径下查找对应的头文件,
// 系统默认的头文件在/usr/include
// "头文件名" : 先从当前目录下查找用户自定义的头文件,
// 如果没有找到再到系统默认的路径下查找对应的头文件
#include <stdio.h>
// main : 应用程序的入口函数,执行程序时,从main函数开始执行
// 每个应用程序有且只有一个main函数,即只能有一个入库函数
// int : main函数的返回值,返回为int类型
// (int argc, const char *argv[]) : main函数的参数,
// 讲解到指针之后详细讲解
int main(int argc, const char *argv[])
{
/* 用户代码 */
// printf :标准输入输出头文件中定义的打印字符串到终端的函数
// 打印的字符串需要使用双引号括起来。
// \n : 换行符
printf("hello world\n");
return 0;
// main函数的返回值,程序执行成功返回0,
// 执行失败返回一个非0的数
} // 每个函数的语句都需要使用{}括起来
// 每条语句的结束使用“;”分号结尾
// 单行注释 : // 注释内容
// 多行注释 :/* 注释内容 */
// 多行注释不可以嵌套 /* /* */ */
二、编译程序
C语言属于编译型语言,不可以直接运行,需要使用gcc编译,将c代码编译生成可执行的文件之后才可以运行。
1. 编译生成默认名字的可执行文件
gcc hello.c
---> 默认生成a.out的可执行文件
2. 编译生成指定可执行文件名字的可执行文件
gcc hello.c -o hello
|---> 对可执行文件重命名
3. 分步编译C代码(重点掌握,面试题)
1> 预处理:头文件的展开,注释删除,宏定义展开,不检查语法错误
gcc -E hello.c -o hello.i
2> 编译: 检查语法错误,词法错误,并生成对应的汇编文件
gcc -S hello.i -o hello.s
3> 汇编: 将会被文件编译生成二进制文件,不可以运行,没有进行链接
gcc -c hello.s -o hello.o
4> 链接 : 将二进制文件生成可执行文件
gcc hello.o -o hello
简化为两步:
1> 预处理->编译->汇编
gcc -c hello.c -o hello.o
2> 链接
gcc hello.o -o hello
三、运行程序
1. 使用相对路径执行可执行程序
./a.out
./hello
2. 使用绝对路径执行可执行程序
/home/linux/DC24031/day01/a.out
/home/linux/DC24031/day01/hello
执行程序时,默认需要指定可执行程序的路径,才可以找到对应的可执行程序。