网站大量收购独家精品文档,联系QQ:2885784924

[工学]C语言学习.ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]C语言学习

printf示例 char* s=“hello; printf(%d,%10d,%-10d,%010d,%+d\n,123,123,123,123,123); printf(%f,%10f,%-10f,%06.3f,%6.2f\n,1.2,1.2,1.2,1.2,1.2); printf(%s,%10s,%-10s,%6.3s\n,s,s,s,s); int w; for(w=10;w15;w++) printf(%c,%*c\n,a,w,a); scanf/fscanf 流 文件指针 FILE *fp1; 标准流 文件指针:stdin stdout stderr 文件操作 fopen()函数 模式 “r” 打开文件用于读 “w” 打开文件用于写 “a” 打开 文件用于 “r+” 用于读写,从头开始 “w+” 用于读写,文件存在就截去 “a+” 用于读写,文件存在就追加 文件操作的其他函数 fclose()关闭文件 remove()删除文件 rename()文件改名 * * * 练习 写一个宏函数,用它来验证一个日期是否合法 #define ISLEAP(y) ((y)%4==0(y)%100!=0||(y)%400==0) #define ISSMALL(m) ((m)==4||(m)==6||(m)==9||(m)==11) #define NORMAL(m) (ISSMALL(m)?30:31) #define DAYS(y,m) ((m)==2?28+ISLEAP(y):NORMAL(m)) #define IN(x,from,to) ((x)=(from)(x)=(to)) #define VALID(y,m,d) ((y)1600IN(m,1,12)IN(d,1,DAYS(y,m))) 宏函数的优缺点 优点 程序可能会稍微快一点 宏更“通用” 宏函数中的参数不检查类型 缺点 编译后的代码通常会变大 宏参数没有类型检查 无法用一个指针指向宏 宏可能会不止一次地计算它的参数 n = MAX(i++, j); #和##运算符 #运算符 只能出现在宏函数中,其作用是将参数字符串化 #define PTINT_INT(n) printf(#n “=%d\n”, n); ##运算符 将两个记号“粘合”在一起,成为一个记号,其中一个记号一般为宏参数 #define ID(n) i##n int ID(1), ID(2), ID(3) Define GEN_MAC(type) \ type type##_max(type x, type y) \ { return x y ? x : y;} 预定义宏 __LINE__ 被编译文件行号 __FILE__ 被编译文件名 __DATE__ 编译的日期 __TIME__ 编译的时间 __STDC__ 如果编译器是标准的,那么值为1 条件编译 #if和#endif #define DEBUG #if DEBUG printf(“Value of i: %d\n”, i); printf(“Value ofj: %d\n”, j); #endif #if 常量表达式 常量表达式为0时,预处理器删除#if和#endif中间的代码 #if会把没定义过的标准符视做为0,如果没有定义DEBUG,测试#if DEBUG会失败,但#if !DEBUG会成功 #ifdef #ifndef #elif #else #endif 编写大型程序 多个源文件和头文件 #include 文件名 在系统 位置找头文件 #include “文件名” 从当前目录找,找不到再到系统位置找 可以用宏来定义文件名 #if defined(IA32) #define CPU_FILE “ia32.h” #elif defined(IA64) #define CPU_FILE “ia64.h” #elif defined(ADM64) #define CPU_FILE “amd64.h” #endif #include CPU_FILE 使用头文件 共享宏定义 #include stdbool.h 共享函数原型 共享变量声明 Extern 保护头文件 防止多次包含头文件 #ifndef BOOLEAN_H #define BOOLEAN_H …… #endif 练习 构建自己的工具库 构建多文件程序 编译和链接 Makefile 结构、联合和枚举 结构 结构变量 struct{ int number; char name[10]; int onHand; }part1, part2; 初始化 {112, “Disk”, 10} C99中的指定初始化 {.number=1

文档评论(0)

ipbohn97 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档