草庐IT

c++ - 在 C++ 中检查结构是否良好对齐或包含间隙

我有一个问题,应该在编译时检查一个结构,它是否对齐良好或是否包含间隙。检查可以在额外的测试代码中完成,但我不希望在真正的实现代码中“打包”数据。这是一个带有典型包含保护的示例头文件(MyData.h):#ifndefMYDATA_H_#defineMYDATA_H_structuneven{intbla_u32;shortbla_u16;charbla_u8;/*我找到了一种可能的解决方案-见下文。问题:有没有一种优雅的方法来检查结构uneven与编译时的未打包对应结构相比是否包含不同数量的字节?是否有可能在C中工作的解决方案(不使用命名空间)? 最佳答案

c++ - 如何在 C 或 C++ 中检查结构是否为 NULL

我有以下结构typedefstruct{chardata1[10];chardata2[10];AnotherStructstData;}MyData;由于某种原因,实现者选择不将stData作为指针,所以我不得不忍受。我的问题是如何检查stData成员是否为空?因为如果它是空的,我需要跳过代码中的某些内容。感谢任何帮助 最佳答案 您需要一些方法将AnotherStructstData标记为空。首先检查(或复查)与AnotherStruct相关的文档和注释,可能会询问制作它的人是否可用,以了解是否有官方方法做你想做的。也许那个str