第一句子大全,网罗天下好句子,好文章尽在本站!

C语言中宏定义的用法

时间:2020-06-14

C语言提供的预处理功能常用的主要有;宏定义,文件包含,条件编译

友情提示:本文共有 1277 个字,阅读大概需要 3 分钟。

说到宏定义,我们应该先了解什么是预处理指令,相信大家并不会陌生,之前我们编程时,程序的开头#include指令,#define指令都是预处理指令,它能使我们的编译更加的高效,便捷,因此C语言中是允许用户自己加入一些特定的预处理指令的。

C语言提供的预处理功能常用的主要有;宏定义,文件包含,条件编译。今天,小编我就带着大家去学习宏定义,宏定义分为两种一种是”不带参数“的宏定义,另一种就是“带参数的宏定义“。

一,不带参数的宏定义

不带参数的宏定义是比较简单的,就是用一个指定的标识符来代表一个字符串。它的一般形式为;

#define 标识符 字符串

例如

#define E 2.718281828459

它的作用是在本程序文件中用指定的标识符E来代替2.718281828459这个字符串。在进行预处理时,将程序中凡是在该指令以后出现的所有的E都用2.718281828459代替。这种方法使用户能以一个简单的名字代替一个长的字符串,因此把这个标识符(名字)称为"宏名”

在预处理时将宏名替换成字符串的过程称为"宏展开“。#define就是宏定义指令。

二,带参数的宏定义

带参数的宏定义不是仅仅进行简单的字符串替换,还要进行参数替换。其定义的一般形式为;

#define 标识符(宏名)(参数表) 字符串

字符串中包含在括号中所指定的参数。

例;

#define S(a,b) a*b

area=S(3. 2)

以上意思就是矩形的面积为长乘宽,程序中使用了宏定义替代了原来的S=a*b ,方便了当出现大量面积计算时的复杂。

对带参数的宏定义是这样进行展开置换的在程序中如果有带实参的宏,如上,则按#define指令行中指定的字符串从左到右进行置换。如果字符串中包含宏中的形参(如a,b),则将程序语句中相应的实参(可以是常量、变量或表达式)代替形参。如果宏定义中的字符串中的字符不是参数字符,则保留。这样就形成了置换的字符串。

接下来小编我,分别用不带参数的宏定义,和带参数的宏定义为大家编译一个计算圆面积的程序。

首先我们先用不带参数的宏定义进行编译;程序中,只需要输入圆的半径,就可以计算出圆形的面积。

#include

#define Pi 3.1415926

int main()

{double r,s;

printf("请输入圆的半径n");

scanf("%lf",&r);

s=Pi*r*r;

printf("圆的面积为: %lf",r);

return 0;

}

以上是不带参数的宏定义的程序

#include

#define Pi 3.1419526

#define S(r) Pi*r*r

int main()

{

double r,s;

printf("请输入圆的半径n");

scanf("%lf",&r);

s=S(r);

printf("圆的面积为: %lf",r);

return 0;

}

以上就是带参数的宏定义。

很显然带参数的宏定义在计算的时候,不必做更多的计算声明,就可以直接的套用,它更加适合于那些需要大量使用该公式的程序中,相反如果程序中仅仅使用一次,该公式的话,不带参数的宏定义更加高效。

本文如果对你有帮助,请点赞收藏《C语言中宏定义的用法》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
猫咪心语四:猫咪想要说的话 其实都在不言中……

猫咪心语四:猫咪想要说的话 其实都在不言中……

照片中小猫咪扬着小脑袋,睁着两只滴溜溜的小眼睛仿佛想要告诉你:“看什么看?没见过这么帅的猫?”橘猫眼神忧郁,耳朵耷拉在两边,虽然没有说话,但它的模样已经暴露了它的内心:“我不想说,其实我不开心。”这只...

2015-04-24 #经典句子

薛之谦如今变成“渣男” 曾被他在节目中的“一句话”言中

薛之谦如今变成“渣男” 曾被他在节目中的“一句话”言中

最近的娱乐圈爆料层出不穷,各种绯闻事件爆出,其中最受关注的是薛之谦的人设崩塌事件了。先是薛之谦“扔话筒”事件,接着就是与前妻高磊鑫复合,薛之谦连续上了热搜。从最近的消息和讨论热度来看,这场娱乐圈大戏看...

2018-09-08 #经典句子

一言中的|读懂54句名师名言②:星空似海 教育作舟

一言中的|读懂54句名师名言②:星空似海 教育作舟

教育其实就像一叶飞舟,搭载着人,遨游在星海,追寻未来之光。对每个人来说,获得的教育越有质量,人生的图景才会越广阔。从中国教育报微信公众号转载的这些名师名言中,我们可以找到答案。11我们应该有一个很大很大...

2017-10-07 #经典句子

一言中的|读懂54句名师名言①:生活如水 教育如生活

一言中的|读懂54句名师名言①:生活如水 教育如生活

人们常说,生活如水。事实上,教育也如水一样,无常形无常势。凡事因势利导,便可找到适合的教育方式。从这个角度来说,好的教育也是质朴的,甚至是平淡的。从中国教育报微信公众号转载的这些名师名言来看,我们或可...

2013-12-01 #经典句子

恋与制作人:李泽言中毒了?需要和悠然玩成语接龙才能治好?

恋与制作人:李泽言中毒了?需要和悠然玩成语接龙才能治好?

各位亲爱的宝宝们,大家晚上好,小编【漫画与笑话每一天】今天给大家带来的是悠然小姐姐与四位男神之间的故事。恋与制作人:李泽言中毒了?需要和悠然玩成语接龙才能治好?“老李,你陪我玩一会成语接龙好不好呀?”...

2009-12-18 #经典句子

郭沫若要拆北京古城墙 林徽因被气生病说一句狠话 多年后被言中

郭沫若要拆北京古城墙 林徽因被气生病说一句狠话 多年后被言中

郭沫若要拆北京古城墙,林徽因被气生病说一句狠话,多年后被言中我国的首都有很长的历史,历史可以追溯到元代,在元代是开始建造,到建成就到明朝了,古城墙一直被延续到了明朝时期,整整经历了七个世纪之久,有历史...

2022-12-28 #经典句子

王安石《梅花》:四句二十字 尽在不言中

王安石《梅花》:四句二十字 尽在不言中

梅兰竹菊,因其各自具有的高尚品质:梅,剪雪裁冰,傲骨铮铮;兰,空谷幽香,孤芳自赏;竹,立场坚定,虚怀若谷;菊,凌霜自妍,特立独行;被人称为“花中四君子”,向来是中国文人们喜爱的抒情对象。从屈原《离骚》...

2023-08-21 #经典句子

老子谈执著:聪明人会牢记道德经5000言中1句8个字 生活顺福报多

老子谈执著:聪明人会牢记道德经5000言中1句8个字 生活顺福报多

人生在世,为人处世是个大学问。老子《道德经》是圆融道家学说的代表,今天分四层探讨老子一句话,学习圆融处世方法技巧。老子曰:绝学无忧。唯之与阿,相去几何?善之与恶,相去若何?人之所畏,不可不畏。一、学问...

2011-08-02 #经典句子

成功续签广东宏远!赵睿用英文和爱心表达心情 一切尽在不言中

成功续签广东宏远!赵睿用英文和爱心表达心情 一切尽在不言中

北京时间9月8日讯:已经有近两周时间没有更新过个人账号的赵睿,今天更新了自己的动态。不过,这次,他并没有像上次发表对科比的生日感言那般动情洋洋洒洒写下很多字,而是变得惜字如金起来,只是用了一个英文单词“T...

2018-02-18 #经典句子