arrays - 将 volatile 数组传递给 strncpy

标签 arrays volatile argument-passing strncpy

在我的 ISR 中,我有一个从 USART 填充的缓冲区,所以我将该缓冲区声明为 volatile 的:

volatile uint8_t RxBuffer1[BUFFER_LENGTH];

好的,没问题。我相信这是标准做法。

在 main() 的某个地方,我需要复制该数组的一部分,因为该数组是一个循环缓冲区,并且会在将来的某个时候被删除:

strncpy(Data, RxBuffer1, len);

哦,但这是不行的!我的编译器忠实地告诉我:

passing argument 2 of 'strncpy' discards 'volatile' qualifier from pointer target type

因为 strncpy 使 's2' 成为 const char *

我不认为我在做任何没有按照标准做法做过的事情。我该如何正确执行此操作?

最佳答案

转换传递给 const char * 的参数

关于arrays - 将 volatile 数组传递给 strncpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8943592/

相关文章:

javascript - 解析复杂的json jquery

java - 为什么在 Facebook YearClass 中声明非线程 - volatile 参数

C++ 无法将参数 1 从 'int**' 转换为 'const int **'

php - 如何将数据插入到golang中的多维数组中?

c - 将包含二进制数据的 C 数组写入文件

c - 返回单个字符的数组

php - 函数中的可变长度引用参数列表

java - 代码的 “side-effects”到底是什么意思?

在 C 程序 (Visual Studio) 中正确放置 volatile 修饰符

带有函数参数的 Python 装饰器