C使用

1.理解回调函数

https://blog.csdn.net/zhuwentao2150/article/details/51006347

2.pthread_cond_init()

https://www.cnblogs.com/secondtonone1/p/5580203.html
g_thread_exit和join的区别是join必须等待所有事情结束,比如线程里面有loop,必须先退出

3.attribute((visibility(“default”)))(同名函数库链接问题)

https://blog.csdn.net/mutourenzhang/article/details/47803803

4.Linux系统获取用户空间ns级时间精度——clock_gettime

https://blog.csdn.net/zhao_h/article/details/80661111

5.gcc/g++实战之动态链接库与静态链接库编写

https://www.cnblogs.com/zjiaxing/p/5557629.html

6.字节对齐全解(同时考虑评论中首地址对齐情况)

https://www.cnblogs.com/hummersofdie/p/3140477.html

7.避免过多的switch…case

函数法->map法->工厂方法(new),switch case存在但变小,推荐
https://blog.csdn.net/acaiwlj/article/details/49444099
所有分享类型预先缓存在Map里,那么就可以直接get获取具体类型
https://juejin.im/entry/5a770c7d6fb9a0633d71b1fa
[查表,map应用]https://blog.csdn.net/lihua5419/article/details/83014810
1.匹配到返回结果,没匹配到保持原结果
2.同对象,同参数,临时map
[尽可能地维持正常流程代码在最外层。]https://blog.csdn.net/qq_35440678/article/details/77939999

8.避免引入更多的头文件

1.使用前置声明: 引用/指针/返回值/void*(强转),用
2.struct: 头文件里是声明,定义放到.c里,但外面不能直接调用而是要通过函数的方式

9.++i, i++

https://blog.csdn.net/u012247418/article/details/84675213
++i,先自增,后引用,
i++,先引用,后自增。
从编译器的角度理解

  1. a[j++]=j++; a[0] = 1, j = 2
  2. a[j++] = j;a[0] = 1, j = 1
  3. a[j] = j ++;a[1] = 0, j = 1
10.枚举用位偏移定义来提高效率
5. /**
 * Memory access flags.
 */
typedef enum Access
{
    None        = 0,
    Readable    = 1 << 0,
    Writable    = 1 << 1,
    Executable  = 1 << 2,
    User        = 1 << 3,
    Uncached    = 1 << 4,
    InnerCached = 1 << 5,
    OuterCached = 1 << 6,
    Device      = 1 << 7
}
if (A_flag & B)// A flag 是否含有B
A_flag |= B	 		// A_flag加入B

为了提高效率所有的IO操作函数全部都是inline
&=~的功能是什么:PCAOMD &=~0x40 相当于
PCAOMD =PCAOMD&~0x40
PCAOMD =PCAOMD& 0xbf
就是把 PCAOMD的第6位清0
11.结构体中最后一个成员数组定义0个元素的意义
https://blog.csdn.net/iliujie/article/details/77619888
12.重构
https://www.jianshu.com/p/3b34f337eaee
13 二维数组传参
本质上是二维数组退化为char (*a)[]和char**不同。
https://www.cnblogs.com/zl1991/p/4748733.html
1.[snprintf]https://blog.csdn.net/czxyhll/article/details/7950247
14 gtest
https://www.jianshu.com/p/b8d3e6f6a20a
15 printf打印界面以及printf输出颜色
https://blog.csdn.net/Rong_Toa/article/details/80182043
**16 使用变量定义长度时
,不可在定义时同时进行初始化赋值,需要在之后进行赋值
** 17 linux top命令看到的实存(RES)与虚存(VIRT)分析
C语言内存使用的常见问题及解决之道

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值