Увеличение и уменьшение значений указателей
Рекомендации:
Используйте указатели на старшие, а не младшие байты.Использование указателей на младшие байты не рекомендуется из соображений безопасности.В большинстве случаев просмотр строки в прямом направлении является более безопасным, чем просмотр в обратном направлении.
Поддерживаются функции и макросы, предназначенные для увеличения и уменьшения значения указателя с перемещением на целый знак:
sz1++;
становится:
sz1 = _mbsinc( sz1 );
Функции _mbsinc и _mbsdec обеспечивают правильное увеличение и уменьшение значения в единицах character независимо от размера знака.
Для уменьшения значения необходимо использовать указатель на заголовок строки, как показано в следующем примере:
sz2--;
становится:
sz2 = _mbsdec( sz2Head, sz2 );
Кроме того, в качестве указателя на заголовок строки можно использовать указатель на допустимый символ строки, например:
sz2Head < sz2
Необходимо использовать указатель на допустимый старший байт.
Чтобы ускорить последующие вызовы функции _mbsdec, можно сохранить указатель на предыдущий знак.