首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C 的foreach解决方案

2013-07-08 
C 的foreach那位大虾用#define玩过foreach?搞个通用点的瞻仰一下。下面的是我写的,太简单了。抛砖引玉#defin

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 是怎么出现的 

对于一个对这个 宏实现 一无所知的人 能用好这个宏吗?
[解决办法]
引用:
Quote: 引用:

再定义一个宏in啊。

怎么搞咧?

惭愧,能力有限,搞不定。
[解决办法]
Qt里面自带forreach,你可以去看看源码研究研究
[解决办法]
引用:
知道foreach的人就知道怎么用这个x

知道foreach的人 都知道 那个变量得定义了 才用
Java
foreach(int x : nArr)

C#
foreach(int i in nArr)

现在C你用宏 
无法在()里面定义变量 
那么你应该是在外面定义变量之后 作为一个参数
填进foreach

而不是 什么信息都 突然冒出一个 标示符 
逻辑上断层了 

热点排行