首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
用宏专题
C语言奇技淫巧之--用宏定义替换函数名的另外一种思路
时间有限,简要记录原理。 快速回忆要点: #if definde(FEATURE_A)#define myfunc _myfunc#endifint myfunc(int a, int b) 场景: 假设某个功能函数针对不同的makefile配置需要有不同的函数名字,通常做法如下: #if definde(FEATURE_A)int myfunc(int a, int b) #
阅读更多...
绝学:用宏定义找BUG,了解一下?
宏打印函数 在我们的嵌入式开发中,使用printf打印一些信息是一种常用的调试手段。但是,在打印的信息量比较多的时候,就比较难知道哪些信息在哪个函数里进行打印。 特别是对于异常情况的打印,我们需要快速定位到异常情况的位置。 这时候我们可以使用宏定义来封装一个宏打印函数,这个宏打印函数可以显示打印信息所在的文件、行数、函数名等信息。如: 左右滑动查看全部代码>>> #define DBG_PRIN
阅读更多...
iphone 用宏定义来判断当前的版本。
用宏定义来判断当前的版本是否小于ver。 #define FUNCTION_IOS_VERSION_BEGIN(ver) \ NSString *curVersion = [[UIDevice currentDevice] systemVersion]; \ if ([curVersion compare:@#ver] == NSOrderedDescending || [curV
阅读更多...
用宏 求 x y z,找出最大值最小值
求 x y z,找出最大值最小值C语言实现 #include <stdio.h>#define max(x,y,z) ((x)>(y)?(x):(y))>(z)?((x)>(y)?(x):(y)):(z)#define min(x,y,z) ((x)<(y)?(x):(y))<(z)?((x)<(y)?(x):(y)):(z)int main(void){unsigne
阅读更多...
用宏定义替代简单的自定义函数
宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 因此它的重要性不得而知 首先我们得知道预编译又叫预处理。预编译不是编译,而是编译前的处理。这个操作是在正式编译之前由系统自动完成的。 首先我们来复习一下宏定义基本用法: #define M 10 //切记不能再后面加分号以下是我在百度百科里面找到的相关内容#define 宏名 字符串;带参宏定义的一般形式为:#defin
阅读更多...
面试题:用宏定义写出swap(x,y),即交换两数。
鼠标选中查看答案↓: #define swap(x,y) do{(x)=(x)+(y);(y)=(x)-(y);(x)=(x)-(y);}while(0) 这个题考查宏定义的语法,尤其是多行代码的宏定义,加上do{}while(),,可以保证这些语句只执行一次。
阅读更多...