![](/img/trans.png)
[英]C++ Error 1 error C2227: left of '->keyPress' must point to class/struct/union/generic type
[英]error C2227: left of '->yr' must point to class/struct/union/generic type
我正在為WinCE編寫加密/解密程序。
當我編譯程序時,出現如下錯誤: 錯誤C2227:'-> yr'的左側必須指向類/結構/聯合/泛型類型
此代碼段是:
void ai(struct AES_ctx* ctx, const uint8_t* key)
{
k(ctx->yr, key);
}
和相應的標頭代碼段:
#define AES_BLOCKLEN 16
#define AES_KEYLEN 32
#define AES_keyExpSize 240
struct AES_ctx
{
uint8_t yr[AES_keyExpSize];
uint8_t Iv[AES_BLOCKLEN];
};
void ai(struct AES_ctx* ctx, const uint8_t* key);
使用StandardSDK_500,ARMv4I編譯器可以正常工作,但是使用MIPSII,我可以做到這一點。
有人可以幫助解決此錯誤嗎?
您的代碼沒有錯:可以編譯。
(如果ctx
是宏,在某些#included
頭文件中定義,則該代碼可能會產生各種錯誤,包括您報告的錯誤,並且可能與編譯器有關;請使用#ifdef ctx ...
測試)
您可能需要運行預處理器(通常使用-E
選項),並查看生成的代碼。
(作為補充,在C ++中,這看起來更像
namespace AES {
constexpr int blocklen=16;
constexpr int keylen=32;
constexpr int keyExpSize=240;
struct ctx {
std::uint8_t yr[keyExpSize];
std::uint8_t Iv[blocklen];
};
// etc
}
即沒有宏,不會污染全局名稱空間。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.