当前位置:文档之家› 宏定义用法总结

宏定义用法总结

宏定义用法总结
宏定义用法总结

C语言宏定义技巧用法总结

写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用得宏定义。。。。。。

1,防止一个头文件被重复包含

#ifndef COMDEF_H

#define COMDEF_H

//头文件内容

#endif

2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。

typedef unsigned char boolean; /* Boolean value type. */

typedef unsigned long int uint32; /* Unsigned 32 bit value */

typedef unsigned short uint16; /* Unsigned 16 bit value */

typedef unsigned char uint8; /* Unsigned 8 bit value */

typedef signed long int int32; /* Signed 32 bit value */

typedef signed short int16; /* Signed 16 bit value */

typedef signed char int8; /* Signed 8 bit value */

//下面的不建议使用

typedef unsigned char byte; /* Unsigned 8 bit value type. */ typedef unsigned short word; /* Unsinged 16 bit value type. */ typedef unsigned long dword; /* Unsigned 32 bit value type. */

typedef unsigned char uint1; /* Unsigned 8 bit value type. */ typedef unsigned short uint2; /* Unsigned 16 bit value type. */ typedef unsigned long uint4; /* Unsigned 32 bit value type. */

typedef signed char int1; /* Signed 8 bit value type. */ typedef signed short int2; /* Signed 16 bit value type. */ typedef long int int4; /* Signed 32 bit value type. */

typedef signed long sint31; /* Signed 32 bit value */ typedef signed short sint15; /* Signed 16 bit value */

typedef signed char sint7; /* Signed 8 bit value */

3,得到指定地址上的一个字节或字

#define MEM_B( x ) ( *( (byte *) (x) ) )

#define MEM_W( x ) ( *( (word *) (x) ) )

4,求最大值和最小值

#define MAX( x, y ) ( ((x) > (y)) ? (x) : (y) )

#define MIN( x, y ) ( ((x) < (y)) ? (x) : (y) )

5,得到一个field在结构体(struct)中的偏移量

#define FPOS( type, field ) \

/*lint -e545 */ ( (dword) &(( type *) 0)-> field ) /*lint +e545 */

6,得到一个结构体中field所占用的字节数

#define FSIZ( type, field ) sizeof( ((type *) 0)->field )

7,按照LSB格式把两个字节转化为一个Word

#define FLIPW( ray ) ( (((word) (ray)[0]) * 256) + (ray)[1] )

8,按照LSB格式把一个Word转化为两个字节

#define FLOPW( ray, val ) \

(ray)[0] = ((val) / 256); \

(ray)[1] = ((val) & 0xFF)

9,得到一个变量的地址(word宽度)

#define B_PTR( var ) ( (byte *) (void *) &(var) )

#define W_PTR( var ) ( (word *) (void *) &(var) )

10,得到一个字的高位和低位字节

#define WORD_LO(xxx) ((byte) ((word)(xxx) & 255))

#define WORD_HI(xxx) ((byte) ((word)(xxx) >> 8))

11,返回一个比X大的最接近的8的倍数

#define RND8( x ) ((((x) + 7) / 8 ) * 8 )

12,将一个字母转换为大写

#define UPCASE( c ) ( ((c) >= 'a' && (c) <= 'z') ? ((c) - 0x20) : (c) )

13,判断字符是不是10进值的数字

#define DECCHK( c ) ((c) >= '0' && (c) <= '9')

14,判断字符是不是16进值的数字

#define HEXCHK( c ) ( ((c) >= '0' && (c) <= '9') ||\

((c) >= 'A' && (c) <= 'F') ||\ ((c) >= 'a' && (c) <= 'f') )

15,防止溢出的一个方法

#define INC_SAT( val ) (val = ((val)+1 > (val)) ? (val)+1 : (val))

16,返回数组元素的个数

#define ARR_SIZE( a ) ( sizeof( (a) ) / sizeof( (a[0]) ) )

17,返回一个无符号数n尾的值MOD_BY_POWER_OF_TWO(X,n)=X%(2^n) #define MOD_BY_POWER_OF_TWO( val, mod_by ) \

( (dword)(val) & (dword)((mod_by)-1) )

18,对于IO空间映射在存储空间的结构,输入输出处理

#define inp(port) (*((volatile byte *) (port)))

#define inpw(port) (*((volatile word *) (port)))

#define inpdw(port) (*((volatile dword *)(port)))

#define outp(port, val) (*((volatile byte *) (port)) = ((byte) (val)))

#define outpw(port, val) (*((volatile word *) (port)) = ((word) (val)))

#define outpdw(port, val) (*((volatile dword *) (port)) = ((dword) (val))) [2005-9-9添加]

19,使用一些宏跟踪调试

A N S I标准说明了五个预定义的宏名。它们是:

_ L I N E _

_ F I L E _

_ D A T E _

_ T I M E _

_ S T D C _

如果编译不是标准的,则可能仅支持以上宏名中的几个,或根本不支持。记住编译程序也许还提供其它预定义的宏名。

_ L I N E _及_ F I L E _宏指令在有关# l i n e的部分中已讨论,这里讨论其余的宏名。

_ D AT E _宏指令含有形式为月/日/年的串,表示源文件被翻译到代码时的日期。

源代码翻译到目标代码的时间作为串包含在_ T I M E _中。串形式为时:分:秒。

