用于结构/类数据对齐和填充的算法?

| 我似乎找不到有关如何在C,C ++中的结构或类中计算填充的任何信息。 在HLSL中,有一个称为\“ Constant Variables \”的数据结构,它们非常类似于启用了“ 0”的C结构。这是有关HLSL中常量变量的更多信息的链接。 我遇到的问题是尝试创建结构格式描述符。解析HLSL代码后,常量描述符将包含有关包含在常量变量struct中的数据类型的信息。它将描述每个成员变量的数据类型,其偏移量和结构的总大小。我遇到的麻烦是由于填充而无法确定结构的最终大小。 如果有用于此的算法,那么我应该能够对其进行编码,并计算HLSL中任何\“ Constant Variable \”的实际填充大小。问题是我不知道它是什么,也不知道在哪里可以找到它?     
已邀请:
           我的问题是询问用于使#pragma pack 4正常工作的算法。 (例如,它是一次查看结构​​中的一个变量,并使用某种最大大小测试来确定填充位置,还是分析整个结构并以某种方式对数据进行随机排序。) 编译器无法以C风格的结构随机播放数据。 C保证成员的分配完全按照声明的顺序进行。任何填充都必须在成员之间或结构的末尾。 具有访问说明符的C ++类不必与C兼容,因此允许某些重新排序。     

要回复问题请先登录注册