编写时间:2018年10月24日22:22:51
修改时间:2018年10月26日11:04:09
1. 关键字
1. __thread关键字
线程局部存储(tls)是一种机制,通过这一机制分配的变量,每个当前线程有一个该变量的实例.
__thread可用于全局的变量,文件局部静态变量,函数静态变量或一个类中的静态数据成员。不能用于块作用域,自动或非静态数据成员。
2. __builtin_expect函数
暂时归属到这里,后期再看能不能分开整理。
该函数涉及到编译器优化,该函数的功能就是将大概率发生的指令先放于后面,这样使得跳转的时候可以大概率往下走而不需要跳转。
// 大概率会发生的事情,1不是表示一定发生,而是大概率发生
#define LIKELY(x) __builtin_expect(x, 1)
// 小概率会发生的事情,0不表示一定不发生,而是小概率发生
#define UNLIKELY(x) __builtin_expect(x, 0)
2. 函数
1. strchr函数
#include <string.h>
// 函数的功能为在str中查找字符c第一次出现的位置,并返回该位置的指针。
// 返回的指针和str是共用同一块内存的,也就是修改返回值也会修改参数。
char*