Partilhar via


Incrementando e diminuindo ponteiros

Use as seguintes dicas:

  • Aponte para bytes de início, não para bytes de final. Geralmente não é seguro ter um ponteiro para um byte final. Geralmente, é mais seguro analisar uma cadeia de caracteres para a frente do que ao contrário.

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

    sz1++;
    

    torna-se:

    sz1 = _mbsinc( sz1 );
    

    As funções _mbsinc e _mbsdec incrementam e diminuem corretamente em unidades character, independentemente do tamanho do caractere.

  • Para decréscimos, você precisa de um ponteiro para a cabeça da cadeia de caracteres, como a seguir:

    sz2--;
    

    torna-se:

    sz2 = _mbsdec( sz2Head, sz2 );
    

    Como alternativa, o ponteiro de cabeça pode apontar para um caractere válido numa sequência de caracteres, de modo que:

    sz2Head < sz2
    

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

  • Talvez seja conveniente manter um ponteiro para o caractere anterior para acelerar as chamadas para _mbsdec.

Ver também

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