【发布时间】:2018-11-07 00:29:59
【问题描述】:
我最近继承了一些 Objective-C 代码,但对它实际上在做什么感到很困惑?
1) 我不明白为什么 char byte_chars[3] 会先填充“0”,然后填充 0?
2) 我不明白他们为什么将unsigned char 用于整个字节,但要花很长时间?
3) 我对 strtol 方法在这里做了什么有点困惑,它需要 3 个 byte_chars 字节(是十六进制),然后将它们转换为 long?
- (NSString *)starFromFlags:(NSString *)flags {
unsigned char wholeByte;
char byte_chars[3];
NSString *star = @"NO";
byte_chars[0] = '0';
byte_chars[1] = [flags characterAtIndex:1];
byte_chars[2] = 0;
wholeByte = strtol(byte_chars, NULL, 16);
if (wholeByte & 0x01) star = @"YES";
return star;
}
【问题讨论】:
标签: c objective-c strtol