巧用多字符Char

  • 转自http://blog.sunnyxx.com/archives/page/4/

我们很熟悉char这个数据类型和它的使用方式:

char c = 'a';

这个c变量在ASCII编码下是97

还有一种不常见的字符char的写法:

int i = `AaBb';

这个i变量的值按每个charASCII值转十六进制拼在一起,也就是说:

`AaBb`
-> '0x41'+'0x61'+'0x42'+'0x62'
-> '0x41614262' // 十进制1096893026

PS:这个组合方式和“大小端”有关系,上面是i386下的结果,多字符的长度限度为最多4个char知道了这个特效,我们就可以做些坏事,比如:

self.someButton.tag = 'SHIT';
...
if (button.tag == 'SHIT') {
    NSLog(@"I've got this shit button");
}

当然使用tag是很不推荐的写法,尽量不用。使用这个特性来避免些魔法数字或标记些整型数字还是极好的。

你可能感兴趣的:(巧用多字符Char)