В моем ISR у меня есть буфер, который заполняется USART, поэтому я объявил буфер как volatile:
volatile uint8_t RxBuffer1[BUFFER_LENGTH];
Хорошо, нет проблем. Я считаю, что это стандартная практика.
Где-то в main() мне нужно скопировать часть этого массива, так как массив представляет собой циклический буфер и когда-нибудь в будущем будет уничтожен:
strncpy(Data, RxBuffer1, len);
О, но это нет-нет! мой компилятор покорно говорит мне:
передача аргумента 2 из 'strncpy' отбрасывает квалификатор volatile из целевого типа указателя
поскольку strncpy делает 's2' константным символом *
Я не думаю, что делаю что-то, что не было сделано в качестве стандартной практики. Как мне это сделать правильно?