[英]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.