当前位置:首页 » 睡衣种类 » define睡衣怎么样
扩展阅读
少女旗袍头发怎么扎 2025-10-20 08:51:18
275发动机的皮带怎么走 2025-10-20 08:37:17

define睡衣怎么样

发布时间: 2023-01-14 16:44:08

① 小说《哈利波特》最后的结局

第七部最后讲述经过和伏地魔的大战,生还者19年后送孩子上霍格沃兹魔法学校再重逢的场景。令人高兴的是,“魔法三人组”哈利、罗恩和赫敏无一人死去,罗恩和赫敏还结婚生下了两个孩子罗斯和雨果,罗恩甚至用魔法作弊混过了麻瓜的驾照考试。最让人意外的是哈利竟然和金妮结婚了,他们的三个孩子为了纪念哈利的父母和在上集逝去的邓不利多校长,而分别取名为詹姆斯、莉莉和阿尔布思(邓不利多的教名)。

而之前罗林预告的两名壮烈牺牲的主角竟是斯内普教授和猫头鹰海德薇。另外,哈利小儿子的全名叫做阿尔布思·西弗勒斯·波特,除了纪念邓不利多,其中的“西弗勒斯”更是斯内普教授的教名。看来一向角色阴暗的斯内普其实是真正的好人。

在曝光的内容中,全书最后一句话是“The scar has not pained Harry for nineteen years. All was well.(那道伤疤19年来再也没让哈里疼过。一切都很好。)”显然这是作者为书中人物定下的最终命运。

哈利也是魂器。不过,伏地魔用哈利的血复活了自己,却不知哈利的血中有当年他妈妈为保护他留下的血咒,所以伏地魔不死,血咒不会消失,哈利也不会死。而第六集中邓不利多被斯内普杀死的情节,原是他跟斯内普作的“卧底计划”,其实斯内普深爱哈利的母亲,最终他被伏地魔的大蛇咬死。在决战中,伏地魔的大蛇死于纳威的剑下,扭转了战局。

和网上前些天泄漏的一样。

最后一章的翻译:
今年的秋天好像突然间就降临了。九月第一天的早晨像苹果般干脆、金黄,汽车道的尾气与行人的呼吸在清凉的空气中像蜘蛛丝似地闪耀着,小一家几口走过隆隆声的街道向着那个大大的黑熏熏的车站走去。由两个家长推着的负载的手推车顶上有两个大大的笼子,里面的猫头鹰们愤怒地叫着,一个红头发的女孩无精打采地跟着两兄弟后面,抓住她爸爸的手臂。

“不会太久了,你也很快就去了。”哈利告诉她。

“两年呢!”莉莉轻蔑地说,“我现在就想去。”

过路的人好奇地盯着那猫头鹰,因为那家人徘徊在它向着9号与10号月台之间的检票口。阿不思的声音从周围的喧嚣中传到了哈利耳中,他的儿子们又重新开始了刚开车时的那场争吵。

“我不会的!我不会去斯莱特林的!”

“詹姆,让他歇一会吧!”金妮说道。

“我只说他可能会,”詹姆说,对他的弟弟露齿一笑,“那没错啊。他可能去斯莱——”

但詹姆捕捉到他妈妈的眼神,静了下来。波特五口子走近了检票口,詹姆越过肩膀自大地微微看了他弟弟一眼,开始跑起来。片刻后,他消失了。

“你们会写信给我的,是吗?”阿不思利用他哥哥不在的一点时间,立即问他父母。

“如果你想我们这样做的话,每天,”金妮说。

“不要每天,”阿不思飞快地说,“詹姆说大多数人都是一个月收到一封家里的信。”

“我们去年一个星期写三封信给他。”金妮说道。

“你也不愿相信詹姆告诉你有关霍格沃茨的所有事,”哈利咕哝道,“你哥,他像个笑柄。”

