### 基本结构
C语言中大部分内容都是记录在.c作为扩展名的文件里的,这种文件叫做C语言的源文件。
C语言中少一部分内容需要记录在以.h作为扩展名的文件里,这种文件叫做C语言的头文件。
C语言中每个计算步骤最后都必须用;结束,用;结束的一个计算步骤叫做语句。
2 + 6;
C语言程序中绝大多数语句都应该写在大括号里。
{2 + 6;}
C语言中大括号可以用来表示函数,目前可以把函数当做一组语句看待。
C语言程序中每个函数都必须有名字,不同函数的名字必须不同。
C语言程序中必须包含一个叫做main的主函数。
int main(){
2 + 6;
}
程序从主函数的第一条语句开始执行,到最后一条语句结束,然后整个程序结束。
C语言中允许函数在完成所有工作之后,用一个数字表示它的工作结果,这个数字叫做函数的返回值。
主函数应该返回值,如果返回值是0就表示程序希望计算机认为它正常结束,如果不是0就表示程序希望计算机认为它出问题了。
在主函数中当出现return的时候,就是结束函数的执行,在任何时候都起到这个作用,此外辅助作用是用来指定返回值的数字。
int main(){
2 + 6;
return 0; // 主要是结束函数,其次是返回值
}
### 数据类型
计算机里根据不同数字在某个方面的区别把数字分成几组,每组叫做一个数据类型。
每种数据类型都有自己的名字。
整数类型是一种数据类型,它的名字是int。
整数类型里包含几乎所有不带小数点的数字。
程序中所有数字都必须是有类型的。
程序中不带小数点的数字默认都是整数类型。
函数的返回值也是有数据类型的,函数返回值的类型写在函数名称前。
### 预处理指令
C语言程序中通常包含预处理指令。
预处理指令以#开头,但是不以;结尾。
C语言中遇到的预处理指令都可以把文件里的内容替换成其他内容。
-#include 是一个预处理指令,它可以把一个头文件的内容包含到当前文件中,在这个预处理指令中需要使用相对路径表示被包含头文件的位置
两种表示路径的方式
* <> : 表示以系统中预先规定好的一组目录依次作为起点查找头文件。
* "" : 表示首先以当前文件所在目录作为起点查找,然后再以系统中规定好的一组目录依次作为起点查找。
```
#include <stdio.h>
#include "demo1.h"
int main(){
2 + 5;
return 0;
}
```
### 注释
C语言程序中可以加入文字性的说明信息,这些信息必须加入到注释区域中。
计算机会直接忽略注释区域里的内容。
注释可以是多行注释,也可以是单行注释。
单行注释是以//做开头一直到行尾。
多行注释是以 /* 做开头,以 */ 做结尾。
/* 主函数
* 练习
* */
int main(){
2 + 5;
return 0; // 函数结束,返回值是0
}
### 标识符
C语言中大量使用名称区分不同的内容,这些名称叫做标识符。
标识符最好用英文单词编写。
标识符的规则:
* 1. 第一个字符应该是英文字母或者下划线
* 2. 后面的字符可以是字母、下划线、阿拉伯数字
* 3. C语言中大小写是区分的,因此大写和小写的标识符是不相同的
* 4. 关键字不能作为标识符使用,例如:return
* 5. 标识符的长度没有限制,但是计算机只会截取前面的一部分使用
* 6. 标识符应该采用驼峰方式或者下划线方式书写
### 编译器
想要将C语言让计算机可以识别,那么就需要使用编译器将我们编写好的程序编译成计算机可以识别的语言。
gcc是linux系统中C语言的编译器。
MinGW是windows里的gcc。
使用gcc来编译一个程序文件:
gcc main.c
编译没有报错的话,默认会得到一个`a.out`的文件,这个文件就是给计算机看的文件。
gcc常见选项的介绍
-E 只处理预处理指令
-c 只处理预处理指令和编译
处理结果是以.o作为扩展名的文件,这种文件叫做目标文件
这样的文件,计算机认识,但是缺少东西,所以还不能执行
-o 可以决定得到的结果文件名称
-std=c89/-std=c99 这个选项决定采用什么版本C语言的标准规范进行编译,默认采用的c89
### 总结小例子
/*
C语言程序结构练习
*/
#include <stdio.h>
int main(){
3000 /* 手机 */ - 1000 /* 手表 */; // 计算手机和手表的价格差
return 0;
}