uint tmp_comm[MAX(N_SYS_CH, MAX_WINDOW_NUM)]; (1) Event bad_memset: Argument "65535" in "memset" loses precision in "memset(tmp_comm, 65535, 256UL)". 17720 memset(tmp_comm, 0xffff, sizeof(tmp_comm));它该怎么修改
时间: 2024-03-19 11:43:35 浏览: 168
QByteArray_Uchar.C
这个警告是因为`0xffff`是一个16位的整数值,在32位系统中,它被默认为`int`类型。因此,`memset`函数将会把`tmp_comm`数组的每个元素的前16位设置为`0xffff`,但是它们的高16位将会被设置为0,因为`0xffff`在32位系统中实际上是`0x0000ffff`。
为了避免这个警告,您可以将`0xffff`强制转换为`uint`类型,如下所示:
```
memset(tmp_comm, (uint)0xffff, sizeof(tmp_comm));
```
这将将`0xffff`转换为`uint`类型,从而消除了警告。
阅读全文