[英]convert const char * to struct tm under Android with C++
[英]C++ - Convert struct to char
我需要转换此结构
typedef struct zidrecord2 {
char version;
char flags;
char filler1;
char filler2;
unsigned char identifier[IDENTIFIER_LEN];
unsigned char rs1Interval[TIME_LENGTH];
unsigned char rs1Data[RS_LENGTH];
unsigned char rs2Interval[TIME_LENGTH];
unsigned char rs2Data[RS_LENGTH];
unsigned char mitmKey[RS_LENGTH];
}
到char *
或允许再次回滚到该对象的另一个对象,我尝试这样做:
zidrecord2_t* amostra = zidRecord->getRecordData();
const char *recordData = reinterpret_cast<const char*>(zidRecord->getRecordData());
__android_log_print(ANDROID_LOG_INFO, "MyTag", "The value is %s",recordData);
amostra = reinterpret_cast<zidrecord2_t*>(recordData);
__android_log_print(ANDROID_LOG_INFO, "MyTag", "The value is %s",recordData);
但是我收到以下错误:
error: reinterpret_cast from type 'const char*' to type 'zidrecord2_t* {aka zidrecord2*}' casts away qualifiers
amostra = reinterpret_cast<zidrecord2_t*>(recordData);
我该如何解决这个问题? 或以其他方式实施?
amostra = reinterpret_cast<const zidrecord2_t*>(recordData);
从const
为const
。
如果要抛弃const
,请从头开始使用非const
指针。
您可以添加用户定义的转换运算符:
因此,您的代码可能如下所示:
typedef struct zidrecord2 {
char version;
char flags;
char filler1;
char filler2;
unsigned char identifier[IDENTIFIER_LEN];
unsigned char rs1Interval[TIME_LENGTH];
unsigned char rs1Data[RS_LENGTH];
unsigned char rs2Interval[TIME_LENGTH];
unsigned char rs2Data[RS_LENGTH];
unsigned char mitmKey[RS_LENGTH];
operator char*() const { return ConvertToCharPointerHere();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.