他们肩并肩地把第二个手推车集中加速推向前。当他们到检票口时,阿不思退缩了,但他没有撞上。反而,他们一家子出现在被猩红色的霍格沃茨特快喷出的蒸汽所笼罩的九又四分之三月台。模糊不清的人群透过薄雾蜂拥着,詹姆早已消失在薄雾中。

“他们在哪?”阿不思焦虑地说,沿着月台摸索着路,凝视着那些模糊不清的形状。

“我们会找到他们的,”金妮放心地说。

但是雾太浓了,很难辨认出人们的脸孔。嗓音离开它们的主人后,声音大得很不自然。哈利觉得自己听到珀西在大声地演讲着关于飞天扫帚的规范使用,那是一个很好的理由不去跟他打招呼…

“我想那就是他们了,阿不思。”金妮突然说。

薄雾中出现了四个人,他们站在最后一截车厢旁。当哈利、金妮、阿不思和莉莉追上他们时,他们的脸才显得更明显。

“嗨!”阿不思说道,听起来像被无限释放了。

早就穿好崭新的霍格沃茨校服的Rose愉快地看着他。

“泊好车了?”罗恩问哈利,“我做到了!赫敏怎么也不相信我通过了麻瓜的驾驶测试,是吗?她还以为我要向考试官施混淆咒。”

“没,才没这会事,”赫敏说,“我对你有完全的信任。”

“实际上嘛,我的确对他施了混淆咒。”罗恩向哈利小声说道,他们一起把阿不思的行李和猫头鹰抬到火车上。“我只是忘记看倒后镜,让他看到了。我会为此用超级记忆咒的。”

在月台后面,他们找到了莉莉和Rose的弟弟Hugo,他们热情地讨论着将来到霍格沃茨后分到什么学院。

“要是你们不在格兰芬多的话,我们就会剥夺你们的继承权,”罗恩说道,“可没强迫你们。”

“罗恩!”

莉莉和Hugo笑了,但阿不思和Rose看上去很孤独。

“他不是那个意思,”赫敏和金妮说道,但罗恩已经不注意她们了。捕捉到哈利的眼神,他边点头边转到了大约150英尺以外的地方。有那么一会儿,蒸汽变薄了,看见三个人站在变幻的薄雾中。

“看那是谁。”

德拉科.马尔福与他的妻儿站在那里,黑色的外衣扣紧了他喉咙,它的头发有些秃,突出了它的下颚。有个新来的男孩长得像德拉科,就像阿不思长得像哈利一样。德拉科瞥见哈利、罗恩、赫敏和金妮正盯着他,草率地点了点头,转身又走了。

“那就是说,那是小Scorpius了。”罗恩屏住呼吸说。“保证你每次考试都考得好过他,Rosie,谢天谢地你遗传了你妈妈的脑子。”

“罗恩,看在老天的份上,”赫敏带着半高兴半严肃的语气说,“别试着让他们还没上学就成死对头。”

“你说的对,抱歉,”罗恩说,但又不由自主地加了一句,“尽管这样,也不要跟他太老友,Rosie,要是你嫁给了一个纯血统,你的韦斯莱爷爷可不会原谅你。”

“嘿!”

詹姆又重新出现了,把行李、猫头鹰、手推车卸下了,看他的样子显然刚被新闻轰炸完。

“泰迪已经回来了,”他喘不过气地说,从肩膀后指着滚滚的蒸汽,“刚刚看见他了。你猜他干什么来着?他和Victoire在接吻!”

他凝视着大人们,对他们的没反应表示失望。

“我们的泰迪!泰迪.卢平!与我们的Victoire接吻!我们的表姐!然后我就问泰迪他在干什么——”

“你打扰他们?”金妮说道,“你可真像罗恩——”

“——然后他说他是来送她的!然后他叫我走开。他在和她接吻!”詹姆又加上这么一句,他着急着好像他说得不够清楚。

