【求救】vs2010编译错误error C2099

phis4 2013-11-09 12:58:39
移植的linux下的 .c代码,在vs2010下编译报错 c2099,请问如何解决
代码大意如下:
typedef struct aaa {
const char *a_string;
const char *b_string;
} aaa;

const aaa yesno = { "yes", "no" };


void func(void)
{
const void *tmp = (const struct aaa*)(&yesno);//error C2099}
...全文
318 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Qyee16 2013-11-10
  • 打赏
  • 举报
回复
phis4 2013-11-09
  • 打赏
  • 举报
回复
引用 4 楼 derekrose 的回复:
你确定是 const void *tmp = (const struct aaa*)(&yesno);//error C2099} 这一行报错么? 去掉之后可以work吗?
搞定了,刚才那个链接里面看到了 compile this source with /P (Project | >Settings | C/C++ | Preprocessor | Generate Preprocessed File)设置为/P就可以了
derekrose 2013-11-09
  • 打赏
  • 举报
回复
你确定是 const void *tmp = (const struct aaa*)(&yesno);//error C2099} 这一行报错么? 去掉之后可以work吗?
phis4 2013-11-09
  • 打赏
  • 举报
回复
引用 2 楼 derekrose 的回复:
const aaa yesno = { "yes", "no" }; 是说{}这个表达式编译器无法判定是常量吗?我不太确定
还有人没睡呢, 应该不是这个意思,gcc可以编译过去 msdn上有个类似的,加了static还是不行 http://social.msdn.microsoft.com/Forums/vstudio/en-US/a32eee85-d949-4dc5-b859-a71628d67d1f/visual-c-2010-express-c2099-error-for-structures-initialized-with-constants-in-a-macro?forum=vclanguage
derekrose 2013-11-09
  • 打赏
  • 举报
回复
const aaa yesno = { "yes", "no" }; 是说{}这个表达式编译器无法判定是常量吗?我不太确定
phis4 2013-11-09
  • 打赏
  • 举报
回复
错误打印消息: error C2099: 初始值设定项不是常量

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