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