Aumentar y disminuir punteros
Utilice las sugerencias siguientes:
Apunte a los bytes iniciales, no a los bytes finales. Normalmente, es poco seguro utilizar un puntero a un byte final. Es más seguro examinar una cadena hacia delante y no hacia atrás.
Hay macros y funciones de aumento o disminución de punteros que se desplazan un carácter completo:
sz1++;
se convierte en:
sz1 = _mbsinc( sz1 );
Las funciones _mbsinc y _mbsdec aumentan y disminuyen correctamente en unidades character, con independencia del tamaño del carácter.
Para las disminuciones, se necesita un puntero al encabezado de la cadena, como en el siguiente caso:
sz2--;
se convierte en:
sz2 = _mbsdec( sz2Head, sz2 );
De forma alternativa, el puntero de encabezado podría apuntar a un carácter válido de la cadena, como
sz2Head < sz2
Se debe tener un puntero a un byte inicial válido conocido.
Puede que desee mantener un puntero al carácter anterior para obtener llamadas más rápidas a _mbsdec.