字符串铸造对C的性能影响是什么?

时间:2013-08-08 13:07:52

标签: c performance casting

为了使用strncmp来比较两个unsigned char *缓冲区,我必须将它们转换为const char *

我正在编写一个计算量很大的程序,这个测试出现在一个最关键的部分。 用unsigned char *缓冲区编写自己的比较函数是否更好?

我的意思是,来自const char *的{​​{1}}的投射会影响计算负荷吗?

2 个答案:

答案 0 :(得分:4)

没有。在这种情况下(转换指针),您只是避开了在编译时有助于保护您的类型安全功能。它不会影响生成的编译代码。

答案 1 :(得分:2)

  

const char *投射unsigned char *会影响计算负荷

没有。它将类型unsigned char *的指针值转换为const char *,这是一个廉价的操作,不需要生成任何额外的目标代码。