如果实现是标准的,则宏_ S T D C _含有十进制常量1。如果它含有任何其它数,则实现是非标准的。

可以定义宏,例如:

当定义了_DEBUG,输出数据信息和所在文件所在行

#ifdef _DEBUG

#define DEBUGMSG(msg,date) printf(msg);printf(“%d%d%d”,date,_LINE_,_FILE_)

#else

#define DEBUGMSG(msg,date)

#endif

20,宏定义防止使用是错误

用小括号包含。

例如:#define ADD(a,b) (a+b)

用do{}while(0)语句包含多语句防止错误

例如:#difne DO(a,b) a+b;\

a++;

应用时:if(….)

DO(a,b); //产生错误

else

解决方法: #difne DO(a,b) do{a+b;\

a++;}while(0)

把字句中的动词重叠

论把字句中的动词重叠 徐艳平 (衢州学院中文系,浙江衢州324000) 摘要:把字句中的动词重叠是句子层面的问题,其动词能否重叠并不完全取决于句中的核心动词,也会受句式和其它成分的制约。整体来看,把字句动词重叠后表现出这样的特点:较强的劳作性、宾语为受事宾语、排斥给予、索取类动词、明确的目的性。 关键词:动词重叠把字句句子层面特点 一、问题的提出 陆俭明先生曾在《90年代现代汉语法研究的发展趋势》(1990)一文中列举了两组把字动词重叠句: (1)甲把马刷刷! 把衣服洗洗! 把文章改改! 把酒热热! 把房子修修! 把白薯煮煮! 把作业收收! 把报纸看看! 把裙子熨熨! 把黑板擦擦! 把面包烤烤! 把书念念! 把被子晒晒!把桌子挪挪!把车锁换换!(2)乙*把马骑骑! *把衣服买买! *把文章写写! *把酒喝喝! *把房子盖盖! *把白薯运运! *把作业交交! *把报纸借借! *把裙子穿穿! *把黑板扛扛! *把面包吃吃! *把书还还!*把被子卖卖!*把桌子送送!*把车锁拆拆! 同样是“把”字祈使句,甲、乙两组句子的基本格局相同,但甲组句能说,乙组句不能说。为什么?自陆俭明先生提出把字句中的动词重叠问题以来,这一问题得到语法学界的高度重视,不少学者都在论文或著作中把它作为尚待解决的重要语法问题来对待,也有人试着对这一问题进行解释。 高平平(1999)从语用的角度进行分析,认为“凡是能表示一定动作行为的并能够持续、重复的动词都可以重叠;反之,凡表示非动作行为、不能持续重复的动词或表示一定量的动词,一般不能重叠使用。”姜守旸(2000)从受事宾语的处置结果明确与否进行了解释。于洪亚(2008)认为把字句动词重叠的限制条件是:“1、‘把’后的名词必须是与动词组合的能够单说的自由语素,2、名词与重叠动词组合后要能产生某种预期的结果,或者至少要发生某种变化。”他们的解释有其合理的一面,但却并没有完全解决问题。原因就在于以往对这一问题的研究仅仅是针对动词或宾语进行探讨,都是从某一特定角度着手的,而忽略了句式的影响和制约,缺乏全局的研究思路。正像周国光先生(1999)在提到把字句中的动词重叠问题时所说的:“两组句子中的动词都是重叠形式,但是有的可以重叠,有的不能重叠。为什么?是否与动词的语义特征有关?如果有关,那么决定能否重叠的语义特征是什么?就目前的研究来说,还没有提取出相应的语义特征给以比较满意的解释。” 二、把字句中的动词重叠是句子层面的问题 我们认为,一个句子能否成立并不仅仅取决于其核心动词,也会受到句式或其他因素的

what用法总结

what用法总结 温馨提示:what用法很多,对专升本有用的我已经用红色字体显示,由于部分同学考研可能要用到,把几乎所有用法都附上了。 what的用法是各种类型英语科测试的热点,what的用法灵活多变,出题花样翻新,只有对其有一个全面的掌握,才能灵活运用。本文以2006年的两道高考题为例,总结what的用法,希望能让同学们对它有一个全面的了解。 The shopkeeper did not want to sell for _____ he thought was not enough.(2006山东卷第26题) A. where B. how C. what D. which 答案:C Great changes have taken place in that school. It is no longer _____ it was 20 years ago, _____ it was so poorly equipped.(2006安徽卷第32题) A. what; when B. that; which C. what; which D. which; that 答案:A. 上述两题中的what都是关系代词,一般含义是“the thing that”。第一题中what 的意思是“the price that”,引导宾语从句;第二题中what的意思是“the school that”,引导的是表语从句。what的其他结构还有:

一、what + little 在此结构中,little是名词,强调某种东西“虽少但已是全部”,至于被强调的是什么,只能凭借上下文来判断。 例如:(1)What little he said on the subject was full of wisdom. (2)She saved what little of the money she could out of her slim salary to help her brother go to school 二、what little + 名词 此结构为上一结构的延伸,所不同的是,little在这里不是名词,而是形容词了。 例如:(1)He gave me what little money he had about him. (2)My father spent what little spare time he had in writing. 三、what + few + 名词 当被修饰的名词为可数名词时,little应换成few,含义为“仅有的几个”。 例如:(1)What few friends I have are very kind to me. (2)I will lend you what few books I can spare.

