C语言

来源:互联网 发布:阿里云公网ip访问不了 编辑:程序博客网 时间:2024/06/01 21:33
1.了解宏和函数的区别。
1 代码长度
宏:每次使用的时候宏的代码都会插入函数中,除非非常小的宏,不然大量重复调用必然将程序的长度增大。
函数:代码只会出现在一个地方,不会出现调用增长代码的副作用。
2 执行速度
宏:同样的代码执行速度比函数调用块
函数:会存在函数调用和返回的额外时间。(当函数执行时间远远大于调用和返回的时间时,可以将其速度等同与宏)
3 操作符优先级
宏:宏的参数求值是直接替换,附近的操作符优先级可能会引起不可预料的结果,所以在写宏的时候,不要吝啬括号,能加就加。
函数:不会因为操作符的问题引起意外的结果。
4 参数求值
宏:参数每次用于宏定义的时候都将重新求值。有副作用。
函数:参数在函数被调前只求值一次。无副作用。
5 参数类型 
宏: 与参数的类型无关,只要求参数是合法的。可以使用任何参数类型。
函数:函数的参数与类型有关,如果参数类型不同,就需要使用不同的函数,即使函数的功能完全相同。
6 调试
宏: 不可调试。
函数:可以调试。

2.写一个宏可以将一个数字的奇数位和偶数位交换。 

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#define change(x)(((x)&(0x55555555))<<1)|(((x)&(0xAAAAAAAA))>>1)
int main()
{
 int x;
 printf("输入一个数:");
 scanf("%d", &x);
 printf("%d\n", change(x));
 system("pause");
 return 0;
}

3.使用宏实现两个数中求较大值。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#define max(a,b) a>b?a:b
int main()
{
 int a = 0;
 int b = 0;
 printf("请输入两个数:");
 scanf("%d %d", &a, &b);
 printf("%d\n", max(a, b));
 system("pause");
 return 0;
}

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃了黑心的苹果怎么办 新生儿两天没拉大便怎么办 贝亲奶瓶不漏怎么办 满月婴儿吃多了怎么办 婴儿吃撑了哭闹怎么办 新生儿吃撑了怎么办啊 新生儿吃了奶粉不吃奶怎么办 新生儿不吃奶也不吃奶粉怎么办 奶瓶吸奶费力不顺畅怎么办 宝宝吃奶粉太勤怎么办 香蕉和地瓜一起吃了怎么办 贝亲奶瓶泡沫多怎么办 四个多月的宝宝拉肚子怎么办 宝宝四个月了拉肚子怎么办 四个月宝宝火大怎么办 刚出生的宝宝便秘怎么办 小宝宝破腹产吸了几口羊水怎么办 换奶粉不拉屎了怎么办 婴儿吃奶粉不拉屎怎么办 1岁半突然不喝奶怎么办 6个月宝宝不吃奶粉怎么办 7个月宝宝不吃奶粉怎么办 5个月宝宝不吃奶粉怎么办 一岁两个月宝宝不长肉怎么办 7个月宝宝肚子疼怎么办 奶喝一半凉了怎么办 5个月孩子厌奶怎么办 怀孕后特别不爱吃水果怎么办 宝宝吃了无比滴怎么办 婴儿上火怎么办吃什么可以去火 肚子胀怎么办最快的方法 40天婴儿拉水怎么办 8个月宝宝坐不稳怎么办 宝宝段奶不吃奶粉怎么办 3个月宝宝头睡偏了怎么办 2个月婴儿抱着睡怎么办 两个半月的宝宝睡眠少怎么办 七个月宝宝不愿意坐怎么办 一个多月的宝宝老是哭闹怎么办 宝宝头老往后仰怎么办 8个月宝宝不会爬怎么办