04.01.2017, 19:04
Ese cуdigo se aplica, o no, en funciуn de los parбmetros especificados en la funciуn.
La base es la siguiente:
A partir de ahн, pueden ocurrir varias cosas en funciуn de los parбmetros que ponemos en MY_FUNC. Por ejemplo:
Lo anterior en un principio estб bien, no deberнa generar ningъn error. Imagнnate que creamos otra funciуn sin especificar ningъn parбmetro:
Bбsicamente nos sirve para evitar obtener un error a la hora de compilar en caso de no especificar parбmetros.
La base es la siguiente:
PHP код:
#define _:%0,) _:%0)
#define MY_FUNC<%0>(%1) my_func_%0(_:param, %1)
PHP код:
MY_FUNC<mensaje>(color, playerid)
{
SendClientMessage(playerid, -1, "Ejemplo bбsico.");
return 1;
}
/* El macro convierte lo anterior en lo siguiente: */
my_func_mensaje(_:param, color, playerid)
{
SendClientMessage(playerid, color, "Ejemplo bбsico.");
return 1;
}
PHP код:
MY_FUNC<mensaje>()
{
SendClientMessageToAll(-1, "Ejemplo bбsico.");
return 1;
}
/* El macro convierte lo anterior en lo siguiente: */
my_func_mensaje(_:param, )
{
SendClientMessageToAll(-1, "Ejemplo bбsico.");
return 1;
}
/*
Al no especificar parбmetros obtenemos lo siguiente: "(_:param, )".
Curiosamente eso cumple el formato del primer macro: "_:%0,)" - donde "%0" es "param".
Gracias al primer macro la coma se elimina y obtenemos: "_:param)". Obteniendo asн una funciуn vбlida:
*/
my_func_mensaje(_:param)
{
SendClientMessageToAll(-1, "Ejemplo bбsico.");
return 1;
}