在u中从uint8_t *转换为char *

时间:2017-03-22 19:54:42

标签: c casting char type-conversion uint8t

我使用Atmel Studio在C语言编程(对于那些不熟悉它的人来说,它用于编程到arduino等微控制器。你不能简单地打印,你必须将数据串行发送到终端等应用程序。)

我到目前为止:

uint8_t * stackHolder;
char buffer[128];
stackHolder = &buffer[127];

让我们说buffer[127]的地址恰好是0x207。我可以使用调试器看到stackHolder的值为0x207。我有一个函数,需要char *并打印出来。所以我的问题是如何将uint8_t * stackHolder转换为char *,以便将其传递给我的打印函数?

2 个答案:

答案 0 :(得分:8)

  

如何将uint8_t * stackHolder转换为char *

casting

print((char*) stackHolder);

答案 1 :(得分:4)

  

我有一个采用char *

的方法

建议将演员表最小化到一个位置以完成目标并保留函数签名类型检查。使用强制转换创建包装函数。

// OP's original function
extern void skyleguy_Print(char *);

void skyleguy_Print_u8(uint8_t *s) {
  skyleguy_Print((char *) s);
}