【发布时间】:2021-04-04 15:37:42
【问题描述】:
我试图了解在以下代码中类型转换的作用
UA_Variant Variant;
Int32_t Variable;
variable = *(int32_t *) Variant.data;
printf("%d", variable);
这是UA_Variant的结构
typedef struct
{
const UA_DataType *type; /* The data type description */
UA_VariantStorageType storageType;
size_t arrayLength; /* The number of elements in the data array */
void *data; /* Points to the scalar or array data */
size_t arrayDimensionsSize; /* The number of dimensions */
UA_UInt32 *arrayDimensions; /* The length of each dimension */
} UA_Variant;
这一行发生了什么
variable = *(int32_t *) Variant.data;
是否将 Variant 中的数据类型转换为 int32_t,然后将其指针放入变量中,如果是,为什么我可以打印出存储在变量中的值?
【问题讨论】: