Ho una funzione in cui sto passando un iteratore a un buffer char * (che è anche un carattere *). La funzione deve incrementare l'iteratore. In ogni caso, ho scoperto che un buon metodo di passsing l'iteratore nella funzione è passando il puntatore di riferimento:passando un puntatore per riferimento in C++
bool myFunction(unsigned char * &iter)
{
...
Tuttavia, ho sentito dire che questa è la cattiva forma e potrebbe causare problemi. Ecco il metodo suggerito dal mio collega:
typedef unsigned char * unsignedcharptr;
bool myFunction(unsignedcharptr &iter)
{
...
Mi sembra che entrambi stiano facendo la stessa cosa. C'è una differenza di compilatore tra questi due metodi (sto usando Visual Studio 2005)? Che è corretto?
avrei preferito prendere in considerazione typedef per i tipi di puntatore forma difettosa a causare problemi, ma bene, per il compilatore là isn non c'è differenza. –
perché non restituire una distanza da incrementare invece di modificare il puntatore? – Anycorn
Semanticamente non vi è alcuna differenza, ma sì, la seconda è in gran parte preferita, i dattilografi sono facili da leggere. –