我们很熟悉char
这个数据类型和它的使用方式:
char c = 'a';
这个c
变量在ASCII
编码下是97
还有一种不常见的字符char
的写法:
int i = `AaBb';
这个i
变量的值按每个char
的ASCII
值转十六进制拼在一起,也就是说:
`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是很不推荐的写法,尽量不用。使用这个特性来避免些魔法数字或标记些整型数字还是极好的。
网友评论