| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1879 人关注过本帖, 2 人收藏
标题:想请问一下 C 里面就没有 int arr[10] = { [ 0 ... 9 ] }; 的这样一种赋值方 ...
只看楼主 加入收藏
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
结帖率:98.63%
收藏(2)
已结贴  问题点数:20 回复次数:20 
想请问一下 C 里面就没有 int arr[10] = { [ 0 ... 9 ] }; 的这样一种赋值方法,
想请问一下 C 里面就没有 int arr[10] = { [ 0 ... 9 ] }; 的这样一种赋值方法,

调试了一下,不能通过, 早上看到一段代码不是很理解,所以想确定一下

如果没有的话,下面这句就不知道该怎么理解了

static pidmap_t pidmap_array[PIDMAP_ENTRIES] =
          { [ 0 ... PIDMAP_ENTRIES-1 ] = { ATOMIC_INIT(BITS_PER_PAGE), NULL } };


其中
typedef struct pidmap {

         atomic_t nr_free;

         void *page;

} pidmap_t;


#define ATOMIC_INIT(i)  { (i) }

如果没说错,上面那句应该是给若干个结构体赋了初始值吧


[ 本帖最后由 madfrogme 于 2012-9-24 12:51 编辑 ]
搜索更多相关主题的帖子: void 
2012-09-24 11:40
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
... 这个东西倒是有 貌似是用于不定数量的参数的
2012-09-24 11:47
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:0 
学习

实现自己既定的目标,必须能耐得住寂寞单干。
2012-09-24 12:30
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用madfrogme在2012-9-24 11:40:48的发言:

想请问一下 C 里面就没有 int arr[10] = { [ 0 ... 9 ] }; 的这样一种赋值方法,
 
调试了一下,不能通过, 早上看到一段代码不是很理解,所以想确定一下
 
如果没有的话,下面这句就不知道该怎么理解了
 
static pidmap_t pidmap_array[PIDMAP_ENTRIES] =
          { [ 0 ... PIDMAP_ENTRIES-1 ] = { ATOMIC_INIT(BITS_PER_PAGE), NULL } };
 
 
其中
typedef struct pidmap {
 
         atomic_t nr_free;
 
         void *page;
 
} pidmap_t;  
 
 
#define ATOMIC_INIT(i)  { (i) }
 
如果没说错,上面那句应该是给若干个结构体赋了初始值吧

试了一下 你举的那个例子是编译不过的 但根据你帖的代码设计的一段代码是可以的 貌似是数组赋值的一种写法罢 就好像

a[0] = {1, 2};
a[1] = {1, 2};

依此类推 如果我能把它写成一句 那就是上面的那种
2012-09-24 12:50
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
int aaa[N] = { [0 ... N - 1] = {555} };

嘿 还真编译过了 虽然有warning
2012-09-24 12:54
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:2 
以下是引用zklhp在2012-9-24 12:54:53的发言:

int aaa[N] = { [0 ... N - 1] = {555} };

嘿 还真编译过了 虽然有warning
int aaa[N] = { [0 ... N - 1] = 555 };

上面的那个迷糊了 这个是对的 没warning
2012-09-24 12:57
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
谢了,看来这种格式还真可以

The quieter you become, the more you can hear
2012-09-24 13:04
紫炎菊畔
Rank: 2
等 级:论坛游民
帖 子:12
专家分:22
注 册:2012-9-14
收藏
得分:0 
我不太懂,冒昧的问下,赋值{}中的[]是不是多余的啊?
2012-09-24 13:11
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
我也解释不清,貌似不是多余的

The quieter you become, the more you can hear
2012-09-24 13:16
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:2 
那个[]和{}不是多余的,用[]表示这个变量是个数组变量,这个数组变量里面可以存放多个单一的普通变量,分别是:数组名[0]、数组名[1]、数组名[2]……不加[]那么这个变量就是个普通的变量了。
而{}也不是多余的,在定义数组变量的时候就赋值就需要用到{}用一个{}括起来的值分别是一个数组变量的值,如a[5]={1,2,3,4,5};
用三个{}括起来的值分别是两个数组变量的值,如a[2][3]={{1,2,3}{4,5,6}};
前面的1,2,3对应的变量名是a[0][0]、a[0][1]、a[0][2],后面的4,5,6对应的变量名是a[1][0]、a[1][1]、a[1][2],最后用个{}把他们都括起来说明他们都是赋给了数组a。
2012-09-24 13:33
快速回复:想请问一下 C 里面就没有 int arr[10] = { [ 0 ... 9 ] }; 的这样一种 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019144 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved