Оглавление
avr/pgmspace.h #
Информация относится к библиотеке avr/pgmspace.h
для МК AVR, но для совместимости она поддерживается и в других платформах семейства Arduino, например ESP8266, ESP32.
Макросы и типы #
PGM_P
- синонимconst char *
для строк в PGM памятиPGM_VOID_P
- синонимconst void *
для данных в PGM памятиPROGMEM
- синоним атрибута__ATTR_PROGMEM__
для помещения в PGMPSTR(const char* s)
- поместить строку в PGM
Чтение #
pgm_read_byte(addr)
- прочитать 1 байт из PGM по адресуaddr
pgm_read_word(addr)
- прочитать 2 байта из PGM по адресуaddr
pgm_read_dword(addr)
- прочитать 4 байта из PGM по адресуaddr
pgm_read_float(addr)
- прочитать float из PGM по адресуaddr
pgm_read_ptr(addr)
- прочитать указатель из PGM по адресуaddr
Байты, массивы #
Аналоги функций для работы с памятью для PROGMEM, здесь PGM_VOID_P
- указатель на данные в PGM памяти:
memcpy_P #
void* memcpy_P(void* dest, PGM_VOID_P src, size_t n)
memccpy - копировать
n
байт из src
в dest
до значения val
memccpy_P #
void* memccpy_P(void* dest, PGM_VOID_P src, int val, size_t len)
memccpy - копировать
n
байт из src
в dest
до значения val
memcmp_P #
int memcmp_P(const void* s1, PGM_VOID_P s2, size_t len)
memcmp - сравнить
s1
и s2
на длине len
memchr_P #
PGM_VOID_P memchr_P(PGM_VOID_P s, int val, size_t len)
memchr - искать
val
в области s
длиной len
с началаmemrchr_P #
PGM_VOID_P memrchr_P(PGM_VOID_P s, int val, size_t len)
memrchr - искать
val
в области s
длиной len
с концаmemmem_P #
void* memmem_P(const void* s1, size_t len1, PGM_VOID_P s2, size_t len2)
memmem - сравнить
s1
длиной len1
с s2
длиной len2
Строки #
Аналоги функций для работы со строками для PROGMEM, здесь PGM_P
- указатель на строку в PGM памяти:
strlen_P #
size_t strlen_P(PGM_P s)
strlen - длина строки
strnlen_P #
size_t strnlen_P(PGM_P src, size_t len)
strnlen - длина строки, не более
len
strcpy_P #
char* strcpy_P(char* dest, PGM_P src)
strcpy - копировать PGM строку из
src
в dest
буферstrncpy_P #
char* strncpy_P(char* dest, PGM_P src, size_t n)
strncpy - копировать PGM строку из
src
в dest
буферstrlcpy_P #
size_t strlcpy_P(char* dst, PGM_P src, size_t size)
strlcpy - копировать PGM строку из
src
в dest
буфер размером size
strcat_P #
char* strcat_P(char* dest, PGM_P src)
strcat - прибавить строку
src
к буферу dest
strncat_P #
char* strncat_P(char* dest, PGM_P src, size_t len)
strncat - прибавить строку
src
к буферу dest
strlcat_P #
size_t strlcat_P(char* dst, PGM_P src, size_t size)
strlcat - прибавить строку
src
к буферу dest
размером size
strcmp_P #
int strcmp_P(const char* s1, PGM_P s2)
strcmp - сравнить строки
strncmp_P #
int strncmp_P(const char* s1, PGM_P s2, size_t n)
strncmp - сравнить первые
n
символов строкstrcasecmp_P #
int strcasecmp_P(const char* s1, PGM_P s2)
strcasecmp - сравнить строки без учёта регистра букв
strncasecmp_P #
int strncasecmp_P(const char* s1, PGM_P s2, size_t n)
strncasecmp - сравнить первые
n
символов строк без учёта регистра буквstrchr_P #
PGM_P strchr_P(PGM_P s, int val)
strchr - найти символ в строке с начала
strrchr_P #
PGM_P strrchr_P(PGM_P s, int val)
strrchr - найти символ в строке с конца
strstr_P #
PGM_P strstr_P(const char* s1, PGM_P s2)
strstr - найти подстроку
strcasestr_P #
PGM_P strcasestr_P(const char* s1, PGM_P s2)
strcasestr - найти подстроку без учёта регистра букв
strspn_P #
size_t strspn_P(const char* s, PGM_P accept)
strspn - выделить начало строки, состоящее из символов
accept
strcspn_P #
size_t strcspn_P(const char* s, PGM_P reject)
strcspn - выделить начало строки до любого из символов
reject
strpbrk_P #
PGM_P strpbrk_P(const char* s, PGM_P accept)
strpbrk - выделить начало строки до любого из символов
accept
strtok_P #
char* strtok_P(char* s, PGM_P delim)
strtok - токенизация
strtok_rP #
char* strtok_rP(char* string, PGM_P delim, char** last)
strtok_r - токенизация