在 C 中从 uint8_t * 转换为 char *

Convert from uint8_t * to char * in C

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

我到目前为止:

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

假设 buffer[127] 的地址恰好是 0x207。我可以使用调试器看到 stackHolder 的值是 0x207。我有一个接受 char * 并打印它的函数。所以我的问题是如何将 uint8_t * stackHolder 转换为 char * 以便将其传递给我的打印函数?

How can I convert the uint8_t * stackHolder into a char *?

来自 casting:

print((char*) stackHolder);

I have a method that takes a char *

建议尽量减少对一个位置的转换以实现目标并保留函数签名类型检查。使用强制转换创建包装器函数。

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

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