“噢,要是他们结婚了,那就太可爱了!”莉莉心醉地说,“泰迪就真的变成我们家的一部分了。”

“他已经每个星期来吃四次饭了,”哈利说,“我们为什么不把他留在我们家和我们住呢?”
“耶!”詹姆狂热地说,“我不介意与阿——泰迪会要了我的房间?”

“不,”哈利坚定地说,“如果我想把我的房子给毁了的话,才让你和阿不思睡同一间房。”

他看了看曾经属于Fabian Prewett的碎老表。

“快11点了,你最好快点上车。”

“别忘了把我们的‘爱’带给纳威。”金妮拥抱詹姆时说。

“妈!我不能给‘爱’给一个教授!”

“但是你认识纳威——”

詹姆翻了翻眼睛。

“在外面,对啊。但在霍格沃茨,他还是隆巴顿教授。我不能跟他讲着讲着草药学就给个‘爱’给他吧?”

他对她妈妈的愚笨摇了摇头,瞄准阿不思提了一脚,以发泄自己的情绪。

“回头见,阿不思。要小心夜骐。”

“我还以为他们是隐形的?你说它们是隐形的!”

但詹姆只是笑了笑,容许他妈妈吻了一口,给了他父亲一个短暂的拥抱,然后纵身一跃,跳进了装的慢慢的火车。他们看见他挥挥手,飞快地跑进了走廊去找他的朋友了。

金妮吻别了阿不思。

“圣诞节见了。”

“再见,阿不思,”儿子抱着哈利,哈利说,“别忘了下星期五海格邀请了你去喝茶。不要和皮皮鬼纠缠。还没学会就不要与别人决斗。也不要让詹姆使你感到紧张。”

“要是我分到斯莱特林怎么办?”

这细语是给他父亲听的,哈利知道只有在离别的瞬间才能强迫阿不思发现当初那种恐惧之大和真诚。哈利蹲下来,好让阿不思正对着他。哈利的三个孩子里,只有阿不思遗传了莉莉的眼睛。

“阿不思.西弗勒斯,”哈利静静地说,好让除了金妮以外的任何人听不见,她也够聪明,装着跟车上的Rose挥手,“你是以霍格沃茨的两位校长来起名字的。他们其中一个就是斯莱特林的,它可能是我认识的人中最勇敢的了。”

“但你刚才说——”

“——然后斯莱特林学院会招收一个很棒的学生,不是吗?那对我们没什么关系。但是如果你真的很介意,你可以选择去格兰芬多而不去斯莱特林。分院帽会把你的选择计算在内的。”

“真的吗?”

“它对我那样做了。”哈利说道。

他从来未告诉过他任何一个孩子这件事, 他也看到了阿不思脸上露出的惊奇。但现在猩红色的火车上的门响起了警钟,看见人群向前最后一吻和最后一分钟的提醒人模糊的红色轮廓。阿不思跳进了车厢,金妮把她身后的门关上了。学生们也像吊在最近的窗户上。一大群人的脸,包括车上和外面的,都转向了哈利。

“为什么他们都在盯着他看?”阿不思向Rose询问道,他们转过头来看其他学生。

“别让它使你担心了,”罗恩说,“那是我!我是多么的出名!”

阿不思, Rose,Hugo,和莉莉笑了。火车开始启动了,哈利正在它旁边走着,看着他儿子瘦瘦的脸早已闪耀着兴奋。

哈利继续笑着挥着手,尽管这有点像是丧失了亲人。看着他的儿子从他身边离开…

最后一缕蒸汽的痕迹消失了,火车也转弯了。

“他会没事的!”金妮咕哝道。

哈利看着她,茫然地低下头,按住额头上闪电形的伤疤。
“我知道他会。”
19年来,哈利的伤疤再也没疼过。一切都显得平常。

② 求哈7简介

