[Duda]Sobre el static y new
#6

Quote:
Originally Posted by MugiwaraNoLuffy
Посмотреть сообщение
static mantiene su valor anterior. Por ejemplo:
pawn Код:
public OnPlayerConnect(playerid)
{
    static string[128];
    if(playerid == 0)
    {
        format(string, sizeof string, "Hola jugador id %d", playerid);
    }
    SendClientMessage(playerid, 0xFF0000FF, string);
    return 1;
}
Como dije anteriormente las static mantienen el valor anterior.
Supongamos que entra el jugador id 0, se cumple la condiciуn y le mandarнa el mensaje "Hola jugador id 0".
Luego entra el jugador id 1, el jugador id 1, tambiйn va a recibir el mensaje "Hola jugador id 0" porque el contenido de la variable string no se borro ya que es una static. Si string fuera una variable new, no almacena su valor y se borra al terminar la ejecuciуn de OnPlayerConnect, al llamarse de nuevo la variable se crearнa de nuevo y su valor se reiniciaria, por lo que enviarнa un mensaje en vacнo. Esto sucede porque las variables new se almacenan en stack/heap, es decir, es memoria dinбmica, se crea, se usa y se libera, en cambio las static se utiliza memoria estбtica ya que no se borran y permanecen durante toda la ejecuciуn del script.
Las static globales, es decir, que no estбn dentro de ninguna callback o funciуn, solo pueden usarse en ese archivo que fue declarada y no en los includes.
Muchнsimas gracнas amigo, me aclarastes la duda.
Reply


Messages In This Thread
[Duda]Sobre el static y new - by Fornew - 13.01.2014, 15:12
Re: [Duda]Sobre el static y new - by Miguel - 13.01.2014, 17:17
Respuesta: [Duda]Sobre el static y new - by OTACON - 13.01.2014, 17:22
Respuesta: Re: [Duda]Sobre el static y new - by Fornew - 13.01.2014, 20:43
Respuesta: Re: [Duda]Sobre el static y new - by MugiwaraNoLuffy - 14.01.2014, 07:33
Respuesta: Re: [Duda]Sobre el static y new - by Fornew - 14.01.2014, 12:05

Forum Jump:


Users browsing this thread: 1 Guest(s)