make的用法

使役动词make用法说明 1、make用作使役动词,表示“使”,使用时注意以下几点: (1)后接不定式的复合结构作宾语时,不定式不能带to;如: You have made me feel secure。 但是,若make为被动语态,则不定式必须带to。如: Though he had often made his little sister cry, today he was made to cry by his little sister.虽然他曾经常把他小妹妹弄哭,但今天他被他小妹妹弄哭了。 注意,若make不表示“使”,而表示其他意思则情况不同,比如下面两句,make 后的不定式不是宾语补足语,而是目的状语: We make candles to give light.我们做蜡烛照明。 He made a box to put his money in.他做了个盒子来装钱。 (2)接过去分词作宾语补足语。如: He tries to make his ideas known.他设法让别人知道他的想法。 She had to shout to make herself heard.她必须大声喊才能让人听见她说话。(3)接形容词作宾语补足语。如: Have I made myself clear?我的意思说清楚了吗? We’ll do our best to make you happy.我们会尽一切努力使你幸福。 (4)接介词短语作宾语补足语。如: Sit down and make yourself at home.请坐,不要拘束。 (5)跟由名词构成的复合结构 His scientific pursuits had made him a very observant man. Its excellent properties makes graphene a good candidate for metamaterials. (6)make (使)通常不接现在分词的复合结构作宾语。要表示使某人或某事一直做某事或处于做某事的状态中,英语也可用have sb doing sth。如: 他讲的滑稽的笑话使大家都笑了。 His funny joke made everyone laugh.

把字句 教案

小组成员: 宋云颢杨历艳周秋晗公翠云松泳隆汰把字句的教学教案 一、课型: 初级汉语语法课 二、教学对象:18-34岁零起点 三、教学内容: 把字句的基本使用方法 三个基本句型: “S+(没)把xx/人+V在+地方” “S+(已经)+把东西/人+V到+地方” “s+(要)把+xx/人+V给+人” 四、教学目标: 1.通过“把”字句的学习,掌握把字句的语义特征、句式特点、准确用法,正确率达到90%以上。 2.能够自然流利地使用“把”字句描述自己的经历和愿望。 五、教学重点和难点: 1.正确运用句型: “S+(没)把xx/人+V在+地方” “S+(已经)+把东西/人+V到+地方” “s+(要)把+xx/人+V给+人” 2.了解“没”、“已经”、“要”使用位置

3.结合“把”字句的教学,区分“把”字句中“了”的用法。 六、教学方法: 1.按照先引入再操练的顺序,讲解三个基本句型。 2.运用直观手段,使用多媒体辅助教学。 3.设计互动形式的小组活动,鼓励学生合作学习。 4.设计趣味游戏,在游戏中熟练运用“把”字句。 七、教具准备: 1.实物类: 书、字典、苹果、包、椅子、钱 2.媒体类: 学生提前录制的视频。 八、教学时间: 总时长:40分钟 1.引入:13分钟 2.操练:12分钟 3.练习:12分钟 4.总结:3分钟 九、教学步骤 (一)引入1 (5分钟) 1.看动作回答问题

(1)动作: 拿起一本书 (2)问题: “这是什么?” “书在哪?” “老师在做什么?” “现在书在哪了?” “老师做什么了?” (3)老师提问,学生逐个造句 如果学生给出正确答案,可继续教学; 如果学生没有给出正确答案,老师说“这些句子都不合适”老师给出正确答案。 (4)句子展示: “老师把书放在桌子上了。” (5)让大家重复正确句子(集体朗读) 例子二: (1)动作: 拿起一个包 (2)问题: “这是什么?”

第十五讲 宏定义

第十五讲宏定义、文件包含和条件编译 ?C语言提供的预处理功能主要有三种: 宏定义 文件包含 条件编译 ?为了区别预处理命令和C语句、定义和说明语句,规定: 预处理命令行必须在一行的开头; 必须以#开始; 每行末尾不能加分号。 1、宏定义 宏定义 1.1不带参数的宏定义 不带参数的宏定义命令形式为: #define 宏名字符串 或#define 宏名 #define的作用是用指定的标识符(宏名)来代表字符串。其中#define是宏定义命令,宏名是一个标识符。 【例】输入一个圆的半径,计算并输出圆的面积和周长 #define PI 3.14159 main( ) {float l,s,r; /*l:周长,s:面积,r:半径*/ printf("Please input radius: "); scanf("%f",&r); /*输入半径*/ l=2.0*r*PI; /*计算周长*/ s=PI*r*r; /*计算面积*/ printf("l=%10.4f\ns=%10.4f\n",l,s); } 说明: 为了与变量名区别,建议宏名一般用大写字母。使用宏名代替一个 字符串,目的一是减少程序中某些重复使用字符串的书写量,其二 是增加程序的可读性。在编译预处理过程中会进行宏展开。 当宏定义在一行中写不下,需要在下一行继续时,只需在最后一个 字符后紧接一个反斜线“\”。注意在第二行开始不要有空格,否则空 格会一起被替换。 例如:#define LEAP_YEAR year % 4==0\ && year %100!=0 || year % 400==0 在C语言中,宏定义一般写在程序开头。宏名的有效范围为定义命 令之后到本源文件结束,除非用#undef命令终止宏名的作用域。 对程序中用双引号括起来的字符串内的子串和用户标识符中的成分 不做替换。例如已定义: 同一个宏名不能重复定义,除非两个宏定义命令行完全一致。 1.2带参数的宏定义 形参表中的不同形参之间用逗号隔开,字符串中包含形参表中的参数,带参

