这是我的代码,我尝试迭代int数组并放置它们,如何使其工作?
#include "stdio.h"
#define each(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 main(int argc, char **argv) {
int is[] = {1, 2};
each(int i, is) {
puts(i);
}
return (0);
};
宏正常
each()
环路的呼叫和主体出现故障。
注意,item = (array) + count
正在将count
添加到指针(array
转换为&array[0]
),其结果应该是指针。所以int i
应该是int *i
。
puts(const char *s)
需要一个字符串,而不是int
。
int main(int argc, char **argv) {
int is[] = {1, 2};
// each(int i, is) {
each(int *i, is) {
// puts(i);
printf("%dn", *i);
}
return (0);
};
输出
1
2