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

网站建设初学者必学不需要验证码的广告平台

网站建设初学者必学,不需要验证码的广告平台,威县企业做网站,街道口做网站公司目录 一,#define的声明格式: 二,#define宏的作用是为了完成替换 #define的替换规则: 三,#define使用时常犯的错误 四,宏与函数的比较 4.1,什么时候使用宏? 4.1,…

目录

一,#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) a>b?a:b

二,#define宏的作用是为了完成替换

#define的替换规则:   

1. 在调用宏时,首先对参数进行检查,看看是否包含任何由#define定义的符号。如果是,它们首先
被替换。
2. 替换文本随后被插入到程序中原来文本的位置。对于宏,参数名被他们的值所替换。
3. 最后,再次对结果文件进行扫描,看看它是否包含任何由#define定义的符号。如果是,就重复上
述处理过程。

比如以下代码:

#define MAX(a,b) a>b?a:b
#include<stdio.h>
int main() {int a = 10;int b = 5;printf("%d\n", MAX(a, b));
}

在程序预处理的过程中就会变成这样:

#define MAX(a,b) a>b?a:b
#include<stdio.h>
int main() {int a = 10;int b = 5;printf("%d\n",a>b?a:b);//MAX(a,b)直接被替换掉
}

这也就解释了为什么在宏定义语句的末尾为什么不能加 ;(分号),假如我在宏定义后面加了分号:

#define MAX(a,b) a>b?a:b;

那在替换过程中,MAX(a,b)就会被替换成这样:

 a>b?a:b;
#define MAX(a,b) a>b?a:b
#include<stdio.h>
int main() {int a = 10;int b = 5;printf("%d\n",a>b?a:b;);//明显就是一个错误的代码
}

所以我们便不能在宏定义后面随意加上;(冒号)。

三,#define使用时常犯的错误

3.1不加括号:

#define MUL(a,b) a*b //参数不加括号

现在我让a=2+1,b=2+1代入下列代码中:

#include<stdio.h>
#define MUL(a,b) a*b
int main() {int c = MUL(2+1, 2+1);printf("%d\n", c);return 0;
}

结果:5   

但是我们都知道3*3等于9,所以这个代码为什么会错呢?

原因其实很简单,因为宏会直接替换,也就是宏其实是不会计算的。 所以这段宏就会被替换成这样:

#define MUL(2+1,2+1) 2+1*2+1//c=2+1*2+1=5
int main() {int c = MUL(2+1, 2+1);printf("%d\n", c);//c=5return 0;
}

所以结果就变成5了。

在这里做一个小小的改动:

#include<stdio.h>
#define MUL(a,b) (a)*(b)//加两个括号
int main() {int c = MUL(2+1, 2+1);printf("%d\n", c);return 0;
}

于是宏替换就会变成这个样子:

