为了使用strncmp
来比较两个unsigned char *
缓冲区,我必须将它们转换为const char *
。
我正在编写一个计算量很大的程序,这个测试出现在一个最关键的部分。
用unsigned char *
缓冲区编写自己的比较函数是否更好?
我的意思是,来自const char *
的{{1}}的投射会影响计算负荷吗?
答案 0 :(得分:4)
没有。在这种情况下(转换指针),您只是避开了在编译时有助于保护您的类型安全功能。它不会影响生成的编译代码。
答案 1 :(得分:2)
从
const char *
投射unsigned char *
会影响计算负荷
没有。它将类型unsigned char *
的指针值转换为const char *
,这是一个廉价的操作,不需要生成任何额外的目标代码。