原文地址:http://koumeng5.blog.163.com/blog/static/35719040201111511595273/
用的是CC2530作无线温度采集遇到一些问题如下面的定义:
#define MCU_IO_OUTPUT_PREP(port, pin, val)
#define st(x)
当时在网上找了很久才找到以下资料。感觉很好就贴出来,大家共享。
1.
#define min(x,y) (x
2.
3.
#符号把一个符号直接转换为字符串,例如:
#define STRING(x) #x
const char *str = STRING( test_string ); str的内容就是"test_string",也就是说#会把其后的符号直接加上双引号。
##符号会连接两个符号,从而产生新的符号(词法层次),例如:
#define SIGN( x ) INT_##x
int SIGN( 1 );
4.
#define LOG( format, ... ) printf( format, __VA_ARGS__ )
LOG( "%s %d", str, count );
__VA_ARGS__是系统预定义宏,被自动替换为参数列表。
5.
#define TEST( x ) ( x + TEST( x ) )
TEST( 1 );