簡體   English   中英

從指針到uint32的類型轉換

[英]Typecasting from pointers to uint32

我正在瀏覽鏈接描述文件,發現以下代碼行,我無法理解此處使用的類型轉換概念。

extern std::uintptr_t   __sROData_LMA[]; /* start of LOAD region for DATA */
uint32_t * p_src, * p_dest;
#ifdef XMC_BOOT
    // Copy the rodata segment initializers from ROM to RAM.
    // Note that all data segments are aligned by 4.
    p_src  = static_cast<uint32_t *>(static_cast<void*>(__sROData_LMA));
    p_dest = static_cast<uint32_t *>(static_cast<void*>(__sROData));
    while (p_dest < static_cast<uint32_t*>(static_cast<void*>(__eROData)))
    {
        *p_dest++ = *p_src++;
    }
#endif

p_src = static_cast<uint32_t *>(static_cast<void*>(__sROData_LMA)); 在程序中意味着什么? 在這里如何進行類型轉換? 提前致謝。

事實是,您不能取消引用空指針,而只能取消引用uint32_t指針。 該代碼本身用於Copy the rodata segment initializers from ROM to RAM. ,這是ELF二進制文件所需的afaik。 實際上,這是一種mempcy

暫無
暫無

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

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