首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何确保两种类型的大小相同?

如何确保两种类型的大小相同?
EN

Stack Overflow用户
提问于 2011-10-05 06:15:09
回答 3查看 442关注 0票数 6

在我的代码中,我想确保sizeof(a) == sizeof(b)

第一种方法是让预处理器进行检查:

代码语言:javascript
复制
#if (sizeof(a) != sizeof(b))
#  error sizes don't match
#endif

因为fatal error C1017: invalid integer constant expression而不能编译。好吧。明白了。

下一个尝试:

代码语言:javascript
复制
if(sizeof(a) != sizeof(b)){
  printf("sizes don't match\n");
  return -1;
}

这导致了一个警告:warning C4127: conditional expression is constant

现在我被困住了。是否有一种无警告和无错误的方法来确保两个结构ab具有相同的大小?

编辑:编译器是Visual 2005,警告级别设置为4。

EN

Stack Overflow用户

发布于 2011-10-05 06:38:43

虽然可以与编译器玩捉迷藏,在编译器看不到的地方隐藏常量条件,但这并不是抑制警告的最佳方法。对于下一个要维护代码的人来说,这只会使代码显得不必要的模糊。

如果需要禁止编译器警告,请明确说明。在Visual 2005中,最好使用语用:

http://msdn.microsoft.com/en-us/library/2c8f766e(v=vs.80).aspx

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7657362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档