当前位置: 首页 > news >正文

网站开发信息文档软件开发工具平台

网站开发信息文档,软件开发工具平台,公众号制作用什么软件,用php做网站后台目录 一#xff0c;#define的声明格式#xff1a; 二#xff0c;#define宏的作用是为了完成替换 #define的替换规则#xff1a; 三#xff0c;#define使用时常犯的错误 四#xff0c;宏与函数的比较 4.1#xff0c;什么时候使用宏#xff1f; 4.1#xff0c;… 目录 一#define的声明格式 二#define宏的作用是为了完成替换 #define的替换规则    三#define使用时常犯的错误 四宏与函数的比较 4.1什么时候使用宏 4.1使用宏的好处与坏处 4.3宏的奇怪用法 一#define的声明格式 #define name( parament-list ) stuff 关于#define格式需要注意的几个点 1.在stuff后面不能有冒号 2.name要和左圆括号紧贴在一起 使用#define定义一个 求两者间较大值的宏 #define MAX(a,b) ab?a:b 二#define宏的作用是为了完成替换 #define的替换规则    1. 在调用宏时首先对参数进行检查看看是否包含任何由#define定义的符号。如果是它们首先 被替换。 2. 替换文本随后被插入到程序中原来文本的位置。对于宏参数名被他们的值所替换。 3. 最后再次对结果文件进行扫描看看它是否包含任何由#define定义的符号。如果是就重复上 述处理过程。 比如以下代码 #define MAX(a,b) ab?a:b #includestdio.h int main() {int a 10;int b 5;printf(%d\n, MAX(a, b)); } 在程序预处理的过程中就会变成这样 #define MAX(a,b) ab?a:b #includestdio.h int main() {int a 10;int b 5;printf(%d\n,ab?a:b);//MAX(a,b)直接被替换掉 } 这也就解释了为什么在宏定义语句的末尾为什么不能加 分号假如我在宏定义后面加了分号 #define MAX(a,b) ab?a:b 那在替换过程中MAX(a,b)就会被替换成这样 ab?a:b #define MAX(a,b) ab?a:b #includestdio.h int main() {int a 10;int b 5;printf(%d\n,ab?a:b;);//明显就是一个错误的代码 } 所以我们便不能在宏定义后面随意加上;(冒号)。 三#define使用时常犯的错误 3.1不加括号 #define MUL(a,b) a*b //参数不加括号 现在我让a21,b21代入下列代码中 #includestdio.h #define MUL(a,b) a*b int main() {int c MUL(21, 21);printf(%d\n, c);return 0; } 结果5    但是我们都知道3*3等于9所以这个代码为什么会错呢 原因其实很简单因为宏会直接替换也就是宏其实是不会计算的。 所以这段宏就会被替换成这样 #define MUL(21,21) 21*21//c21*215 int main() {int c MUL(21, 21);printf(%d\n, c);//c5return 0; } 所以结果就变成5了。 在这里做一个小小的改动 #includestdio.h #define MUL(a,b) (a)*(b)//加两个括号 int main() {int c MUL(21, 21);printf(%d\n, c);return 0; } 于是宏替换就会变成这个样子 #define MUL(21,21) (21)*(21)//c(21)*(21)9 int main() {int c MUL(21, 21);printf(%d\n, c);//c5return 0; } 输出9 但是仅仅做到这样有时候是不保险的 比如: : #define MUL(a,b) (a)(b) #define MUL(a,b) (a)(b) int main() {int c 10*MUL(3, 3);//计算的值应该是60printf(%d\n, c);return 0; }但是 输出33 因为在这里宏替换以后宏会变成这样 #define MUL(a,b) (3)(3) int main() {int c 10*(3)(3);//相当于10*3333printf(%d\n, c);return 0; }在这里就有一个解决方案 #define MUL(a,b) ((a)(b))//再加一个大括号 int main() {int c 10*MUL(3, 3);//计算的值应该是60printf(%d\n, c);return 0; }这样就可以得到我们想要的60了。 四宏与函数的比较 4.1什么时候使用宏 在这里我们有一个基本的常识    1.实现简单的功能时使用宏。 比如求两个数的较大值 #define MAX(a,b) ((a)(b)?(a):(b)) 2.实现复杂功能时用函数。 4.1使用宏的好处与坏处 好处 1.宏在小型程序中执行的时候更加有效率 2.宏是没有类型的所以调用的时候更加方便 坏处 1.无法调试 2. 每次使用宏的时候一份宏定义的代码将插入到程序中。除非宏比较短否则可能大幅度增加程序 的长度。   4.3宏的奇怪用法 比如使用 malloc这个函数 正常使用 #includestdio.h #includestdlib.h int main() {int* arr (int*)malloc(20);if (*arr NULL) {perror(malloc:);return; }//使用//关闭free(arr);arr NULL;return 0; } 使用宏 先定义宏 #define MALLOC(type,nums) (type)malloc(nums*sizeof(type)) 然后就可以这样使用 #includestdio.h #includestdlib.h #define MALLOC(type,nums) (type)malloc(nums*sizeof(type)) int main() {int* arr MALLOC(int*,20);if (*arr NULL) {perror(malloc:);return;}//使用//关闭free(arr);arr NULL;return 0; } 今天分享完毕。。。。
http://www.dnsts.com.cn/news/110478.html

相关文章:

  • 网站花瓣飘落的效果怎么做学习电子商务网站建设与管理的收获
  • 二手交易网站建设方案微信网站建设教程
  • wordpress建站双语小程序可以做网站吗
  • vue大型网站开发吗中山网站建设gdyouzi
  • 做欧洲电商看哪个网站吗用腾讯云做网站的好处
  • 建大型网站需要多少钱怎么做网站推广怀化
  • 给公司制作网站吗南昌网站建设制作与维护
  • 医疗机构 网站备案哈尔滨企业建网站推广
  • 有关图书网站建设策划书小公司网络搭建
  • 北京企业展示网站建设用jsp做网站登录界面模板
  • 长春市长春网站建设网青岛广新信建设咨询公司网站
  • 建设电商网站的技术可行性中国最大的装修网络平台
  • 濮阳网络科技有限公司南阳关键词优化
  • 专业积分商城网站制作建筑企业网站设计
  • 国内优秀设计网站专业的河南网站建设公司排名
  • 沈阳做网站比较好的公司wordpress 模板4列插件
  • 公众号里链接的网站怎么做的wordpress 中文插件大全
  • dedecms手机网站制作wordpress橱窗插件
  • 东营有网站wordpress仿站实战教程
  • 代做ppt网站网站开发前景咋样
  • 做流量网站吗网络研发工程师
  • 秦皇岛seo优化太原网站优化工具方法
  • 贵阳做网站公司吗免费网站服务器2020
  • 购物网站图片素材wordpress时光轴模板
  • 东鹏拼奖网站怎么做阿里巴巴集团官网
  • 58同城做网站找谁少儿美术专业网站做课件
  • 做网站为什么很复杂wordpress 标签 图片 alt
  • 个人博客网站设计的目的广告制作专业
  • 开封网站快速排名优化网站点内页还是首页
  • 桐庐做网站基于php的网站设计与实现