【发布时间】:2015-07-14 13:59:13
【问题描述】:
为什么下面的代码会给我一个“丢弃限定符”警告?
double* const a[7];
memcpy(a,b,sizeof(double*)*7);
我在使用 Apple LLVM 6.1.0 版 (clang-602.0.53)(基于 LLVM 3.6.0svn)时遇到的错误是
warning: passing 'double *const [7]' to parameter of type 'void *' discards qualifiers
编辑:
奖金问题。为什么restrict关键字也不起作用?
double* restrict a[7];
memcpy(a,b,sizeof(double*)*7);
编辑 2:
我问这个问题,因为我希望 a 成为 const restrict 指针。我可以用这段代码得到这个结果:
double* const restrict a[7] = {b[0], b[2], ... b[7]};
这是一件愚蠢的事情吗?
【问题讨论】: