19/10/2023 22:45
(Esta mensagem foi modificada pela última vez a: 19/10/2023 22:59 por White_Blue.)
Uma variável estática como o nome já diz, é alocada apenas uma vez na memória durante toda a execução do programa independente de quantas vezes você use uma função, isto é útil para uma função que é reutilizada diversas vezes no código, uma variável "new" que é dinâmica, toda vez que você chamar a função, a variável vai ser alocada de novo na memória. Quanto a "stock", "stock" não é nada mais que uma palavra-chave, quando você usa "stock" para declarar uma função, caso você não utilize a função, a função será simplesmente ignorada e não gerará um warning de que a função não foi utilizada, por outro lado, caso você declare uma função sem usar a palavra-chave "stock" e não use a função, o compilador gerará um warning te alertando que você definiu a função porém não a está utilizando.
Exemplos:
static:
stock:
Exemplos:
static:
Código PHP:
GetPlayerNameEx(playerid) {
static Name[MAX_PLAYER_NAME+1]; // Usa o macro MAX_PLAYER_NAME que equivale à 24 células(Tamanho de nickname máximo aceito pelo SA-MP) e incrementa +1 célula na string(Para preencher o caractere de escape "\0" que é nulo e como Pawn é uma linguagem C-LIKE, os caracteres são armazenadas na memória da seguinte forma "string\0" e o caractere nulo "\0" acaba ocupando 1 célula de espaço já que é interpretado como texto).
GetPlayerName(playerid, Name, sizeof(Name)); // Pega o nome do jogador e atribui à variável "Name".
return Name; // Retorna o nome do jogador na função
}
stock:
Código PHP:
// Não usando stock
Olamundo() {
printf("Olá, mundo!");
// Retornará um aviso, já que a função "Olamundo" está sendo declarada porém não está sendo utilizada.
}
// Usando stock
stock Olamundo() {
printf("Olá, mundo!");
// Não retornará nenhum aviso, já que a função "Olamundo" está sendo declarada usando a palavra-chave "stock", e a função não está sendo utilizada, portanto será simplesmente ignorada pelo compilador.
}
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.