Compartilhar via


Incrementando e decrementando ponteiros

Use as dicas a seguir:

  • Ponto para os bytes de liderança, não do bytes de trilha. Geralmente não é seguro ter um ponteiro para um byte de trilha. Geralmente, é mais seguro verificar uma cadeia de caracteres para a frente em vez de inversa.

  • Há funções de incremento/decremento de ponteiro e macros disponíveis que se movem sobre um caractere inteiro:

    sz1++;
    

    torna-se:

    sz1 = _mbsinc( sz1 );
    

    O _mbsinc e _mbsdec as funções incrementam e decrementam corretamente em unidades character, independentemente do tamanho do caractere.

  • Para decrementos, você precisa de um ponteiro para a cabeça da cadeia de caracteres, como no seguinte:

    sz2--;
    

    torna-se:

    sz2 = _mbsdec( sz2Head, sz2 );
    

    Como alternativa, o ponteiro da cabeça pode ser para um caractere válido na cadeia de caracteres, de modo que:

    sz2Head < sz2
    

    Você deve ter um ponteiro para um byte principal válido conhecido.

  • Talvez você queira manter um ponteiro para o caractere anterior para chamadas mais rápidas _mbsdec.

Confira também

Dicas de programação do MBCS
Índices de byte