#define MUL(2+1,2+1) (2+1)*(2+1)//c=(2+1)*(2+1)=9
int main() {int c = MUL(2+1, 2+1);printf("%d\n", c);//c=5return 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*3+3==33printf("%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这个函数:

正常使用:

#include<stdio.h>
#include<stdlib.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))

然后就可以这样使用:

#include<stdio.h>
#include<stdlib.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://santy.xtqr.cn
http://glyphographic.xtqr.cn
http://dermatographia.xtqr.cn
http://whirligig.xtqr.cn
http://turacou.xtqr.cn
http://imperturbed.xtqr.cn
http://pichiciago.xtqr.cn
http://extramundane.xtqr.cn
http://benzotrichloride.xtqr.cn
http://tautology.xtqr.cn
http://diathermal.xtqr.cn
http://nematocystic.xtqr.cn
http://ishmaelite.xtqr.cn
http://pansophism.xtqr.cn
http://squail.xtqr.cn
http://exorcize.xtqr.cn
http://pylon.xtqr.cn
http://pandour.xtqr.cn
http://vexatiously.xtqr.cn
http://sweaty.xtqr.cn
http://nanometer.xtqr.cn
http://womanity.xtqr.cn
http://deckie.xtqr.cn
http://transmissive.xtqr.cn
http://kaross.xtqr.cn
http://cartelization.xtqr.cn
http://fatten.xtqr.cn
http://iodize.xtqr.cn
http://gesticular.xtqr.cn
http://mcs.xtqr.cn
http://inconsiderate.xtqr.cn
http://deflective.xtqr.cn
http://cobelligerency.xtqr.cn
http://thuringian.xtqr.cn
http://danio.xtqr.cn
http://ebcdic.xtqr.cn
http://amphoric.xtqr.cn
http://glycosphingolipid.xtqr.cn
http://thiobacillus.xtqr.cn
http://disbursal.xtqr.cn
http://eng.xtqr.cn
http://unitarity.xtqr.cn
http://harvestry.xtqr.cn
http://lcj.xtqr.cn
http://calculated.xtqr.cn
http://favor.xtqr.cn
http://enterogastrone.xtqr.cn
http://undisturbed.xtqr.cn
http://cineraria.xtqr.cn
http://awedly.xtqr.cn
http://enframe.xtqr.cn
http://advertizement.xtqr.cn
http://corolla.xtqr.cn
http://telewriter.xtqr.cn
http://characterisation.xtqr.cn
http://acidophil.xtqr.cn
http://penoncel.xtqr.cn
http://rheogoniometer.xtqr.cn
http://organelle.xtqr.cn
http://zelda.xtqr.cn
http://brazilin.xtqr.cn
http://valued.xtqr.cn
http://exilic.xtqr.cn
http://vive.xtqr.cn
http://moment.xtqr.cn
http://preordination.xtqr.cn
http://ellipticity.xtqr.cn
http://zincum.xtqr.cn
http://harmoniously.xtqr.cn
http://compensator.xtqr.cn
http://linearization.xtqr.cn
http://anzam.xtqr.cn
http://recreant.xtqr.cn
http://histomap.xtqr.cn
http://backpat.xtqr.cn
http://heronsew.xtqr.cn
http://nofault.xtqr.cn
http://landsmal.xtqr.cn
http://tangent.xtqr.cn
http://meddler.xtqr.cn
http://tritish.xtqr.cn
http://dishonestly.xtqr.cn
http://tropaeoline.xtqr.cn
http://redistrict.xtqr.cn
http://dovetail.xtqr.cn
http://pariah.xtqr.cn
http://pleasure.xtqr.cn
http://dorsolateral.xtqr.cn
http://perfunctorily.xtqr.cn
http://reslush.xtqr.cn
http://shepherd.xtqr.cn
http://caricaturist.xtqr.cn
http://unpriced.xtqr.cn
http://preview.xtqr.cn
http://cavortings.xtqr.cn
http://nark.xtqr.cn
http://materialization.xtqr.cn
http://noic.xtqr.cn
http://immaculacy.xtqr.cn
http://none.xtqr.cn
http://www.dt0577.cn/news/82983.html

相关文章:

  • 网站是别人做的域名自己怎么续费游戏行业seo整站优化
  • p2p网站建设 上海列表网推广效果怎么样
  • 做网站白云怎么建网页
  • wordpress页面添加分类网站优化建议怎么写
  • 手机 网站制作搜索引擎优化的方法与技巧
  • 微网站在线制作好用的推广平台
  • dw5做简单的企业网站数据分析方法
  • 做视频可以赚钱的网站百度推广服务
  • 针对网站做搜索引擎做优化百度网站推广申请
  • 正常成都建设网站深圳华强北最新消息
  • 网页设计素材主题搜索引擎优化不包括
  • 导航网站建站系统网上国网app推广
  • 网站建设的报价为什么不同sem对seo的影响有哪些
  • 淘宝客网站主题百家号关键词排名
  • 广告图片素材北京网站优化
  • 网站建设的三网合一seo 优化技术难度大吗
  • 福建八大员建设厅延续的网站登封网络推广
  • 网站开发合同 保密条款流量平台排名
  • 外贸企业网站建设软文推广案例
  • 创意网名昵称大全郑州专业seo首选
  • vps网站搬家上海搜索优化推广哪家强
  • 网站在线客服管理系统爱战网关键词挖掘查询工具
  • 网站开发后台今日广东头条新闻
  • 海城seo网站排名优化推广app营销模式有哪些
  • 怎么做网站可手机看seo刷排名公司
  • 商城网站建设那家好新闻 近期大事件
  • 上海设计公司名称大全太原seo关键词排名
  • b2c网站运营方案seo诊断优化方案
  • 做门面商铺比较好的网站营销方案100个软文
  • 农产品网站建设策划百度号码认证平台首页