一开始,斯内普和YAXLEY出现,伏地魔 出场杀掉了霍格沃茨的MUGGLE STUDY老师CHARITY BURBAGE。
哈利在家从预言家日报中丽塔斯基特笔下了解到了邓布利多的童年以及其弟阿布福斯和他的朋友兼敌人格林沃德的故事
哈利 被凤凰社人接走,凤凰社采纳了蒙顿格斯弗莱彻的建议,用复方汤剂变出了六个假哈利,不料计划泄露,
在空中哈里与伏地魔 第一次交手,乔治被斯内普切掉一只耳朵, 疯眼汉穆迪被伏地魔杀掉。哈利的猫头鹰海德薇也死了。
哈利 与罗恩赫敏会合,参加完比尔和芙蓉的婚礼(维克多克鲁姆也来了)后,开始走上摧毁魂器的道路。
魔法部长来访,送给三人组邓布利多的遗物。哈利得到了格里芬多的宝剑。
在老宅哈利改变对克里切的态度,得到了RAB的真实身份就是小天狼星的哥哥雷古勒斯布莱克的消息,而真的魂器斯莱特林
的挂坠盒被送进魔法部。
此时的魔法部在鲁弗斯斯克林杰被杀后,由伏地魔接管,霍格沃茨也被其控制。三人组通过复方汤剂混入魔法部,抢走了魂器。
之后罗恩与哈利 闹翻,魔杖折断无法使用,敌人出现,而在关键时刻,一个人发出了守护神咒,出现了一只DOE救了他。而小天狼星给的双面镜派上了用场,哈利从中看见了一只眼睛。
镜中人救了他们
三人组重归于好后,拜访了卢娜的老爹XENOPHILIUS LOVEGOOD,了解了一个千年以来被人当作童话的真实东西,三件死亡的圣物(DEATHLY HALLOWS)。
1,THE ELDER WAND,最强大的魔杖。
2,THE RESSURECTION STONE,能够起死回生的石头。
3,INVISIBILITY CLOAK,能够隐身的斗篷。
三人组到了戈德里克山谷 拜访了哈利 的故居和父母的坟墓,发现INVISIBILITY CLOAK就是哈利父亲詹姆斯从远古继承下来传给他的。
之后三人遇见了其余几个失散的伙伴,从一个妖精口中得知在贝拉特里克斯 兰斯特兰杰的古灵阁银行的保险箱里有另一个魂器。
哈利 和他做了一笔交易后,用复方汤剂潜入了马尔福的庄园,一番激战后,救出了另一只妖精和魔杖制造师奥利凡德,
抢走了德拉科马尔福和贝拉特里克斯 兰斯特兰杰的魔杖。多比和小矮星彼得牺牲。
(其中多比死后,哈利在他墓碑上写下的花最让人感动:HERE LIES DOBBY,A FREE ELF)
哈利从奥利凡德嘴中知道了THE ELDER WAND的秘密,三人组潜入重兵封锁下的霍格沃茨,纳威,麦格 阿布福斯 邓布利多相继出现,
GREY LADY和BLOODY BARON揭开了拉文克劳的遗物,即又一个魂器的秘密。三人组摧毁了RAVENCLAW DIADEM和HUFFLEPUFF CUP。
加上之前的里德尔的日记本和 斯莱特林的挂坠盒,伏地魔只剩下两个魂器。
伏地魔 率大军压境,哈利三人组与 马尔福三人组狭路相逢,战斗后克拉布死去,霍格沃茨发生爆炸,弗雷德牺牲。
决战开始前,伏地魔得知了THE ELDER WAND的秘密:
这支魔杖必须由新任主人杀死或击败前任主人才能发挥其强大威力,这支魔杖从GRINDELWALD到DUMBLDORE到斯内普几经辗转,伏地魔让NAGINI杀死斯内普来取得
THE ELDER WAND最大力量,斯内普临死前交给哈利他的记忆,并说出:LOOK AT ME的遗言,在哈利那一双绿眼睛的注视下平静地死去。
从冥想盆中哈利得知了斯内普与莉莉的往事,和邓布利多 与 斯内普 的计划,原来斯内普的一生都在为莉莉付出。
而一切的一切,最终目的是让哈利死在 伏地魔杖下。
哈利 回到城堡外,大战激烈,卢平,唐克斯,柯林克里维相继死去。哈利在一旁用藏在邓布利多交给他的遗物中发现的THE RESSURECTION STONE
召回了詹姆斯, 莉莉,小天狼星,卢平的灵魂(即不是本人肉体,也不是鬼魂)。
哈利 慷慨赴死,他的灵魂与邓布利多相见,邓布利多 也不算是DEFINETELY DIED,与伏地魔用杀戮的方法制造魂器不同,邓布利多依靠的是DEATHLY HALLOWS。
畅谈过后,哈利体内的伏地魔一部分灵魂彻底消失,而在纳威杀死纳吉尼之后,伏地魔只剩下了自己体内的灵魂。(HE IS MORTAL ONCE MORE!)
失去哈利的人慌作一团。伏地魔一挑三,大战金斯利沙克布特,麦格,斯拉格霍恩。
贝拉特里克斯 兰斯特兰杰一挑三,大战韦斯莱夫人,金妮,卢娜,在贝拉言语挑逗下,韦斯莱夫人 杀死了贝拉特里克斯 兰斯特兰杰。
盛怒之下的伏地魔向韦斯莱夫人发出AVADA KEDAVRA,复活后的哈利用PROTEGO 挡住了杀招。
决战打响,哈利 告诉了斯内普是好人,而去年的谋杀是他与校长计划好的计策。所以斯内普没有继承THE ELDER WAND的魔力,
而伏地魔虽然杀死了斯内普,也无法得到那根魔杖的魔力。真正的THE ELDER WAND的力量在哈利 从德拉科 马尔福手中抢来的魔杖获得。
伏地魔 被自己发出的AVADA KEDAVRA 击中死去,天下太平。
十九年后,在9又3/4站台,哈利 与 金妮 的孩子詹姆斯波特,莉莉波特,阿尔不思西弗勒斯波特 和罗恩与赫敏的孩子雨果,罗斯见面,
德拉科 马尔福 也带着他的孩子SCORPIUS(小天蝎座马尔福?) 到来。
全书完。

