编程技巧

1. 宏定义用法

<span style="font-family:Microsoft YaHei;font-size:12px;">#define __TERM_RES_ON(pin) \
            do { \
                aw_gpio_pin_cfg( (pin), AW_GPIO_OUTPUT); \
                aw_gpio_set((pin), 1); \
            } while(0)</span>
2. 只在内部源文件使用的函数/变量加static,即使外部有同名函数也不必担心。

3. 这排版不错

    static uin32_t __ts_get (int                    id,
                             aw_can_bus_err_t       err,
                             aw_can_bus_status_t    sta);
4.使用const struct candtu_can_funs *p_funs 所赋的值必须为常量地址
5.本地结构体最好加static

6. 本地全局变量前面加__g

7. 被保护的共享资源在中断上下文中被访问,必须使用自旋锁。若在进程上下文中被访问可使用信号量,若时间较短也可使用自旋锁。

8. 使用 xxx ?xxx:xxx 看起来也很高级哦。

9. int 赋值给 char, 使用char & 0xFF看起来好一点。

10. 在init函数的形参中留一个指针结构体集合,其包含多个函数的指针,意图是登记函数,当程序往下执行触发了某个条件即可执行其中的函数。

11. 结构体集体赋值 ={}

12. 当两个线程的操作函数是同一个,应该加锁(互斥量)保护共享资源。

13. #define FOO(arg) my##arg >> FOO(abc)相当于myabc

14. #是“字符串化”的意思。#abc相当于“abc”

15. ## 就算前后都有空格,但是还是会被强连接

16. 逐个循环比较中,如果不符合用continue

17. 在结构体里添加标志flag及函数指针,flag用于保存当前已完成及未完成的时间,函数指针可通过结构体传递使得函数调用更加随意。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值