c char字符串和stdint.h uint8_t嵌入式系统的兼容性

时间:2014-06-04 20:43:02

标签: c++

我需要在C ++中将const char []转换为uint8_t。什么是最好的方法

A)

const uint8_t* a = (const uint8_t*)"string";  // I hate this cast, but it works

b)中

const uint8_t* a = reinterpret_cast<const uint8_t*>("string");  // is this OK, is it safe?

为什么这不起作用?

const uint8_t* a = static_cast<const uint8_t*>("string");  // will not compile

1 个答案:

答案 0 :(得分:2)

第二个解决方案是&#34;最正确的&#34;这样做的方式。 reinterpret_cast将完全由编译器处理,并简单地指向具有不同类型的结果位。第一种解决方案是旧式的,通常不应该在现代C ++中使用。