c – Visual Studio sizeof()差异IntelliSense与编译时的区别
发布时间:2020-12-16 09:59:57 所属栏目:百科 来源:网络整理
导读:我的代码看起来像这样: #include stdio.h#pragma pack(1)class MyClass{ bool a; bool b; int c; char d[3]; bool e[4];};#pragma pack()int main(){ printf("sizeof(MyClass)=%dn",sizeof(MyClass)); return 0;} 输出是: sizeof(MyClass)=13 但当我“悬
我的代码看起来像这样:
#include <stdio.h> #pragma pack(1) class MyClass { bool a; bool b; int c; char d[3]; bool e[4]; }; #pragma pack() int main() { printf("sizeof(MyClass)=%dn",sizeof(MyClass)); return 0; } 输出是: sizeof(MyClass)=13 但当我“悬停”在sizeof(MyClass)上时,我得到: 这不是一个大问题,但我正在尝试实现编译时断言,但它不起作用(获得红色下划线): 任何人都知道如何解决这个问题? 解决方法
这不是编译时和运行时之间的区别;它是您的编译器和IDE的“intellisense”之间的区别,后者似乎不支持/识别#pragma pack指令.
忽略它.大小是13. 既然你可以实际构建你的程序,你知道编译时断言成功,尽管有“红线”. 在断言之前添加注释可能是值得的,并解释说Visual Studio 2015的用户会在IDE中看到以下断言的错误否定. 您可能还希望在Microsoft Connect上引发错误,如果还没有. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 异常The file cannot be validated as the XML d
- 如何使用XML :: Twig从URL中提取一些XML数据?
- 解决“No 'Access-Control-Allow-Origin'
- 代码文件中的c# – {GUID} .method $$****.不编译
- c# – 调用多个存储过程的最快代码是什么?
- 查看oracle建表语句
- React Native网络请求学习笔记(Android版本)
- xml:如何在.xml文件中引用.xsd文件?
- .net – `x <> Nothing` vs`x IsNot Nothing`
- 如何在Swift中更改自定义结构和类的默认嵌入字符
热点阅读