Aumentar y disminuir punteros
Siga estas sugerencias:
Apunte a bytes de inicio, no a bytes finales. Normalmente no es seguro tener un puntero a un byte final. Normalmente es más seguro examinar una cadena hacia delante que al revés.
Hay funciones de aumento/disminución de punteros y macros disponibles que se mueven por un carácter completo:
sz1++;
se convierte en:
sz1 = _mbsinc( sz1 );
Las funciones
_mbsinc
y_mbsdec
aumentan y disminuyen correctamente en unidades decharacter
, independientemente del tamaño del carácter.Para las disminuciones, se necesita un puntero al encabezado de la cadena, tal como se muestra a continuación:
sz2--;
se convierte en:
sz2 = _mbsdec( sz2Head, sz2 );
Como alternativa, el puntero principal podría ser un carácter válido en la cadena, de modo que:
sz2Head < sz2
Debe tener un puntero a un byte de inicio válido conocido.
Es posible que quiera mantener un puntero al carácter anterior para realizar llamadas más rápidas a
_mbsdec
.