C 的foreach
那位大虾用#define玩过foreach?搞个通用点的瞻仰一下。
下面的是我写的,太简单了。抛砖引玉
#define SIZE(array) sizeof (array) / sizeof *(array)
#define foreach(x,array) for(int* x = array; x< array+SIZE(array);x++)
int main(void){
int arr[5]={1,2,3,4,5};
int size = sizeof (arr) / sizeof *(arr);
printf("arr=[ ");
for(int* x = arr; x< arr+size ;x++){
printf("%d ", *x);
}
printf("]\n");
foreach(x,arr){
*x+=10;
printf("value: %d\n", *x);
}
return 0;
}
纯C for?each #define
[解决办法]
boost里面有个foreach宏
[解决办法]
foreach(x,arr){
你这个神秘的标示符 x 是怎么出现的
对于一个对这个 宏实现 一无所知的人 能用好这个宏吗?
[解决办法]
惭愧,能力有限,搞不定。
[解决办法]
Qt里面自带forreach,你可以去看看源码研究研究
[解决办法]
知道foreach的人就知道怎么用这个x
知道foreach的人 都知道 那个变量得定义了 才用
Java
foreach(int x : nArr)
C#
foreach(int i in nArr)
现在C你用宏
无法在()里面定义变量
那么你应该是在外面定义变量之后 作为一个参数
填进foreach
而不是 什么信息都 突然冒出一个 标示符
逻辑上断层了