В чем разница между strncmp_P и strncmp_PF на Arduino? Я понимаю strncmp_F, но какова цель strncmp_PF?
В Arduino есть два адресных пространства: SRAM и программная память (Flash).
Вы можете обращаться к памяти программ, используя обычный указатель «ближний» или специальный указатель «дальний», чтобы получить доступ к большему объему памяти, чем это обычно возможно (например, указатели ближних могут получить доступ только к 64 КБ памяти программ на 16-разрядном ЦП).
strncmp_P
а также strncmp_PF
оба сравниваются со строками в памяти программ (в отличие от strncmp
, который сравнивает две строки из SRAM), но strncmp_PF
берет дальний указатель, а strncmp_P
берет нормальный ближний указатель. Это единственная разница.