soup的用法总结大全

soup的用法总结大全 想了解speak的用法吗?今天就给大家带来了speak的用法,希望能够帮助到大家,下面就和大家分享,来欣赏一下吧。 soup的用法总结大全 soup的意思 n. 汤,羹,浓雾,硝化甘油炸药,困境 vt. 加大马力 变形:过去式: souped; 现在分词:souping; 过去分词:souped; soup用法 soup可以用作名词 soup的基本意思是“汤,羹”,多用作不可数名词,表示不同种类的“汤”时,可用作可数名词。 a bowl of soup表示“一碗汤”, a cup of soup表示“一杯汤”。 soup用作名词的用法例句

I made some gravy soup for my husband.我给我丈夫做了一些肉汤。 He had spoiled the soup by putting in too much salt.他往汤里放盐太多,把汤给糟蹋了。 This soup is a spicy variation on a traditional favourite.这种汤是在一种受欢迎的传统汤羹中加了香料。 soup用法例句 1、I started with the Viennese speciality frittatensuppe, or pancake soup. 我吃的第一道菜是维也纳特色菜鸡蛋饼汤,也叫炒饼汤。 2、Drain the beans thoroughly and save the stock for soup. 将豆角彻底控干,并把滤出的豆汁留下做汤。 3、She has a knack of landing herself right in the soup. 她老是让自己的处境很尴尬。 请注意,Russian Soup不是「俄罗斯的汤」! 说起罗宋汤,估计大家没喝过也听说过,那么说起Russian soup,大家知道是什么吗?可千万别把Russian soup译成俄罗斯的汤,因为它就是罗宋汤的英文名。

make的用法

The loud music makes me nervous. 嘈杂的音乐会让我觉得紧张。(Grammar Foucs) The color red makes me nervous. 红色会使我紧张。 The exciting music makes me want to dance.兴奋的音乐使我想跳舞 【2014重庆38】He lost his key.It made him in the cold to wait for his wife’s return. A. to stay B. stayed C. stays D. stay We were made to work days and nights.我们被迫日夜工作。 But that music makes me sleepy. 但是那种音乐会让我昏昏欲睡。( 1c )

The color red makes me nervous. 红色会使我紧张。 As for our next meeting, let’s make it the day after tomorrow. make faces 做鬼脸make sure 查明,弄清 make kites 制作风筝make the bed 整理床铺make sentences 造句make a noise 制作噪音make mistakes 犯错make money 赚钱 make progress 取得进步make friends with… 与……交朋友make a telephone 打电话make fun of 取笑 make one’s at home 随便,不拘束make a milk shake 制作一份奶昔make a living谋生make up 组成,编造be made up of 由……组make a plan 制定计划make one’s plan 制定某人的计划make a decision 做决定 make one’s mind 下定决心make one’s bed整理床铺make tea 沏茶

把字句和被字句

把字句和被字句 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

参考书籍:《21天征服HSK高等语法》 主动句——把字句 1结构:主语+把+宾语+谓语+其他成分 2意义:强调动作对宾语的处置或影响,以及结果 3注意: ①如果有能愿动词、否定副词或表示时间的词,这些词一般放在把的前面如:我想把花盆搬到阳台上。 他没把照相机带来。 你别把衣服弄脏了。 我昨天刚把书借给同学了。 ②如果句中谓语有宾语,则“都、全、一齐、统统”等表示全部范围的副词应放在“把”的后面、谓语动词的前面;而“只、仅仅、单、光”等表示排他范围的副词,则应放在“把”的后面。 如:他把那些书全买下来了。 你把钱都花完了吗 我只把冰箱擦了。 4常见形式: ①动词带补语:主语+把+宾语+动词+补语(结果/趋向/时量/动量) 如:你把计划订好了吗 你把我要得那本书带来了吗 我把妈妈的信又看了一遍。 ②动词带宾语: ⑴主语+把+宾语1+动词+在/到/上/给...+宾语2 如:你把书放在桌子上。 服务员把酒送到客人面前。 他把朋友送上了火车。 我把作业交给了老师。

⑵主语+把+宾语1+动词+成/为/作...+宾语2 常见形式:把...当作/看作/当成/看成/比作 如:她把老人当成自己的亲生母亲。 人们常把祖国比作母亲。 请把这个句子翻译成中文。 ③动词重叠:把字句中的主要动词前后不带别的词语时,它本身往往要重叠一下。即: 主语+把+宾语+动词重叠(详细请找动词重叠的有关资料) 如:咱们把教室打扫打扫。 请你把课文读一读。 我把学过的生词又看了看。 ④动词带:了/着这时候了/着表示动词的结果。 主语+把+宾语+动词+了/着 如:天阴了,你把雨伞带着吧。 他把钱包丢了。 5关于把后面的名词 把后面的名词所指的事物必须是确定的。名词前面常带限制性的词。 如:请把那本书拿过来。(是确定的某本书,而不能说把有得书拿过来) 他把两本书都看完了。(一定是前边已经说过的那两本书) 6不能用于把字句的谓语动词。 ①不及物动词。即不能带任何宾语的动词。如:旅行、合作等 ②表示判断、状态的动词。如:是、有、像、在等。 ③表示心理活动或感官动作的动词。如:喜欢、讨厌、知道、认识、同意、觉得、希 望、要求、看见等 ④表示趋向的动词如:上、下、进、出、回、过、起、到等 ⑤某一事物原来不存在,后通过某种动作产生出来。这种情况不能用把字句。 如:她把女孩儿生了(ⅹ) 她生了一个女孩儿(√) 注意:把字句的谓语动词一般应是及物动词,并且能够支配和影响把的宾语。以上是书上写的,这样给学生讲,学生肯定疯,我一般讲的时候会这样: 把字句是中国的主动句, 主要形式是:A+把+B+(给)+动词+其他成分 如:我把苹果给吃了

