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