几个术语 ● 标识符:用来标识变量名、函数名、对象名等的字符序列 -由字母、数字、下划线组成,第一个字符必须是字母或下划线 -区分大小写,不能用关键字 -不限制标识符长度,实际长度与编译器有关 -命名原则:见名知意、不宜混淆 ●关键字:具有特定意义的字符串,通常也称为保留字 一类型说明符、语句定义符(控制命令)、预处理命令等 ●运算符(详见后面介绍) ●分隔符:逗号、冒号、分号、空格、()、{} ●注释符:以“/*”开头并以“*”结尾,或者//(行注释符) ●文字词汇:直接用字符表示的数据,即常量,如数字、字符串等 http://math.ecnu.edu.cn/~jypan 12
http://math.ecnu.edu.cn/~jypan 几个术语 12 标识符:用来标识变量名、函数名、对象名等的字符序列 - 由字母、数字、下划线组成,第一个字符必须是字母或下划线 - 区分大小写,不能用关键字 - 不限制标识符长度,实际长度与编译器有关 - 命名原则:见名知意、不宜混淆 运算符(详见后面介绍) 分隔符: 逗号、冒号、分号、空格、()、{} 注释符:以“/*”开头并以“*/”结尾,或者 //(行注释符) 文字/词汇:直接用字符表示的数据,即常量,如数字、字符串等 关键字:具有特定意义的字符串,通常也称为保留字 - 类型说明符、语句定义符(控制命令)、预处理命令等
代码编写与运行 1)编写源程序,以·C为扩展名(可使用任何文本编辑器) 2)编译并连接源文件(可以一步完成),生成可执行文件 gcc[选项]源代码文件∥以Linux下gcc为例 gcc常用选项 ●-0:指定输出文件名,缺省为a.out ·-c:只编译不链接,即只生产目标文件(.0文件) 。-Ipath:指定或增加包含文件(如*.h)的搜索路径 -Lpath:指定(增加)库文件的搜索路径 ●-1name:与库文件1 ibname.a链接 ● -01,-02,-03:优化开关 ~g:在目标码中加入更多信息,用于程序调试 3)运行生成的可执行文件 13 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 代码编写与运行 13 1) 编写源程序,以 .c 为扩展名(可使用任何文本编辑器) 2) 编译并连接源文件 (可以一步完成),生成可执行文件 gcc [选项] 源代码文件 // 以 Linux 下 gcc 为例 -o :指定输出文件名,缺省为 a.out -c :只编译不链接,即只生产目标文件(.o 文件) -Ipath :指定或增加包含文件(如 *.h)的搜索路径 -Lpath :指定(增加)库文件的搜索路径 -lname:与库文件 libname.a 链接 -O1,-O2,-O3 :优化开关 -g :在目标码中加入更多信息,用于程序调试 gcc 常用选项 3) 运行生成的可执行文件
数据类型 short,int,long 整型 signed,unsigned float,double 实型 基木数据类型 char 字符型 Bool C99 布尔型 bool-- stdbool.h> 数据类型 数组 派生类型 扩展类型 指针 结构与联合 void 空类型 指针、函数 enum 枚举型 14 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 数据类型 14
基本数据类型 C datatype.c 类型 关键字 所占字节数 表示范围 整型 short 2 -215215-1 int 2/4 -215215-1/-231231-1 long 4/8 -231w231-1/-263263-1 unsigned short 2 0~216-1 unsigned int 2/4 0~216-1/0~232-1 unsigned long 4/8 0~232-1/0~24-1 实型 float 4(6-7) 10-38~1038 double 8(15-16) 10-388~10388 long double 16(18-19) 10-4932104932 布尔型 Bool 1 true,false 字符型 char 1 ·C没有规定数据类型字节长度,只规定大小顺序,具体由处理器和编译器决定 更长的整型:long long/unsigned long long 15 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 基本数据类型 15 类型 关键字 所占字节数 表示范围 整型 short 2 -215 ~ 215 -1 int 2 / 4 -215 ~ 215 -1 / -231 ~ 231 -1 long 4 / 8 -231 ~ 231 -1 / -263 ~ 263 -1 unsigned short 2 0 ~ 216 -1 unsigned int 2/4 0 ~ 216 -1 / 0 ~ 232 -1 unsigned long 4/8 0 ~ 232 -1 / 0 ~ 264 -1 实型 float 4 (6-7) 10-38 ~ 1038 double 8 (15-16) 10-308 ~ 10308 long double 16 (18-19) 10-4932 ~ 104932 布尔型 _Bool 1 true, false 字符型 char 1 ► C 没有规定数据类型字节长度,只规定大小顺序,具体由处理器和编译器决定 ► 更长的整型:long long / unsigned long long C_datatype.c
typedef 为一个已有的数据类型另外命名(取别名) typedef已有数据类型名新数据类型名 typedef_Boolbool; bool flag=1; typedef float real; rea1x=3.14; C_datatype_typedef.c 16 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan typedef 16 typedef 已有数据类型名 新数据类型名 typedef _Bool bool; bool flag=1; typedef float real; real x=3.14; C_datatype_typedef.c 为一个已有的数据类型另外命名(取别名)