gpt4 book ai didi

objective-c - 如何计算 #define 中的元素数量

转载 作者:行者123 更新时间:2023-12-03 16:43:18 24 4
gpt4 key购买 nike

如何获取宏定义中的元素数量,如下所示:

#define myThings @"A",@"B",@"C",@"D",@"E"

如何从 myThings 获取答案 5?

[myThings count] 不起作用...

最佳答案

定义是文本的字面替换:它可以像这样的代码工作吗

  [@"A", @"B", @"C" count];

?如果答案是否定的,那就行不通,那么这就是你的问题了。你可以这样做

  [[NSArray arrayWithObjects: myThings, nil] count];

这应该可行,但我根本不建议使用这种“模式”。

添加

另一种计算值数量的方法如下:

  NSString *arr[] = {myThings};
size_t cnt = sizeof(arr)/sizeof(NSString *);

这是了解 arr 中有多少元素的 C 常用方法。再次强调,myThings字面上替换为您使用 #define 定义的任何内容,因此结果与

  NSString *arr[] = {@"A", @"B", @"C", @"D", @"E"};

添加2

请注意,如果您不“真正”使用 arr,优化会将其删除,并且不会“浪费空间”。

但是,另一种解决方案是计算传递给宏的参数数量,以便将 CountingMacro(myThings) 替换为 5。 This SO answer在这种情况下可能会有所帮助。

关于objective-c - 如何计算 #define 中的元素数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10573836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com