我正在浏览一些我从互联网上下载的代码(Got it here)
我对这行代码感到困惑......究竟是做什么的?
#define N_RANDOM_WORDS (sizeof(randomWords)/sizeof(NSString *))
这是“randomWords”数组:
static NSString *randomWords[] = {
@"Hello",
@"World",
@"Some",
@"Random",
@"Words",
@"Blarg",
@"Poop",
@"Something",
@"Zoom zoom",
@"Beeeep",
};
答案 0 :(得分:5)
sizeof(randomWords)
给出数组占用的字节数。数组的每个元素都是NSString
指针。 sizeof(NSString*)
给出每个指针的大小。因此,将总大小除以每个元素的大小给出了元素的数量。
N_RANDOM_WORDS
是一个定义的宏。无论在何处使用,表达式sizeof(randomWords)/sizeof(NSString*)
都将由预处理器插入其位置。这通常是在C或Objective C中定义常量的方式。
有关C(和目标C)中的宏的更多信息,请here's a nice tutorial。
答案 1 :(得分:1)
一个NSString*
占用sizeof(NSString*)
个字节。 randomWords
的尺寸为N * sizeof(NSString)
。因此,求解N
,您得到N = sizeof(randomWords)/sizeof(NSString *)
。