我的C语言笔记之经典代码(一)

1 综述

在实际工作学习中,经常会看到比较经典或实用的代码,记在本子上或word文档总会不太方便查阅,因此单独开一片文章来记录。

2 宏定义之大括号

在使用CC254x的时候我发现了如下代码:

#define st(x)      do { x } while (__LINE__ == -1)
该宏定义的作用相当于一个大括号,将其中x代表的所有代码包括在一起,__LINE__是IAR内部宏定义,表示当前的行号,因为行号不可能等于-1,因此这个do while只会执行一次,目的就是包含x表示的所有代码。(疑问:__LINE__是如何定义的?怎么找不到?)【END/2016-04-07】

3 常用宏定义

3.1 移位

//Macros
#ifndef BV
#define BV(n)      (1 << (n))
#endif
通过这个宏定义可以方便的将某一位变成0或1。

某位置0:P1_0 &= ~BV(1);
某位置1:P1_0 |= BV(1);

【END/2016-04-12】

3.2 获得最值

#ifndef MIN
#define MIN(n,m)   (((n) < (m)) ? (n) : (m))
#endif

#ifndef MAX
#define MAX(n,m)   (((n) < (m)) ? (m) : (n))
#endif
【END/2016-04-12】

你可能感兴趣的:(我的C语言笔记之经典代码(一))