③ c语言中define的用法

C语言是计算机软件领域非常经典的编程语言,unix、linux等众多操作系统均是由C语言编写而成。而在硬件控制、底层驱动等应用领域,C语言更是具有不可替代的作用。下面我就跟你们详细介绍下c语言中define的用法,希望对你们有用。

c语言中define的用法如下:

#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。

1. #define命令剖析

1.1 #define的概念

#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。

该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。

(1) 简单的宏定义:

#define <宏名><字符串>

例: #define PI 3.1415926

(2) 带参数的宏定义

#define <宏名> (<参数表>) <宏体>

例: #define A(x) x

一个标识符被宏定义后,该标识符便是一个宏名。这时,在程序中出现的是宏名,在该程序被编译前,先将宏名用被定义的字符串替换,这称为宏替换,替换后才进行编译,宏替换是简单的替换。

1.2 宏替换发生的时机

为了能够真正理解#define的作用,让我们来了解一下对C语言源程序的处理过程。当我们在一个集成的开发环境如Turbo C中将编写好的源程序进行编译时,实际经过了预处理、编译、汇编和连接几个过程,见图1。

源程序预处理器修改后的源程序编译器汇编程序汇编器可重定位的目标程序连接器可执行的目标程序图1C语言的编译过程

其中预处理器产生编译器的输出,它实现以下的功能:

(1) 文件包含

可以把源程序中的#include 扩展为文件正文,即把包含的.h文件找到并展开到#include 所在处。

