Arduino Uno驱动好盈电调:从电位器到遥控器的三种PWM控制方案实测
2026/6/4 10:51:56
在 C 语言里,类函数宏是一种很实用的工具,它比内联函数更加灵活。下面介绍两个重要的类函数宏:TRACE_POINTER和TRACE_CONVERT。
TRACE_POINTER宏的定义如下:
#define TRACE_POINTER(X) \ _Generic((X)+0LL, \ unsigned long long: 0, \ long long: 0, \ float: 0, \ double: 0, \ long double: 0, \ default: (X))这个宏的优点在于,对TRACE_POINTER(X)的调用结果总能赋值给void*类型的变量。若X本身是指针,它可以直接赋值给void*;若X是其他算术类型,宏调用的结果为 0。
在此基础上,TRACE_CONVERT宏的定义如下:
#define TRACE_CONVERT(X) \ _Generic((X)+0LL, \ unsigned long long: