- 1、本文档共141页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计第四章ppt西工大
* 4.10.4 头文件与工程文件 图4.12 多源文件时头文件的处理示意 * 4.10.4 头文件与工程文件 2.工程文件 多文件结构程序在编译时需要工程文件来管理,不同的编译器有不同的工程文件格式。 * 4.10.4 头文件与工程文件 图4.13 CodeBlocks工程文件管理 * 4.10.5 提高编译速度 提高编译速度 (1)预编译头文件 (2)增量编译 (3)编译缓存 Poj题目讲解 * unsigned char c1; scanf(“%u”, c1); Inline int xchg(unsigned char n) 例如:0110 0111 0111 0110 低四位和高四位交换 位运算: ab 相同位的两个数字都为1,则为1;若有一个不为1,则为0。 a|b 相同位只要一个为1即为1。 a ^ b 相同位不同则为1,相同则为0。 ~a 取反,0取反是1,1取反是0 a b 左移b位 a b右移b位所有数值必须转换为二进制数才能位运算,每一位数相对应运算 * 内联函数:函数调用需要建立栈内存环境,进行参数传递,并产生程序执行转移,这些转移都需要时间开销。有些函数在程序中使用率较高,但代码却很短。我们可以在程序当中用表达式替换函数调用,但是降低了函数的可读性。采用inline可以 兼而有之。 注意: 在内联函数内不允许用循环语句和开关语句。递归函数是不能用来做内联函数的。 内联函数的定义必须出现在内联函数第一次被调用之前。 内联函数只适合于1-5行的小函数。对于一个含有很多语句的大函数,函数调用和返回的开销相对来说是微不足道的。 * 定义内联函数的方法很简单,只要在函数定义的头前加上关键字inline即可 Inline int???isnumber???(char???ch)?????????????????????????????????//此处无inline,视为inline??? {??? ??????return???(ch?=?0????ch?=?9?)?1:0;??? }?? int???main()??? {??? ????char???c;??? ????while((c=getchar())!=?\n?)??? ????{??? ????????if(???isnumber(c)???)???????????????????????????????????//调用一个小函数??? ?????????????printf(“you???entered???a???digit???\n?”);??? ????????else??? ??????????????printf(?“you???entered???a???non-digit???\n?”);??? ??????}??? }??? ?? ? * 在程式中,调用其函数时,该函数在编译时被函数体替代,而不是像一般函数那样是在运行时被调用。使用内联函数,会增加编译时间。 inline int xchg(unsigned char n) { unsigned char t1; t1=n; t1=t14; n= n4; n = n | t1; return n; } * int main() { unsigned char n; scanf(%d, n); printf(%d\n, xchg(n)); return 0; } Inlineinfo.cpp* * 例如:0110 0111 0111 0110 向左边移动n位,相当于把高n位和低32-n位进行交换 向右边移动n位,相当于把低n位和高32-n位进行交换 int move(int value,int n) { int t1; t1=value; if(n0){ t1=t1(32-n); value= valuen; value = value | t1; } else if(n0){ t1=t1(n); value= value(32-n); value = value | t1; } return value; } Valuemove.cpp* 作业解析 * 编程程序打印如下sin函数曲线 * int main() { int i, j, pr1, pr2,max; for(i=0; i 360; i=i+15){ printf(sin(%3d)=%+.4f,i, i/180.0*PI); pr1 = XPixel + Depth*sin(i/180.0*PI); pr2 = XP
文档评论(0)