我有阵列;
volatile uint32_t SoftTimers[8] ;
我想在程序中将我的数组的所有内容重置为零(不是初始化)。我搜索了这个并找到了memset
。但是在使用此功能时我有这个警告(而不是错误),这是一个问题吗?
我这样使用memset
:
memset(SoftTimers,0,sizeof(SoftTimers));
这是警告信息:
警告:#167-D:类型" volatile uint32_t *"的参数与" void *"
类型的参数不兼容
答案 0 :(得分:1)
在这种情况下你不能使用memset,因为当你试图传递一个易失性指针时,它需要一个非易失性指针:
6.7.3类型限定符
- 如果尝试的话 通过使用左值来引用用volatile限定类型定义的对象 如果使用非volatile限定类型,则行为未定义。
醇>
编写自己的函数,该函数指向volatile uint32_t
类型。