宏定义的优缺点

宏定义的优缺点 其实在用VC编程的时候就会遇到很多宏定义,尤其是类似LONG,LPCTSTR等等之类的,它们属于微软的自定义类型,但其本质上还是属于C/C++里面的那几个标准类型。那用宏定义到底有什么好处呢? 先来看一下宏的定义:用#define命令将一个指定的标识符(即宏名)来代表一个字符串。它的一般型式为: #define 表示符字符串 #define命令属于“预处理命令”中的一种。它是由C++统一规定的,但非C++语言本身的组成部分,由于编译器无法识别他们,不能对其直接进行编译。预处理过程必须在对程序进行词法与语义分析、代码生成与优化等通常的编译过程之前进行,经过预处理后的程序不再包含之前的预处理命令。 C++提供的预处理功能除了宏定义之外,还有以下两个: 文件包含(#include命令) 条件编译(#ifdef …. #def …. #endif命令) #define命令还可以定义带参数的宏定义,用于实现某种特定的功能,其定义型式为: #define 宏名(参数列表) 字符串 例如:#define Sum(a,b) a+b 不过,由于C++增加了内联函数(inline),实现起来比带参数的宏更方便,这样的宏在C++中已经很少使用了。 接下来看看宏都有什么好处: 提高了程序的可读性,同时也方便进行修改; 提高程序的运行效率:使用带参的宏定义既可完成函数调用的功能,又能避免函数的出栈与入栈操作,减少系统开销,提高运行效率; 宏是由预处理器处理的,通过字符串操作可以完成很多编译器无法实现的功能。比如##连接符。 但是它也有自己的缺点: 由于是直接嵌入的,所以代码可能相对多一点;

who的用法总结大全

who的用法总结大全 who的用法你知道哪些?今天给大家带来who的用法,希望能够帮助到大家,下面就和大家分享,来欣赏一下吧。 who的用法总结大全 who的意思 pron. 谁,什么人,关系代词,有先行词,孰 who用法 who可以用作代词 who用作疑问代词时,意思是“谁”,一般只用来指人,在句中用作宾语或主语。 who用作限制性或非限制性的关系代词,意思是“…的人,那个…”“他,她,他们”,在句中作主语。 指某一组织机构的成员时也可用who,此时应用复数形式的谓语。 who用法例句 1、The happiest are not those who own all the best things, but those who can appreciate the beauty of life.

最幸福的人们并不一定什么都是最好,只是他们懂得欣赏生活的美好。 2、The difference between who you are and who you want to be is what you do. 你是什么样的人和你想成为什么样的之间的差距就是,你做了什么。 3、Remember, happiness doesnt depend upon who you are or what you have; it depends solely upon what you think.--Dale Carnegie 请记住,幸福不在于你是谁或者你拥有什么,而仅仅取决于你的心态! Who、whom、whose傻傻分不清之who的用法大全 who、whom、whose你认清了吗? 其实我们经常会傻傻分不清楚像这样子类型引导的疑问句,甚至有时候不知道怎样去进行表达,感觉都是对的,然后又感觉都是错的。所以,只有踏踏实实的吧这几个who、whom、whose 分清楚,真正的了解他们的区别和用法,拿在之后的中英互译中才不会出现让人尴尬的错误。

make 用法归纳

make 用法归纳 作者:张若红文章来源:英语辅导报 一、make用作及物动词,在主动语态中的含义主要有: 1. 做;制作;制造。如: Can you make any mooncakes? 你会做些月饼吗? ◆make后可跟双宾语,间接宾语后移时一般用for引导。如: My uncle will make me a kite. = My uncle will make a kite for me. 叔叔将为我做一只风筝。 2. 使;使之。如: Have I made myself clear? 我讲清楚了没有? 3. 迫使;令。如: I don't like milk, but she made me drink it. 我不喜欢牛奶,可是她强迫我喝。 4. 总计;等于。如: Two and two makes four. 二加二等于四。 5. 准备;布置;整理。如: You must make the bed after you get up. 你起床后必须整理好你的床铺。 6. 构成;组成;成为。如: Daniel scored another goal, but one player does not make a team. 丹尼尔又踢进了一球,但是独木不成林。 二、make用作及物动词,意为“使;让”,在主动语态中其后要跟省略to的不定式作宾语补足语,而在被动语态中,to不能省去。如: Don't make the baby cry anymore. 不要再让那个孩子哭了。 She was made to wait for over an hour. 她被迫等了一个多钟头。 ◆英语中,类似于make这种用法的动词还有let, have, hear, see, watch, notice, feel等。如: I saw him put the key into the keyhole, turn it and open the door. 我看见他把钥匙插进锁孔,转动钥匙,然后打开了门。 She was seen to go into the classroom.

