gpt4 book ai didi

c - C 是否有 "foreach"循环结构?

转载 作者:太空狗 更新时间:2023-10-29 16:14:50 28 4
gpt4 key购买 nike

几乎所有语言都有一个 foreach loop或类似的东西。 C有吗?你能发布一些示例代码吗?

最佳答案

C 没有 foreach,但经常使用宏来模拟它:

#define for_each_item(item, list) \
for(T * item = list->head; item != NULL; item = item->next)

并且可以像这样使用

for_each_item(i, processes) {
i->wakeup();
}

数组的迭代也是可能的:

#define foreach(item, array) \
for(int keep = 1, \
count = 0,\
size = sizeof (array) / sizeof *(array); \
keep && count != size; \
keep = !keep, count++) \
for(item = (array) + count; keep; keep = !keep)

并且可以像这样使用

int values[] = { 1, 2, 3 };
foreach(int *v, values) {
printf("value: %d\n", *v);
}

编辑:如果您也对 C++ 解决方案感兴趣,C++ 有一个原生的 for-each 语法,称为“range based for”

关于c - C 是否有 "foreach"循环结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/400951/

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