专栏名称: ittbank
让电子库存因技术而改变的ITT模式电商平台。引领和适应市场,以共享经济理念的创客及工程师为核心、以免费开放用户生成的数据为基础,为其提供高性价比的应用解决方案和及时精准的供求信息,快速提高产品开发周期和生产直通率、提升电子器件的应用附加值。
今天看啥  ›  专栏  ›  ittbank

C语言函数宏的三种封装方式

ittbank  · 公众号  ·  · 2024-07-10 17:40

文章预览

1 函数宏介绍         函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。     函数宏本质上为宏,可以直接进行定义,例如: #define INT_SWAP(a,b) \ int tmp = a; \ a = b; \ b = tmp     但上述的宏具有一个明显的缺点:当遇到  if 、 while  等语句且不使用花括号仅调用宏时,实际作用范围在宏的第一个分号后便结束。即  a = b  和  b = tmp  均不受控制语句所作用。     因此,在工程中,一般使用三种方式来对函数宏进行封装,分别为  {} 、 do{...}while(0)  和  ({})  。下文将一一对三种方式进行分析,比较各自的优劣点。 2 { } 方式         INT_SWAP  宏使用  {}  封装后形态如下:  #define INT_SWAP(a,b)\ { \ int tmp = a; \ a = b; ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览