Toolkit II, Manual de Usuario
Anterior Siguiente

16 Parámetros de Procedimientos

Los parámetros de los procedimientos del SuperBASIC son utilizados mediante sustitución: al llamar al procedimiento (o función), los falsos parámetros de la definición del procedimientos se convierten en los parámetros reales en la llamada del procedimiento. El tipo y uso de los parámetros del procedimiento puede averiguarse mediante dos funciones:

PARTYP (nombre) devuelve el tipo de parámetro
PARUSE (nombre) devuelve el uso del parámetro

El tipo es:            El uso es:

     0 nulo                0 no escogido

     1 cadena              1 variable

     2 coma flotante       2 matriz

     3 entero

Uno de los trucos usados por algunos procedimientos en código máquina consiste en usar el "nombre" de un parámetro real en lugar de su valor (por ejemplo, "LOAD fred" cargará un fichero llamado "fred"). Dado el nombre de un falso parámetro de un procedimiento, sería posible encontrar el nombre de un parámetro real de una llamada a un procedimiento del SuperBASIC, pero sería bastante lento. Es mucho más fácil encontrar el nombre de un parámetro real, si se conoce su posición en la lista de parámetros.

PARNAM$(número de parámetro) devuelve el nombre del parámetro

Por ejemplo, el fragmento de programa

pnombre fred,joe,"mary"
DEFine PROCedure pnombre(n1,n2,n3)
PRINT PARNAM$(1),PARNAM$(2),PARNAM$(3)
END DEFine pnombre

imprimirá "fred joe " (la expresión no tiene nombre).

Otro truco consiste en usar el valor del argumento verdadero si es una cadena, o el nombre en caso contrario. Ello es posible en procedimientos del SuperBASIC usando la función PARSTR$:

PARSTR$ (nombre, número de parámetro) si el parámetro "nombre" es una cadena, devuelve el valor, sino encuentra su nombre

Por ejemplo, el fragmento de programa

pcadena fred,joe,"mary"
...
DEFine PROCedure pcadena(n1,n2,n3)
PRINT PARSTR$(n1,1),PARSTR$(n2,2),PARSTR$(n3,3)
END DEFine pcadena

imprimirá "fred joe mary".


Anterior Índice de Materias Siguiente
Administración de memoria   Manipulación de Errores