【发布时间】:2015-11-09 08:47:05
【问题描述】:
我尝试关注以下link 以启动我的数据:
struct dmparam {
char *p;
char *v;
};
struct dmobj {
int a;
int b;
const struct dmparam * const *dmparam;
};
const struct dmobj dmobj[] = {
{1, 11, NULL},
{2, 22,
(struct dmparam * const []) {//params
{"p1", "v1"},
{"p2", "v2"},
}//params
},
{3, 33, NULL},
};
但我在编译时收到警告
test.c:35:3: warning: braces around scalar initializer [enabled by default]
{"p1", "v1"},
^
test.c:35:3: warning: (near initialization for ‘(anonymous)[0]’) [enabled by default]
test.c:35:3: warning: initialization from incompatible pointer type [enabled by default]
test.c:35:3: warning: (near initialization for ‘(anonymous)[0]’) [enabled by default]
test.c:35:3: warning: excess elements in scalar initializer [enabled by default]
test.c:35:3: warning: (near initialization for ‘(anonymous)[0]’) [enabled by default]
test.c:36:3: warning: braces around scalar initializer [enabled by default]
{"p2", "v2"},
^
test.c:36:3: warning: (near initialization for ‘(anonymous)[1]’) [enabled by default]
test.c:36:3: warning: initialization from incompatible pointer type [enabled by default]
test.c:36:3: warning: (near initialization for ‘(anonymous)[1]’) [enabled by default]
test.c:36:3: warning: excess elements in scalar initializer [enabled by default]
test.c:36:3: warning: (near initialization for ‘(anonymous)[1]’) [enabled by default]
test.c:38:2: warning: initialization from incompatible pointer type [enabled by default]
},
^
test.c:38:2: warning: (near initialization for ‘dmobj[1].dmparam’) [enabled by default]
我错过了什么?
【问题讨论】:
-
还有这个问题吗?您希望通过
(struct dmparam * const []) { ... }实现什么?struct dmobj的dmparam是指向dmparam的指针。你能澄清一下你的目标吗? -
1) 不要为类型和变量/字段使用相同的名称。 2) 你需要指针的地址。
-
@FilipeGonçalves:如果这是一个重复,你有链接吗?
-
@Olaf 他两天前问了一个代码非常相似的问题:stackoverflow.com/questions/32014285/…
-
@FilipeGonçalves:同意。那是一个骗局,你得到了答案。
标签: c