#pragma pack() 引发的问题
来源:互联网 发布:java培训工资 编辑:程序博客网 时间:2024/06/02 04:17
记录下最近遇到的问题,写了一个类,声明如下:
class DeletedFile{public:virtual size_t Read(char *pBuf, size_t nBufSize) = 0;virtual INT32 Seek(INT32 nOffLow, INT32 *nOffHigh, UINT32 nMoveMethod); //参考了SetFileFilter的定义DeletedFile(const char *pFileName, UINT64 nInFileIndex, UINT64 nInFileSize);UINT64 GetFileSize();protected:UINT64 nFileIndex; //删除文件的簇号UINT64 nFileSize; //删除文件的大小UINT64 nCurPosition; //当前读取到的位置(在文件中)};
奇葩的问题来了,后面在构造函数中对成员赋值一直出错,如下:
最终才发现是另一个头文件中的#pragma pack()未关闭引发的问题,stackflow上也有关于这种问题的解释:
http://stackoverflow.com/questions/21474802/c-wrong-values-with-pragma-pack
引用其中的话
“Without this, having the packing done via a separate header will lead to confusions, when it's added in one TU while not in another TU.”
0 0
- #pragma pack() 引发的问题
- 关于#pragma pack(n)引发的一系列问题
- 记录#pragma pack()的问题
- #pragma pack(N) 导致的一个问题
- #pragma pack()相关问题
- #pragma pack的作用
- #pragma pack 的用法
- pragma pack的用法
- #pragma pack的作用
- #pragma pack的作用
- vxwork的奇怪问题 warning: malformed `#pragma pack'
- 关于pragma pack的用法--------------C++中的内存对齐问题
- 关于pragma pack的用法 C++中的内存对齐问题
- 关于pragma pack的用法C++中的内存对齐问题
- #pragma pack(push,1)与#pragma pack(1)的区别
- #pragma pack(push,1)与#pragma pack(1)的区别
- #pragma pack(push,1)与#pragma pack(1)的区别
- #pragma pack(push,1)与#pragma pack(1)的区别
- Spring framework不同Scope的Bean注入时使用代理类的理解
- Xcode6的项目放到Xcode7中无法运行问题汇总
- Python - Socket 基础
- JS阻止事件冒泡
- @RequestBody、@ResponseBody的使用方法
- #pragma pack() 引发的问题
- 在 CentOS 5.8 上安装 Graphite
- Java构造方法小总结
- 如何获取显示器的EDID信息
- UnsupportedClassVersionError:JVMCFRE003bad 问题分析与解决
- SDK23 读取联系人 权限拒绝
- 关于pthread_mutex_t的初始化 http://www.blogbus.com/kavine-logs/46146510.html
- 使用GDB调试android模拟器
- 关于layoutSubviews那些事