簡體   English   中英

在C中將成本尋址指針從無符號char *轉換為const char *?

[英]Casting cost addressing pointer in c from unsigned char * to const char *?

我想知道在編譯中將有多少計算用於地址轉換。

例如

strlen API中定義:

size_t strlen ( const char * str );

他們只得到arr const char *

但是有時候我用

unsigned char arr[] = "something"
strlen((const char *)arr);

只關注unsigned char *const char *

我想知道代碼會花多少錢?

通過這種方式,沒有與轉換相關的運行時開銷。 它僅告訴編譯器以不同於聲明方式的方式訪問(或解釋)變量。

在您的特定情況下,編譯器足夠聰明,可以生成將char數組視為char*指針的代碼,而不會產生開銷。

通常,C語言中的強制轉換永遠不會產生任何運行時開銷。

暫無
暫無

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

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