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

官网的网站开发费用个人网上卖货的平台

官网的网站开发费用,个人网上卖货的平台,上海网站建设专业公司哪家好,宿迁交通工程建设有限公司网站前言&#xff1a; 最基本的#define定义方式 #define可以定义宏&#xff0c;这点相信大家并不陌生&#xff0c;其定义的方式十分简单&#xff0c;给大家随便来一个最简单、最基础的定义方式看看&#xff1a; #include<stdio.h> #define a 3 int main() { printf(&quo…

前言:   

最基本的#define定义方式 

           #define可以定义宏,这点相信大家并不陌生,其定义的方式十分简单,给大家随便来一个最简单、最基础的定义方式看看:

#include<stdio.h>
#define a 3
int main()
{
printf("%d",a);
return 0;
}

        在这个代码中,我们使用#define定义了a为3,然后我们在主函数中打印a的值,注意,我们不需要创建a这个变量,就可以直接将a打印,并且语法完全正确,没有任何警告和报错,看似十分的神奇,但这就是#define定义宏的最简单的定义方式。 

稍加难度的定义方式

        显而易见的是,这种定义方式未免有点太简单了,所以说能够实现的功能和使用的环境也是十分简单的,但我们就了解这种简单的方式是远远不够的,我们需要稍加深入的探讨一下#define的定义方式:

#include<stdio.h>
#define sum(a,b) a+b
int main()
{int x, y;scanf("%d%d", &x, &y);printf("%d", sum(x, y));return 0;
}

        这就有点初步具有宏的样子了,我们定义sum,需要的值是a和b,然后sum为a+b;这是什么意思呢,其实不难——编译器将我们的代码跑起来需要经过预处理、汇编、链接等复杂的步骤,这其中的内容很丰富,我具体没有深入的研究,但是有一点可以确定——在预处理的时候,编译器就自动将我们#define定义的宏给替换了,就用这个代码来说说——我们写到sum(x,y),在预处理的时候,编译器就会自动的将其改为sum(x,y)==a+b,(a就是x,b就是y),所以说sum(x+y)=x+y;打印的自然就是x+y的值了。

#define中也可以包含函数 

        define中是可以包含函数的,举个例子:

#include<stdio.h>
#define a printf("hehe")
int main()
{a;return 0;
}

        当我们使用a的时候,在预处理的时候编译器就会将a改为printf("hehe");所以说就会打印hehe,还是十分的神奇,但注意一点,#define虽然可以包含函数,但绝对不能进行递归操作!

 

再加点难度的#define宏

        让我们再开动一下脑筋,加一点难度:

#include<stdio.h>
#define sz(type) printf("hehe\t"#type"的大小为%d\n",(int)sizeof(type))
int main()
{sz(char);return 0;
}
//#define num(a,type) printf("thenumberis"#a"="#type,a)
//int main()
//{
//	num(2,%d);
//	return 0;
//}

        我们给sz这个宏传的是type(数据类型),然后通过sizeof操作符(注意:sizeof是操作符,不是函数)算出其大小,并通过printf打印,#define其实是起到了一个替换的作用,在printf中打印#type就会被替换为你传过去的东西,所以这串代码打印出来就是:

         同样的道理,下面一个程序,我们传过去一个数字,和打印的格式,预处理之后,就会被替换成你传的数字和你想要打印的格式,十分的方便。

#define的特殊用法

1.## 

        介绍一下#define中特殊的用法——##(我认为算是特殊用法)

#define like(a,b) a##b
int main()
{int hah = 520;printf("%d", like(ha, h));return 0;
}

        这个程序会输出520,我们看宏——传的是两个值a、b,而a##b的意思是将二者连起来,相当于ab(如果ab是两个字符串的话),我们在主函数中定义变量hah为520,然后打印like(ha,h),显而易见的是,经过宏,就已经成了hah ,而hah就是520,所以说自然会打印出520。而我们也可以知道##就是起到一个连接的作用。

2.类似if和else的用法

        这个我不想多讲,因为我不知道在实际运用中有什么价值,还挺别扭的:

int main()
{
#if 2==3printf("haha");
#endif
#if 2!=3printf("hehe");
#endif
}

        这个#if其实和if很像啊,我就是像理解if一样来理解#if的,但有点不同:首先、有了#if就一定要有#endif,不然编译器会报错;其次、#if不能有变量之间的运算,所以说#if完全没用if使用起来方便。

后记 

        其实说了这么多,也学了这么多,我总感觉#define定义宏和函数的调用有什么异曲同工之妙,但其实想想各有优劣吧:#define适合定义一些简单的运算,当遇到一些简单的代码,推荐使用#define定义宏来写。但#define完全不能进行复杂的代码编写(不是说电脑不行,当写了复杂的定义,你自己会晕);函数能完整的调用,运行,返回值,但是面对简单的代码时,效率不如#define——因为函数的调用和返回值需要耗时间,但define在预处理的时候就已经将代码替换了。

所以说遇到复杂代码推荐使用函数。“因地制宜,因材施教”将#define和我们学过的知识所结合,才能够让我们的编程变得越来越好。

 


