- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
预处理与存储类别
Lesson 8预处理与存储类别
mtysoft@163.com
函数和带参数的宏
有类型转换
无类型转换
有时间开销
执行效率高
变量占空间
参数是形式
传递数值
替换文本
运行时执行
编译时替换
int f(int x, int y)
{ return x * y; }
#define F(x,y) (x)*(y)
函数
宏
习题演练3-1
以下程序的运行结果是
#define F(x) (x)*(x)
main()
{
int i1, i2;
i1 = F(8)/F(4);
i2 = F(4+4)/F(2+2);
printf(%d,%d\n, i1, i2);
}
64,64
i1 = (x)*(x)/(x)*(x);
i1 = (8)*(8)/(4)*(4);
i2 = ( x )*( x )/( x )*( x );
i2 = (4+4)*(4+4)/(2+2)*(2+2);
习题演练3-2
以下程序的运行结果是
#define F(x) (x*x)
main()
{
int i1, i2;
i1 = F(8)/F(4);
i2 = F(4+4)/F(2+2);
printf(%d,%d\n, i1, i2);
}
4,3
i1 = (x*x)/(x*x);
i1 = (8*8)/(4*4);
i2 = ( x * x )/( x * x );
i2 = (4+4*4+4)/(2+2*2+2);
习题演练3-3
以下程序的运行结果是
#define F(x) x*x
main()
{
int i1, i2;
i1 = F(8)/F(4);
i2 = F(4+4)/F(2+2);
printf(%d,%d\n, i1, i2);
}
64,28
i1 = x*x/x*x;
i1 = 8*8/4*4;
i2 = x * x / x * x ;
i2 = 4+4*4+4/2+2*2+2;
变量存储类别
全局
局部
静态
动态
习题演练3-1
以下程序的运行结果是
void fun()
{
auto int i = 0;
i++;
printf(%d,, i);
}
main()
{
fun(); fun(); fun();
}
1,
0
i
栈
1
1,
1,
习题演练3-2
以下程序的运行结果是
void fun()
{
static int i = 0;
i++;
printf(%d,, i);
}
main()
{
fun(); fun(); fun();
}
1,
0
i
栈
1
2,
3,
堆
2
3
;
习题演练3-3
以下程序的运行结果是
int f(int s)
{
static int a;
s += a++; return s;
}
main()
{
int a = 3, s = 0;
s += f(a); s += f(a);
printf(%d,%d\n, a, s);
}
3,7
本课小结
内部函数与外部函数
无参宏(符号常量)
带参数的宏
变量存储类别
使用工程文件
文档评论(0)