我在使用memset时有一个`类型`参数警告

时间:2015-08-02 08:36:42

标签: c arrays memset

我有阵列;

volatile uint32_t SoftTimers[8] ;

我想在程序中将我的数组的所有内容重置为零(不是初始化)。我搜索了这个并找到了memset。但是在使用此功能时我有这个警告(而不是错误),这是一个问题吗?

我这样使用memset

memset(SoftTimers,0,sizeof(SoftTimers));

这是警告信息:

  

警告:#167-D:类型" volatile uint32_t *"的参数与" void *"

类型的参数不兼容

1 个答案:

答案 0 :(得分:1)

在这种情况下你不能使用memset,因为当你试图传递一个易失性指针时,它需要一个非易失性指针:

  

6.7.3类型限定符

     
      
  1. 如果尝试的话   通过使用左值来引用用volatile限定类型定义的对象   如果使用非volatile限定类型,则行为未定义。
  2.   

编写自己的函数,该函数指向volatile uint32_t类型。