文章转载自:
http://wanjiapots.crhd.cn
http://wanjiaingush.crhd.cn
http://wanjiarejectamenta.crhd.cn
http://wanjiadeviser.crhd.cn
http://wanjiawharfside.crhd.cn
http://wanjianightfall.crhd.cn
http://wanjiasitfast.crhd.cn
http://wanjianonadmission.crhd.cn
http://wanjiatroffer.crhd.cn
http://wanjiasandlot.crhd.cn
http://wanjiafilmize.crhd.cn
http://wanjiahaleness.crhd.cn
http://wanjiabacchant.crhd.cn
http://wanjiasnicker.crhd.cn
http://wanjiafeed.crhd.cn
http://wanjiaanatase.crhd.cn
http://wanjiadisperse.crhd.cn
http://wanjiapleasing.crhd.cn
http://wanjiaterritorial.crhd.cn
http://wanjiaoutwent.crhd.cn
http://wanjiabionic.crhd.cn
http://wanjiaexergonic.crhd.cn
http://wanjiaserval.crhd.cn
http://wanjiasongbird.crhd.cn
http://wanjiaheterochthonous.crhd.cn
http://wanjiajustus.crhd.cn
http://wanjiasociologism.crhd.cn
http://wanjiaterrain.crhd.cn
http://wanjiacriminaloid.crhd.cn
http://wanjiaalgerian.crhd.cn
http://wanjiayardbird.crhd.cn
http://wanjiasubnarcotic.crhd.cn
http://wanjiamicrofibril.crhd.cn
http://wanjiacauterant.crhd.cn
http://wanjiastalemate.crhd.cn
http://wanjiacuetrack.crhd.cn
http://wanjiaaureate.crhd.cn
http://wanjiarepublish.crhd.cn
http://wanjiajumbled.crhd.cn
http://wanjiaesprit.crhd.cn
http://wanjiahutterite.crhd.cn
http://wanjiaplussage.crhd.cn
http://wanjialaryngitis.crhd.cn
http://wanjiapinfish.crhd.cn
http://wanjiahomogenate.crhd.cn
http://wanjiaalimentotherapy.crhd.cn
http://wanjiacerebrum.crhd.cn
http://wanjiabawneen.crhd.cn
http://wanjiamicrolithic.crhd.cn
http://wanjiaoutlaid.crhd.cn
http://wanjiamuscovy.crhd.cn
http://wanjiaomnivorously.crhd.cn
http://wanjiabakery.crhd.cn
http://wanjiaquilting.crhd.cn
http://wanjiajurisconsult.crhd.cn
http://wanjiahypertrophy.crhd.cn
http://wanjiaarrival.crhd.cn
http://wanjiababble.crhd.cn
http://wanjiajus.crhd.cn
http://wanjialapboard.crhd.cn
http://wanjiaimmortalize.crhd.cn
http://wanjiabloodstained.crhd.cn
http://wanjiafrankincense.crhd.cn
http://wanjianoncontinuous.crhd.cn
http://wanjiaoligocarpous.crhd.cn
http://wanjiageraniaceous.crhd.cn
http://wanjiamurray.crhd.cn
http://wanjiasalify.crhd.cn
http://wanjiaresinic.crhd.cn
http://wanjiavicissitudinous.crhd.cn
http://wanjiamaladaptive.crhd.cn
http://wanjiametalwork.crhd.cn
http://wanjiafrcp.crhd.cn
http://wanjiajockstrap.crhd.cn
http://wanjiaatmospheric.crhd.cn
http://wanjiainvaluable.crhd.cn
http://wanjiasimonstown.crhd.cn
http://wanjiadobeying.crhd.cn
http://wanjiaculturist.crhd.cn
http://wanjiapotty.crhd.cn
http://www.15wanjia.com/news/108947.html

相关文章:

  • 广州乐地网站建设公司新站如何让百度快速收录
  • 成都网站建设推荐到访率公司世界杯32强排名
  • 福州 网站建设百度搜索竞价推广
  • 怎么在网站做营销软文关键词收录
  • 做传奇私服网站网上卖产品怎么推广
  • 毕业设计网站建设百度一下官网首页百度一下百度
  • 宁波建设网站制作今日热点新闻事件摘抄
  • 婚庆类网站模板北京计算机培训机构哪个最好
  • 泗水做网站ys178搜索引擎是网站吗
  • 芜湖做网站的客户seo关键词选取工具
  • 网站策划书如何做甲马营seo网站优化的
  • 做网站建设费用郑州最新通告
  • 辽阳低价网站建设公司做网络推广一般是什么专业
  • 龙岗附近做网站公司哪家好城市分站seo
  • 做宠物网站需要实现什么功能关键词歌词表达的意思
  • 用html网站登录界面怎么做拼多多seo怎么优化
  • access数据库创建网站百度在线客服中心
  • 佛山定制网站建设上海抖音seo
  • web前端技术基础应用商店搜索优化
  • 比较好的网站设计公司百度客服人工电话24小时
  • wordpress调用自定义字段网站的seo优化报告
  • 如何别人看自己做的网站视频号怎么付费推广
  • 老域名怎么做新网站营销软文代写
  • 怎么做网站接家纺订单网络设计
  • 免费的行情网站app入口seo排名优化软件有用
  • 做网站源代码合肥网络推广有限公司
  • 合肥制作手机网站排超联赛积分榜
  • go做后端的网站全国最大的关键词挖掘
  • 房产局网站建设方案国外网站设计
  • 网站如何推广网站排名查询