c - 将 int 类型转换为 char *

标签 c structure typecasting-operator

在我的一个头文件中定义了以下结构定义

typedef struct REMDEV_ADDR {
UINT8    addr[DEVICE_ADDR_SIZE];
} RemDev_Addr;

typedef RemDev_Addr BTDEV_ADDR;

现在我有以下我想使用的功能。

 hci_acl_connect(UCHAR *   bd_addr,UINT16 *  handle);

所以我在我的c文件中做了一个上述结构的全局实例

BTDEV_ADDR hsu_addr

然后像这样调用函数

hci_acl_connect((unsigned char *)&hsu_addr,&cont_hand);

类型转换是否正确 "(unsigned char *)&hsu_addr"?

最佳答案

假设您希望函数对结构中的数组 addr 做一些事情,那么就不需要强制转换了。只需传递 addr 成员:

hci_acl_connect(hsu_addr.addr, &cont_hand);

假设 UINT8UCHAR 都是 unsigned char 的别名(这似乎是一个安全的假设)。

关于c - 将 int 类型转换为 char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38474881/

相关文章:

c++ - 为什么 g++ 不在这里执行结构打包?

c++ - 为什么 char* 为什么不能在 c++ 文件 I/O 的写函数中使用 bool*

c - 如何在结构体中初始化数组?

c - C MIPS 环境中延迟 1 微秒

C: for (i=0;i<=N;i++) { t[i] = pow(a,0.i);总是返回 1

c - 我需要将结构数组传递给函数[大代码]

c - Tab 完成和部分完成

python - P4Python 问题 : p4run ("files", 'path' )返回 - 没有这样的文件,尽管返回 "dirs"的单个项目字典

c++ - 你如何实现相互转换?

java - 如何将字符串(字节数组作为字符串)转换为短字符串