(2) 条件编译

预处理器根据#if和#ifdef等编译命令及其后的条件,将源程序中的某部分包含进来或排除在外,通常把排除在外的语句转换成空行。

(3) 宏展开

预处理器将源程序文件中出现的对宏的引用展开成相应的宏 定义,即本文所说的#define的功能,由预处理器来完成。

经过预处理器处理的源程序与之前的源程序有所有不同,在这个阶段所进行的工作只是纯粹的替换与展开,没有任何计算功能,所以在学习#define命令时只要能真正理解这一点,这样才不会对此命令引起误解并误用。

2#define使用中的常见问题解析

2.1 简单宏定义使用中出现的问题

在简单宏定义的使用中,当替换文本所表示的字符串为一个表达式时,容易引起误解和误用。如下例:

例1 #define N 2+2

void main()

{

int a=N*N;

printf(“%d”,a);

}

(1) 出现问题:在此程序中存在着宏定义命令,宏N代表的字符串是2+2,在程序中有对宏N的使用,一般同学在读该程序时,容易产生的问题是先求解N为2+2=4,然后在程序中计算a时使用乘法,即N*N=4*4=16,其实该题的结果为8,为什么结果有这么大的偏差?

(2)问题解析:如1节所述,宏展开是在预处理阶段完成的,这个阶段把替换文本只是看作一个字符串,并不会有任何的计算发生,在展开时是在宏N出现的地方 只是简单地使用串2+2来代替N,并不会增添任何的符号,所以对该程序展开后的结果是a=2+2*2+2,计算后=8,这就是宏替换的实质,如何写程序才 能完成结果为16的运算呢?

(3)解决办法:将宏定义写成如下形式

#define N (2+2)

这样就可替换成(2+2)*(2+2)=16

2.2 带参数的宏定义出现的问题

在带参数的宏定义的使用中,极易引起误解。例如我们需要做个宏替换能求任何数的平方,这就需要使用参数,以便在程序中用实际参数来替换宏定义中的参数。一般学生容易写成如下形式:

#define area(x) x*x

这在使用中是很容易出现问题的,看如下的程序

void main()

{

int y=area(2+2);

printf(“%d”,y);

}

按理说给的参数是2+2,所得的结果应该为4*4=16,但是错了,因为该程序的实际结果为8,仍然是没能遵循纯粹的简单替换的规则,又是先计算再替换 了,在这道程序里,2+2即为area宏中的参数,应该由它来替换宏定义中的x,即替换成2+2*2+2=8了。那如果遵循(1)中的解决办法,把2+2 括起来,即把宏体中的x括起来,是否可以呢?#define area(x) (x)*(x),对于area(2+2),替换为(2+2)*(2+2)=16,可以解决,但是对于area(2+2)/area(2+2)又会怎么样 呢,有的学生一看到这道题马上给出结果,因为分子分母一样,又错了,还是忘了遵循先替换再计算的规则了,这道题替换后会变为 (2+2)*(2+2)/(2+2)*(2+2)即4*4/4*4按照乘除运算规则,结果为16/4*4=4*4=16,那应该怎么呢?解决方法是在整个 宏体上再加一个括号,即#define area(x) ((x)*(x)),不要觉得这没必要,没有它,是不行的。

要想能够真正使用好宏定义,那么在读别人的程序时,一定要记住先将程序中对宏的使用全部替换成它所代表的字符串,不要自作主张地添加任何其他符号,完全展 开后再进行相应的计算,就不会写错运行结果。如果是自己编程使用宏替换,则在使用简单宏定义时,当字符串中不只一个符号时,加上括号表现出优先级,如果是 带参数的宏定义,则要给宏体中的每个参数加上括号,并在整个宏体上再加一个括号。看到这里,不禁要问,用宏定义这么麻烦,这么容易出错,可不可以摒弃它, 那让我们来看一下在C语言中用宏定义的好处吧。

