回顾只关心C语言的一些要点,熟知的基础将略过。
历史:
Dennis Ritchie在1972年开发了C,当时他与Ken Thompson一起设计UNIX操作系统。C来自于Thompson的B语言。
特点:
设计特性
高效性
可移植性
灵活性
面向编程人员
编译过程:
C编程的基本策略是将源代码转换为可执行文件。C分两步完成这一工作:编译和链接。编译器将源代码转换为中间代码,链接器将此中间代码与其他代码相结合生成可执行文件。
在Linux上使用gcc编译时,要编译hello.c时使用命令gcc hello.c将在当前目录生成a.out可执行文件。使用-o可指定生成文件名:gcc hello.c –o hello。
语言标准:
K&R第一个事实上的标准,1978年
ANSI C标准(C89或C90)
C99标准
C11标准
注释:
/*这是注释*/
//C99增加的注释方式,单行注释
代码示例:
my.c:
#include <stdio.h> /*预处理指令 (preprocessor directive)*/
int main(void) /*程序入口 main函数*/
{
printf("My C review.");
return 0;
}
标识符:
C99一个标识符允许最多63个字符,外部标识符31个字符,使用字符数量超过最大值编译器不会识别额外的字符。
标识符可使用大小写字母、数字、下划线(_),第一个字符必须是字母或下划线。C语言大小写区分。
使程序可读的技巧:
选择有意义的变量名和使用注释。
使用空行分隔函数各部分。
每个语句一行。
查错方法:
自己逐步执行语句。
在程序关键点加入printf()语句监视变量,观察变量值变化。
使用调试器。
C语言关键字:(32个)
auto :声明自动变量
break:跳出当前循环
case:开关语句分支
char :声明字符型变量或函数返回值类型
const :声明只读变量
continue:结束当前循环,开始下一轮循环
default:开关语句中的“其它”分支
do :循环语句的循环体
double :声明双精度浮点型变量或函数返回值类型
else :条件语句否定分支(与 if 连用)
enum :声明枚举类型
extern:声明变量或函数是在其它文件或本文件的其他位置定义
float:声明浮点型变量或函数返回值类型
for:一种循环语句
goto:无条件跳转语句
if:条件语句
int: 声明整型变量或函数
long :声明长整型变量或函数返回值类型
register:声明寄存器变量
return :子程序返回语句(可以带参数,也可不带参数)
short :声明短整型变量或函数
signed:声明有符号类型变量或函数
sizeof:计算数据类型或变量长度(即所占字节数)
static :声明静态变量
struct:声明结构体类型
switch :用于开关语句
typedef:用以给数据类型取别名
unsigned:声明无符号类型变量或函数
union:声明共用体类型
void :声明函数无返回值或无参数,声明无类型指针
volatile:说明变量在程序执行中可被隐含地改变
while :循环语句的循环条件
C99增加关键字(5个)
inline
restrict
_Bool
_Complex
_Imaginary
C11新增(7个)
_Alignas
_Alignof
_Atomic
_Static_assert
_Noreturn
_Thread_local
_Generic