Pular para o conteúdo principal

Palavras-chave: operadores

char

Retorna quantas células (de 4 bytes) são necessárias para armazenar determinado número de caracteres em uma string compactada.

4 char  // 1
3 char // 1 (não existe ¾ de célula)
256 char // 64 (256 ÷ 4)

Utilize principalmente em declarações de arrays:

new
buffer[40 char]; // 10 células

Consulte o pawn-lang.pdf para saber mais sobre strings compactadas.

defined

Verifica se um símbolo existe, geralmente dentro de #if:

new
someVar = 5;
#if defined someVar
printf("%d", someVar);
#else
#error The variable 'someVar' isn't defined
#endif

Uso típico: habilitar trechos de código dependendo de um #define.

#define FILTERSCRIPT

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
return 1;
}

#else

public OnGameModeInit()
{
return 1;
}

#endif

sizeof

Retorna o tamanho de um array em elementos:

new
someVar[10];
printf("%d", sizeof (someVar)); // 10

Para arrays multidimensionais:

new
someVar[2][10];
printf("%d %d", sizeof (someVar), sizeof (someVar[])); // 2 10

state

Relacionado ao sistema de autômatos da linguagem Pawn; não é abordado aqui.

tagof

Retorna o identificador numérico da tag de uma variável:

new
someVar,
Float:someFloat;
printf("%d %d", tagof (someVar), tagof (someFloat));

Os valores exibidos correspondem aos códigos internos das tags. Para verificar se uma variável possui determinada tag:

new Float:fValue = 6.9;

if (tagof (fValue) == tagof (Float:))
{
print("float");
}
else
{
print("not a float");
}