3 宏定义的优点

(1) 方便程序的修改

使用简单宏定义可用宏代替一个在程序中经常使用的常量,这样在将该常量改变时,不用对整个程序进行修改,只修改宏定义的字符串即可,而且当常量比较长时, 我们可以用较短的有意义的标识符来写程序,这样更方便一些。我们所说的常量改变不是在程序运行期间改变,而是在编程期间的修改,举一个大家比较熟悉的例 子,圆周率π是在数学上常用的一个值,有时我们会用3.14来表示,有时也会用3.1415926等,这要看计算所需要的精度,如果我们编制的一个程序中 要多次使用它,那么需要确定一个数值,在本次运行中不改变,但也许后来发现程序所表现的精度有变化,需要改变它的值, 这就需要修改程序中所有的相关数值,这会给我们带来一定的不便,但如果使用宏定义,使用一个标识符来代替,则在修改时只修改宏定义即可,还可以减少输入 3.1415926这样长的数值多次的情况,我们可以如此定义 #define pi 3.1415926,既减少了输入又便于修改,何乐而不为呢?

(2) 提高程序的运行效率

使用带参数的宏定义可完成函数调用的功能,又能减少系统开 销,提高运行效率。正如C语言中所讲,函数的使用可以使程序更加模块化,便于组织,而且可重复利用,但在发生函数调用时,需要保留调用函数的现场,以便子 函数执行结束后能返回继续执行,同样在子函数执行完后要恢复调用函数的现场,这都需要一定的时间,如果子函数执行的操作比较多,这种转换时间开销可以忽 略,但如果子函数完成的功能比较少,甚至于只完成一点操作,如一个乘法语句的操作,则这部分转换开销就相对较大了,但使用带参数的宏定义就不会出现这个问 题,因为它是在预处理阶段即进行了宏展开,在执行时不需要转换,即在当地执行。宏定义可完成简单的操作,但复杂的操作还是要由函数调用来完成,而且宏定义 所占用的目标代码空间相对较大。所以在使用时要依据具体情况来决定是否使用宏定义。

形式参数不能用带引号的字符串替换。

但是,如果在替换文本中,参数名以#作为前缀则结果将被扩展为 由 实际参数 替换 此实际参数的带引号的字符串。

例如,可以将它与字符串连接运算结合起来编写一个调试打印宏:

#define dprint(expr) printf(#expr “ = %\n”,expr)

使用语句 dprint(x/y);

调用宏时,该宏将被扩展为:printf(“x/y”“ = %\n”,x/y);

其中的字符串被连接起来了,这样便等价于printf(“x/y = %\n”,x/y);

在实际参数中,每个双引号 “ 将被替换为 \” ;反斜杠\将被替换为\\,因此替换后的字符串是合法的字符串常量。

预处理运算符 ## 为宏扩展提供了一种连接实际参数的手段。如果替换文本中的参数与 ## 相邻,则该参数将被实际参数替换,##与前后的空白符将被删除,并对替换后的结果重新扫描。

例如,下面定义的宏paste用于连接两个参数

#define paste(front, back) front ## back

因此,宏调用past(name,1)的结果将建立记号name1.

c语言中没有swap这个函数,C语言不支持重载,也没有模版的概念,所以对于每一种类型,都要写出相应的swap,如

intSwap (int *, int *);

longSwap (long *, long *);

stringSwap (char *, char *);

宏定义swap(t,x,y)以交换t类型的两个参数(要使用程序块结构)。

程序如下:

#include <iostream.h>

#define SWAP(t,x,y) \

{\

t temp = *y;\

*y = *x;\

*x = temp;\

}

main()

{

int a = 10, b = 5;

SWAP(int,&a,&b)

cout << a << endl << b<<endl;

}

用\换行,\的意思是说把下一行看作和这行是同一行.换行必须要反斜杠,而且\后面直接回车,不能有空格。