C语言预处理命令之条件编译(#ifdef,#else,#endif,#if等)

C语言预处理命令之条件编译(#ifdef,#else,#endif,#if等) 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。 在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。 预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是部分预处理指令: 指令用途 #空指令,无任何效果 #include包含一个源代码文件 #define定义宏 #undef取消已定义的宏 #if如果给定条件为真,则编译下面代码 #ifdef如果宏已经定义,则编译下面代码 #ifndef如果宏没有定义,则编译下面代码 #elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码 #endif结束一个#if……#else条件编译块 #error停止编译并显示错误信息 一、文件包含 #include预处理指令的作用是在指令处展开被包含的文件。包含可以是多重的,也就是说一个被包含的文件中还可以包含其他文件。标准C编译器至少支持八重嵌套包含。 预处理过程不检查在转换单元中是否已经包含了某个文件并阻止对它的多次包含。这样就可以在多次包含同一个头文件时,通过给定编译时的条件来达到不同的效果。例如: #defineAAA #include"t.c" #undefAAA #include"t.c" 为了避免那些只能包含一次的头文件被多次包含,可以在头文件中用编译时条件来进行控制。例如: /*my.h*/ #ifndefMY_H

make用法小结及练习

make用法及训练make是初中英语中用法比较多的一个动词,主要有: 1.make 构成的一些固定搭配 make faces做鬼脸 make friends with…与…交朋友 make breakfast 做早餐 make noises制造噪音 make money赚钱 make the bed铺床 make flashcards制作抽认卡 make progress取得进步 make mistakes犯错 make decisions to do…下决心干… make yourself at home使某人感到宾至如归make up占…/ 编造,组成,拼凑成make a living(by) doing谋生 make a fire生火 make it earlier把时间订早一点 make up for弥补 make sure确保,弄清楚 make use of利用 be made of (看出原料)/ from(看不出原原料)由…制成 be made in在…制成 be made into被制成… be made up of由…组成 2.make 的各种用法 ①make 宾语+n. 意为“使,让某人/某物(成为)…” We made him our monitor. 我们选了他做班长。 ②make 宾语+adj. 意为“使,让某人/某事(变得)…” What he did made me unhappy. 他所做的事使我不高兴。 We will make our country more and more beautiful.我们将会使我们的国家越来越美丽。 ③make 宾语+do(不带to的不定式)…意为“使,让某人干…” Our teacher makes us feel more confident.我们的都是使我们更加自信。 此类结构变被动to必须还原。类似的词还有“一感二听三让四看” ④make 宾语+doing…意为“使,让某人一直干…” He makes the boys standing all the time.他使那个男孩一直站着。 ⑤make 宾语+done…意为“使,让某人被…” make oneself understood/ heard / known让别人听懂/ 听见/ 知道 He raised his voice to make himself heard.他提高声音使别人听见。 Make专练 1. -- What do you think of what she did. -- What she did still us feel very sad now. A. makes B. make C. is making D. is made 2. The baby was made ______ (cry) by the other kids. 3. The paper is made_______ ( of / from) the wood. 4. You should do better in math. Because it ______ 30% of the exam. A. makes of B. makes from C. makes up D. makes up of 5. His father makes a living __________ (sell) newspaper. 汉译英。 1.刚才什么使他笑?。______________________________________________________ 2.他已经下定心了吗?______________________________________________________

对外汉语教学中把字句教学

对外汉语教学中“把”字句的教学 引言:“把”字句是现代汉语语法研究中的一个重要问题,长期以来一直受到语言学家的关注。“把”字句的结构和用法都非常复杂。“把”字句可能是汉语中人们对它研究最多的一种句型。这种句型在很多语言中都没有,比如韩语,虽然韩语中宾语都是提前的,但是都有主语、谓语、宾语、方向等标记。对一位教外国人学汉语的老师,能够真正地理解“把”字句的结构和用法已经是很难了,更何况说教外国人使用好“把”字句。总的来说,“把”字句在对外汉语教学中一直是一个老大难的问题。怎么教、如何教对从事对外汉语教学的老师来说一直是一个头疼的问题。 作为一名大学时期学汉语的外国学生,本人深刻地体会到学习一种在母语中几乎都没有的句型是多么困难的事。在此基础上,本人对对外汉语教学中“把”字句的教学进行研究。在研究过程中,本文章集中解决了以下六个问题: 1.“把”字句表示什么意思 2.为什么要用“把”字句 3.“把”字句的结构 4.“把”字句的选择和使用 5.把字句的教学设想 6.在学“把”字句过程中,学生常见的问题 正文: 1.“把”字句表示什么意思? 用了介词“把”的句子叫把字句。大多数“把”句子的意思是:某个确定的事物因为某个行为、动作而发生某种变化,受到某种影响,产生某种结果。例如: (1)他把那瓶水喝完了。 确定的事物:那瓶水;行为:喝;结果:完了 喝那瓶水完了 (2)他把包放到柜子里。 确定的事物:包;行为:放;结果:到柜子里 放包到柜子里 (3)他把那瓶啤酒喝得干干净净。 确定的事物:那瓶啤酒;行为:喝;结果:干干净净

喝那瓶啤酒干干净净 2.为什么要用“把”字句 2.1.要强调结果 请看下面两个例子: (1)那本书(她)买到了。 (2)她把那本书买到了。 虽然,上面两个例子都强调了结果:“买到了”,但是(1)句和(2)句也有不同的地方。(1)句说的是“那本书”怎么样。例如: (3)A:那本书她还想借吗? B:不,那本书她已经买到了,不用借了。 然而,(2)句说的是“她”怎么样,如: (4)A:她怎么那么高兴? B:是啊,他终于把那本书买到了,当然高兴了。 所以,为了强调的主体行为不同我们需要考虑到用“把”字句。 2.2. 如果一个动词又有宾语,又有补语,我们就把宾语拿到前面去,因为宾语和补语不能都放在动词的后面。例如:放,包,在柜子里。我们不可以说: (5)他放包在柜子里。(X) 而要必须说: (6)那个包(他)放在柜子里。 (7)他把那个包放在柜子里。 但,这两个句子也有不同的地方,就是在于主体行为的状况。(6)句说的是“那本书”怎么样,(7)句说的是“他”怎么样。 3.“把”字句的结构 通过研究《外国人实用汉语语法》、《对外汉语教学实用语法》等教材,总体来说,语言家的观点基本一致: ①“把”字句的基本结构:(主语)十把十“把”的宾语十谓语动词十其它成分 例如1:把+“把”的宾语+谓语动词+在/到/给

Verilog中条件编译命令_`ifdef、`else、`endif_用法

Verilog中条件编译命令 `ifdef、`else、`endif 用法 一般情况下,Verilog HDL源程序中所有的行都参加编译。但是有时候希望对其中的一部份内容只有在条件满足的时候才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足条件时对一组语句进行编译,当条件不满足时则对另外一组语句进行编译。 条件编译命令的几种形式: (1)`ifdef宏名(标识符) 程序段1 `else 程序段2 `endif 它的作用是当宏名已经被定义过(此处需要采用`define命令定义),则对程序段1进行编译,程序段2将被忽略;否则编译程序段2,程序段1将被忽落。其中`else部分可以没有,即: (2)`ifdef宏名(标识符) 程序段1 `endif 这里的“宏名”是一个Verilog HDL 的标识符,“程序段”可以是Verilog HDL语句组,也可以是命令行。这些命令可以出现在源程序的任何地方。 注意:被忽略掉不进行编译的程序段部分也要符合Verilog HDL程序的语言规则。

通常在Verilog HDL程序中用到`ifdef、`else、`endif编译命令的情况有以下几种: (1)选择一个模板的不同代表部分。 (2)选择不同的时许或结构信息。 (3)对不同的EDA工具,选择不同的激励。 最常用的情况是:Verilog HDL代码中的一部分可能适用于某个编译环境,但不使用于另一个环境,如果设计者不想为两个环境创建两个不同版本的Verilog设计,还有一种方法就是所谓的条件编译,即设计者在代码中指定其中某一部分只有在设置了特定的标志后,这一段代码才能被编译,即设计者在代码中指定其中某一部分只有在设置了特定的标识后,这一段代码才能编译。 设计者也可能希望在程序的运行中,只有当设置了某个标志后,才能执行Verilog设计的某些部分,这就是所谓的条件执行。 条件编译可以用编译指令`ifdef、`else、`elsif和`endif实现。 `ifdef和`ifndef指令可以出现在设计的任何地方。设计者可以有条件地编译语句、模块、语句块、声明和其他编译指令。`else指令时可选的。一个`else 指令最多可以匹配一个`ifdef或者`ifndef。一个`ifdef或者`ifndef可以匹配任意数量的`elsif命令。`ifdef或`ifndef总是用相应的`endif来结束。 Verilog文件中,条件编译标志可以用`define语句设置。如果没有设置条件编译标志,那么Verilog编译器会简单地跳过该部分。`ifdef语句中不允许使用布尔表带式,例如使用TEST && ADD_B2来表示编译条件是不允许的。

take的用法总结大全

take的用法总结大全 想了解take的用法么?今天给大家带来了take的用法,希望能够帮助到大家,下面就和大家分享,来欣赏一下吧。 take的用法 take的意思 vt. 拿,取,采取,接受(礼物等),耗费(时间等) vi. 拿,获得 n. 镜头,看法,收入额,场景 变形:过去式: took; 现在分词:taking; 过去分词:taken; take用法 take可以用作动词 take是英语中含义最多,搭配能力最强的动词之一,基本意思是“拿,取,带,抓”,指用手取物、接受东西、把人或物移到某处。可根据上下文灵活译为“吃,喝,服(药),容纳”“接,接受,提,买”“以为,把…看作…”“花费”“记录,量取”“拍摄”“承担,容忍”“乘坐,搭乘,租用”“取得,获得,得到”“采取,选”“攻下,占领,夺走,赢得”“上钩”“发生效用”等。

take可用作及物动词,也可用作不及物动词。用作及物动词时可接名词或代词作宾语,也可接双宾语,作“带给”解时其间接宾语可转化为介词to的宾语。用作不及物动词时主动形式可表示被动意义。 take与某些名词连用,表示做某一动作,相当于have。 take用作动词的用法例句 Please take the trash to the garbage can.请将垃圾拿到垃圾筒去。 Take money from the bank when needed.需要时,把钱从银行里取出来。 We are ready to take your order.我们随时准备执行您的命令。 take可以用作名词 take用作名词的意思是“捕获量,收入额”,指捕鱼、鸟兽等的数量,也可指交易的金额、赃款、所得金额等,通常用作单数形式。 take也可作“镜头”解,指已拍摄或未拍摄的连续的电影或电视镜头。 take还可作“奏效,反应; 成功”解。

MAKE的用法

71. Make的用法和判别 一、make作“做”、“制造”、“构成”等解: 1. They make many kinds of machines. 他们制造许多种机器。 2. We made two experiments yesterday. 我们昨天作了两个实验。 3. Hydrogen and oxygen make water. 氢和氧构成水。 4. Two and three make five. 二加三等于五。 5. They are making us a new-type device. 他们正在为我们制造一台新型装置。 二、“make+某些抽象名词”表示作出某种举动。例如: 1. to make an answer 作出答复 2. to make measurement 量度 3. to make efforts to fulfill the plan 努力完成计划 4. to make contributions to the revolution 对革命作出贡献 5. to make adjustments 进行调节 6. to make a calculation 计算 7. to make application 应用,使用 8. to make a correction 校正、更正 9. to make use of…利用…… 10. to make much account of oil 很重视石油 在科技英语中,诸如此类的搭配用法甚多,必须予以注意。翻译时多半译出名词的意思即可。 三、make作“行走”、“行使”解: This automobile makes 70 kilometers an hour. 这辆汽车每小时行驶70公里。 四、“make+直接宾语+宾语补语(名词、形容词、不带to的不定式、过去分词、介词短语等)”,其中make作“使得”、“使……成为”解:

宏定义的作用

宏定义的作用 宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、 条件编译 编辑本段1.不带参数的宏定义: 宏定义又称为宏代换、宏替换,简称“宏”。 格式: #define 标识符字符串 其中的标识符就是所谓的符号常量,也称为“宏名”。 预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。 掌握"宏"概念的关键是“换”。一切以换为前提、做任何事情之前先要换,准确理解之前就要 “换”。 即在对相关命令或语句的含义和功能作具体分析之前就要换: 例: #define PI 3.1415926 把程序中出现的PI全部换成3.1415926 说明: (1)宏名一般用大写 (2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例 如:数组大小常用宏定义 (3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法 检查。 (4)宏定义末尾不加分号; (5)宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。 (6)可以用#undef命令终止宏定义的作用域 (7)宏定义可以嵌套 (8)字符串" "中永远不包含宏 (9)宏定义不分配内存,变量定义分配内存。 编辑本段2.带参数的宏定义: 除了一般的字符串替换,还要做参数代换 格式: #define 宏名(参数表)字符串 例如:#define S(a,b) a*b area=S(3,2);第一步被换为area=a*b; ,第二步被换为area=3*2; 类似于函数调用,有一个哑实结合的过程: (1)实参如果是表达式容易出问题 #define S(r) r*r area=S(a+b);第一步换为area=r*r;,第二步被换为area=a+b*a+b; 正确的宏定义是#define S(r) ((r)*(r)) (2)宏名和参数的括号间不能有空格 (3)宏替换只作替换,不做计算,不做表达式求解 (4)函数调用在编译后程序运行时进行,并且分配内存。宏替换在编译前进行,不分配内 存 (5)宏的哑实结合不存在类型,也没有类型转换。

make用法及短语总结教案资料

make用法及短语 一、make的复合宾语。英语中make一词用法甚多,是使用频率最高的动词之一,而make 作使役动词的用法也很常见。意思是“使成为”、“使作为”、“使变成”,其后的复合宾语(即宾语+宾语补足语)有以下表达方式: 1. make +宾语+名词(作宾语补足语) Most pop singers make music their career.大多数流行歌手把音乐当作他们的职业。 Bill Gates’Microsoft makes him a phenomenon in the business world. 比尔·盖茨的微软使他成为商界的一个奇才。 What makes the ocean such a great place to live? 究竟是什么东西使大海成为如此优越的生活场所呢? European football is played in 80 countries,making it the most popular sport in the world. 80个国家踢欧式足球,使它成为世界上最受欢迎的运动。 After all,what makes a new invention such a wonderful thing is that it allows us to do something we could not do before. 毕竟,一项发明之所以成为如此奇妙的事情就在于它可以让我们做以前不能做的事。 2. make +宾语+不带to的不定式(作宾语语补足语) Nobody made us go to bed at a certain time.没有人让我们在某一固定时间就寝。 Pop music makes people feel easy and forget about the real world;rock music makes people think about the world and how to make their life better. 流行音乐令人松弛安心,忘记这真实的世界,而摇滚乐使人思考这个世界和如何改善自己的生活。 Nothing can make me turn against my country.什么也不能使我背叛我的祖国。 Love may create the wonder,and may make people become satisfied and optimistic. 爱可以创造奇迹,可以让人变得满足和乐观。 注意:但改成被动语态时,则要加to。 Children should be made to understand the importance of saving water. 应该让孩子们理解节水的重要性。 3. make +宾语+形容词(作宾语补足语) But I was happy to help because I knew it was to realize our dream of making black and

相关主题
文本预览
相关文档 最新文档