Поделиться через


Увеличение и уменьшение значений указателей

Рекомендации:

  • Используйте указатели на старшие, а не младшие байты.Использование указателей на младшие байты не рекомендуется из соображений безопасности.В большинстве случаев просмотр строки в прямом направлении является более безопасным, чем просмотр в обратном направлении.

  • Поддерживаются функции и макросы, предназначенные для увеличения и уменьшения значения указателя с перемещением на целый знак:

    sz1++;
    

    становится:

    sz1 = _mbsinc( sz1 );
    

    Функции _mbsinc и _mbsdec обеспечивают правильное увеличение и уменьшение значения в единицах character независимо от размера знака.

  • Для уменьшения значения необходимо использовать указатель на заголовок строки, как показано в следующем примере:

    sz2--;
    

    становится:

    sz2 = _mbsdec( sz2Head, sz2 );
    

    Кроме того, в качестве указателя на заголовок строки можно использовать указатель на допустимый символ строки, например:

    sz2Head < sz2
    

    Необходимо использовать указатель на допустимый старший байт.

  • Чтобы ускорить последующие вызовы функции _mbsdec, можно сохранить указатель на предыдущий знак.

См. также

Основные понятия

Советы по программированию многобайтовой кодировки

Индексы байтов