- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数及宏定义
* * 注:这里的 t 展开后为 t = (a+b)(c+d)?(a+b):(c+d) 如果第一行写成: #define MAX(x,y) xy ? x : y 则这里的 t 展开后为 t = a+bc+d?a+b:c+d 因为置换展开是用“表达式”对等的置换“形参表”中的参数。 ? 定义带参数的宏,可以实现一些简单的函数功能。 如: #define MAX(x,y) (x)(y)?(x) : (y) … main( ) {int a, b, c, t ; … t = MAX(a+b, c+d); … } * * 例1.9(演示) #include “stdio.h” #define N 2 #define M N+1 #define NUM (M+1)?M/2 main( ) { int i, n=0; for (i=1; i=NUM; i++) { n++; printf(“%2d”, n); } printf(“\n”); } 输出结果: 1 2 3 4 5 6 7 8 ? NUM被代换展开后为:( 2+1+1) ?2+1/2 ② 一个include命令只能指定一个被包含文件,如果要包含n个文件,则要用n个include命令。 * * 1.11 “文件包含” 处理 在C中可以用 #include 命令实现一个文件包含另一个文件。语句形式: #include “文件名” 在#include命令中,文件名既可用双引“ ”号也可用尖括号 括起来。 文件包含可以是头文件、也可以是别的源程序文件。 * * 1.12 条件编译 条件编译的语句形式: 1.#ifdef 标识符 程序段1 #else 程序段2 #endif 其作用是:如果“标识符”已定义,则编译“程序段1”,否则编译“程序段2” 。 * * ? 其中的“程序段1”或“程序段2”可以是命令,也可以是语句或语句组。 ? #else部分可有可无。 ? 所谓“标识符已定义”是无论“标识符”定义为什么内容。 ? 用条件编译的作用是缩短编译时间,减少目标程序的长度。 ? “标识符”一般为#define命令所定义的宏名。 例: #ifdef IBM_PC #define INTEGER_SIZE 16 #else #define INTEGER_SIZE 32 #endif * * 其作用是:如果“标识符”未定义,则编译“程序段1” ,否则编译“程序段2”。 3.#if 表达式 程序段1 #else 程序段2 #endif 其作用是:当“表达式”值为非0 ,则编译“程序段1” ,否则编译“程序段2”。 2.#ifndef 标识符 程序段1 #else 程序段2 #endif * * 例 1.10 (演示) #define LETTER 1 main( ) {char str[20] = “C language”, c ; int i ; i = 0; while ( ( c = str[i] )!= ‘\0’ ) { i + + ; # if LETTER if ( c = ‘a’ c = ‘z’ ) c = c – 32 ; #else if ( c = ‘A’ c = ‘Z’ ) c = c + 32 ; #endif printf ( “%c”, c) ; } } 运行结果: C LANGUAGE * * 例6.12 (演示) #define N 2 #define M N+1 #define NUM 2?M+1 main( ) {int i; for (i=1; i=NUM; i++) printf(“%d\n”, i ); } 程序中的 for 循环执行的次数是多少? 例6.11 #define MAX(x, y) (x)(y) ? (x) : (y) main( ) { int a=5, b=2, c=3, d=3, t; t=MAX(a+b, c+d)?10; printf(“%d\n”, t); /* t 的值是多少?* (演示) / } * * 作业(1) 定义函数max(a,b,c),功能为求三个整型数中的最大值。利用该函数,编程求五个数的最大数。 求e=
文档评论(0)