一:怎样用extern声明一个数组为外部数组:

方法一:

1、首先定义一个数组,u8 USART_RX_BUF[100];

2、extern u8 USART_RX_BUF[];

方法二:

1、首先定义一个数组,u8 USART_RX_BUF[100];

2、定义一个指针,并绑定数组:u8 *pRxBuf = USART_RX_BUF;

3、这样就可以用extern u8 *pRxBuf去声明。间接的访问数组。

注意:不能直接extern u8 USART_RX_BUF[100],而是先要用指针绑定数组,再声明指针。

二:注意指针加1的用法:

C语言易错用法

三:C 语言三目运算符 max = (a > b) ? a : b ;  // 取变量a,b中较大一个,并赋值给变量max

条件运算符的一般格式:

表达式1 ? 表达上2:表达式3

举例如下:

max = (a > b) ? a : b ;  // 取变量a,b中较大一个,并赋值给变量max

四:C语言 条件编译#ifdef

1)条件编译:

#ifdef  标示符

程序段1

#else

程序段2

#endif

例如:

#ifdef STM32F10X_HD

大容量芯片需要的一些变量定义

#endif

五:C语言6种位操作运算符

运算符:

1)& :按位与

2)| :按位或

3)^ : 按位异或

4)~ : 取反

5)<< : 左移

6)>> : 右移

六:程序中比较好的C语言风格:

1、typedef enum {FALSE = 0, TRUE = !FALSE} BOOL;

2、#define BT_STATUS_DET()       GPIO_ReadInputDataBit(GPIOB,  GPIO_Pin_12)

3、#define LED_R(statu)      if(statu==HIGH)  GPIO_SetBits(GPIOA,GPIO_Pin_3);\

                                               else             GPIO_ResetBits(GPIOA,GPIO_Pin_3);

七:指针

1、指针变量和普通变量没有任何区别都是一个变量,所占的地址空间都4字节。

2、指针变量存在的意义就是指向别人。

相关文章: