宏与函数的区别:1、宏做的是简单的字符串替换,不受类型限制;而函数是参数的传递,受到参数类型的限制。2、宏体替换宏名是在编译之前就完成的,函数参数的调用是在函数执行时将实参传给形参的。3、宏参数的替换是不经过计算的,有可能会带有副作用,所以我们在写宏体的时候一..
分类:
其他好文 时间:
2016-04-06 18:59:44
阅读次数:
187
一、#define1、仅仅作为标识符:#define作为标识符时是没有参数的2、作为宏:#define作为宏与它作为标识符的区别就是宏有参数而标识符没有例如:#defineMAX(X,Y)((X)>(Y)?(X):(Y))二、宏与函数的区别1、宏在使用时(编译阶段)会直接被替换掉(即简单的代码复制),并且不..
分类:
其他好文 时间:
2016-04-04 21:13:30
阅读次数:
164
#include<stdio.h>#defineMAX(X,Y)((X)>(Y)?(X):(Y))intmax(intx,inty){ returnx>y?x:y;}intmain(){ inta=10; intb=20;intret1=MAX(a++,b++);//宏会直接把定义的替换过来//((a++)>(b++)?(a++):(b++))会进行一系列的运算。此刻算完后a=11.b=22,ret=21intret2=max..
分类:
其他好文 时间:
2015-10-15 16:38:10
阅读次数:
109
知识点: 1.结构体 struct 2.typedef关键字 3.宏的定义 4.宏与函数的区别 5.文件包含和多文件编译 6.条件编译 ===========================结构体 思考:如果现在希望保存一个学生的信息,姓名,身高,年龄,地址,该如何保存 char name[...
分类:
编程语言 时间:
2015-02-28 00:07:08
阅读次数:
260
/***1.宏会在编译器在对源代码进行编译的时候进行简单替换,不会进行任何逻辑检测,即简单代码复制而已。2.宏进行定义时不会考虑参数的类型。3.参数宏的使用会使具有同一作用的代码块在目标文件中存在多个副本,即会增长目标文件的大小。4.参数宏的运行速度会比函数快,因为不需要参数压栈/出栈操作。5.参数...
分类:
其他好文 时间:
2015-01-02 15:49:46
阅读次数:
111
含参数的宏与函数的区别?宏替换不占运行时间,只占编译时间;而函数调用则占运行时间(分配单元、保留现场、值传递、返回),所以每次执行都要载入所以执行起来比较慢一些。。?定义宏的时候不要在宏及其参数之间键入空格,因为宏替换的时候会把你不经意打的空格当作宏的一部分进去。?在宏定义中把每个参数都用括号括起来...
分类:
其他好文 时间:
2014-12-31 17:47:12
阅读次数:
175
#define替换
Table of Contents
1 #与##2 宏与函数
1 #与##
#argument这种结构被预处理器翻译成“argument”,这种翻译可以让你像下面这样编写代码:
#define PRINT(FORMAT,VALUE) printf("the value of " #VALUE "is "...
分类:
其他好文 时间:
2014-11-24 11:54:35
阅读次数:
214