大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
主要用于函数重定义,通用性,可以用一个变量符号替代另一个变量符号
创新互联公司专注于企业营销型网站、网站重做改版、澄江网站定制设计、自适应品牌网站建设、H5页面制作、成都做商城网站、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为澄江等各大城市提供网站开发制作服务。
格式:#define M(x,y) x+y
在主程序里写入z=M(6,9);等价于z=6+9;而写成z=(6-8,9);等价于z=6-8+9 ;直接代入
还有就是 :#define Uint unsigned int 即用 Uint 代替unsigned int 便于书写,还有就是不同操作系统的通用变量识别
那个是分号,不是冒号。这个分号的作用就是函数调用语句末尾的分号
例如LED_BLUE宏展开后为digitalHi(LED1_GPIO_PORT,LED1_GPIO_PIN);digitalHi(LED2_GPIO_PORT,LED2_GPIO_PIN);digitalLo(LED3_GPIO_PORT,LED3_GPIO_PIN)
你只需要使用“LED_BLUE;”语句就可以关闭LED1和2,打开LED3。
宏定义可以执行多条函数,宏定义的本质实际上是文本替换,把宏定义的内容原原本本地替换到宏使用的地方。
另外,LED2_OFF后面似乎也应该有个分号,否则编译应该会出错的。除非LED2_OFF宏定义里加了分号。
C语言中的宏定义用法分为两种。
1、不带参数的宏定义比较简单,就是用一个指定的标识符来代表一个字符串。它的一般形式为“#define 标识符 字符串”,例如#define E 2.718281828459。这种方法使用户能以一个简单的名字代替一个长的字符串。
2、带参数的宏定义不是仅仅进行简单的字符串替换,还要进行参数替换。其定义的一般形式为;“#define 标识符(宏名)(参数表) 字符串”,字符串中包含在括号中所指定的参数。例如#define S(a,b) a*b area=S(3. 2)。
扩展资料:
宏定义只占编译时间,函数调用则占用运行时间(分配单元,保存现场,值传递,返回),每次执行都要载入,所以执行相对宏定义会较慢。
使用宏定义次数多时,宏定义展开后源程序很长,因为每展开一次都使程序增长,但是执行起来比较快一点(这也不是绝对的,当有很多宏定义展开,目标文件很大,执行的时候运行时系统换页频繁,效率就会低下)。而函数调用不使源程序变长。