C语言易错用法

本文介绍了C语言中的一些易错用法,包括extern声明数组、指针加1、三目运算符、条件编译和位操作运算符的使用。同时提出了良好的C语言编程风格,如typedef枚举定义、宏定义以及指针变量的应用。

一:怎样用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 语言三目运算符 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、指针变量存在的意义就是指向别人。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值