Ver la Versión Completa : [Sintaxis] ¿Qué es TYPEDEF y para qué se utiliza?
Josber
11 de enero de 2023, 12:51
Repasando la rutina de @fastpho ToolTipText multilínea (https://www.cobolforo.es/showthread.php?1580-ToolTipText-multilinea), he visto que utiliza la definición TYPEDEF, he estado buscando por inet pero, lo poco que hay, está muy mal explicado, (o yo no lo entiendo)
¿qué diferencia hay entre?
01 VAR.
03 V1 PIC X(10).
03 V2 PIC S9(5).
03 V3 PIC 999.
y
01 VAR TYPEDEF.
03 V1 PIC X(10).
03 V2 PIC S9(5).
03 V3 PIC 999.
¿Alguien podría iluminarme?, por saber si tiene algún tipo de ventaja, velocidad, etc.
Mil gracias.-
Kuk
11 de enero de 2023, 15:54
@Josber, el TYPEDEF es para definir un tipo de campo nuevo, puede ser simple o estructura. Así puedes tener tantas copias del "tipo" como quieras.
Ejemplo:
01 CLIENTE TYPEDEF.
05 NOMBRE PIC X(20).
05 APELLIDO PIC X(30).
05 EDAD PIC 9(2).
01 cliente1 TYPE CLIENTE.
01 cliente2 TYPE CLIENTE.
PROCEDURE DIVISION.
MOVE "JOSBER" TO NOMBRE OF cliente1
Otro ejemplo:
01 HWND TYPEDEF PIC S9(9) COMP-5.
01 hwndForm TYPE HWND.
01 hwndListView TYPE HWND.
PROCEDURE DIVISION.
MOVE "hwnd" OF POW-SELF TO hwndForm
MOVE "hwnd" OF CmListView1 TO hwndListView
Josber
11 de enero de 2023, 16:07
O sea @Kuk, que lo único que te ahorras es escribir en la WORKING, (que no en la PROCEDURE), porque espacio en memoria, el mismo, velocidad, la misma y claridad, quizás algo menos
mil Gracias por la aclaración ;)
Kuk
11 de enero de 2023, 17:00
@Josber, sí básicamente es ahorrar tecleo. Es una alternativa, digamos, porque se puede hacer con OCCURS, o con COPY REPLACINGT. Pero esto son cosas de COBOL puro, el TYPEDEF viene del C y existe en otros lenguajes.
Josber
11 de enero de 2023, 17:18
Sí @Kuk, del C, (C puro), me acuerdo aún cuando lo estudié hace más de 35 años, que estaban TYPEDEF y STRUCT para definir estructuras de datos, pero en COBOL, no lo había usado nunca, me imaginaba que era algo así pero, ante la duda ...
Kuk
11 de enero de 2023, 17:31
@Josber, sí eso es. Lo de STRUCT es porque en C no hay niveles como en Cobol, así que el STRUCT es como un tipo para indicarle al compilador que es una estructura.
vBulletin v3.8.7, Derechos ©2000-2026, Jelsoft Enterprises Ltd.