字符串变小写
ngx代碼中,字符轉化為小寫的宏是:
#define ngx_tolower(c)?? (u_char) ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)
如果c在[A, Z]之間,與上0x20,就會變成小寫的字符。原因是A === 0x41,Z===0x5A,41的二進制表示為0100 0001,5A的二進制表示為0101? 1010,而0x20的二進制表示為0010? 0000。大寫字母的高4位中的第三位是0,與上0x20之后變?yōu)?,就相當于加了0x20。而位運算比算術運算要快,所以使用位運算。
這個小技巧可以學習。
總結
- 上一篇: Nginx源码分析-内存池
- 下一篇: 不知道自己是否适合做产品经理