簡體   English   中英

使用C語言進行類型轉換

[英]Type Casting in C language

如何進行類型轉換(u32IDLHeaderAddress + FIOL__nFEEIDLHeaderLength)以避免違反約束?

函數聲明-

       Finit(const uint16 (*pastIDLTable)[2], uint16 u16NrOfDataset);

函數稱為-

      Finit((u32IDLHeaderAddress + IDLHeaderLength),
            (((*(uint32 *)(u32IDLHeaderAddress + 4) - FIOL__nFEEIDLHeaderLength)/4)));

對於提供的函數聲明,第一個參數強制轉換應如下所示

(const uint16 (*)[2]) (u32IDLHeaderAddress + IDLHeaderLength)

盡管很難知道u32IDLHeaderAddress的確切類型,但很難說這是產生約束違規的第一個參數。

您出於某種原因似乎認為這是第二個。 第二個參數對我來說很好-它已經包含了所需的所有強制類型轉換(盡管看起來有些“用括號括起來”)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM