[C con Clase] Una pequeña duda con los ficheros

Steven Davidson srd4121 en njit.edu
Jue Abr 26 21:50:00 CEST 2012


Hola Marcos,

On 4/26/2012 2:49 PM, Marcos Collado Martín wrote:
> Steven o Salvador me podeis dar mas información de como utilizar los
>  punteros a función, o donde puedo encontrar esa informacion, y

Consulta el capítulo 20 de nuestro curso de C++ yendo a: 
http://c.conclase.net/curso/index.php?cap=020d#FUN3_puntfunc

> tambien de typedef (aunque esto se mas o menos lo que es, es para dar
> un nombre que se entienda mejor a las cosas, por ejemplo: typedef int
> playa; playa pl; ??)
>

Consulta el capítulo 19 de nuestro curso de C++ yendo a: 
http://c.conclase.net/curso/index.php?cap=019#inicio

No es solamente para cambiar el nombre a algo más legible. La otra 
utilidad es otra forma de crear un nivel de abstracción entre los tipos 
de datos existentes y otros conceptuales. Por ejemplo,

typedef unsigned char byte;

De esta manera, podemos crear un tipo de dato llamado "byte". Si en un 
futuro queremos representar 'byte' de otra manera, podemos crear un 
'struct' o 'union'. Por ejemplo,

union byte
{
   struct bits8
   {
     unsigned char b7:1;
     unsigned char b6:1;
     unsigned char b5:1;
     unsigned char b4:1;
     unsigned char b3:1;
     unsigned char b2:1;
     unsigned char b1:1;
     unsigned char b0:1;
   } bits;
   unsigned char b;
};

Si posteriormente necesitamos crear clases, podemos extender nuestro 
concepto.

La ventaja de esto es que el resto del código se basa en el nombre de 
'byte' al igual que las funciones que representarán las operaciones y 
otras tareas que nos interesan. Esto es irrelevantemente de la 
representación de 'byte'; ya sea 'unsigned char', 'union', 'class', o lo 
que necesites. Con este nivel de abstracción, no tenemos que tratar la 
representación directamente, la cual puede provocar problemas 
especialmente si cambiamos de representación.

Un ejemplo práctico es OpenGL, API de MS-Windows, y muchas otras API's.

> Un saludo y gracias^^
>
> P.D: Y de la informacion de punteros a función que pueda responderme
> a esta pregunta por favor: los punteros a funcion se puede utilizar a
> cualquier tipo de funcion o solo a void?
>

Se usan para cualquier prototipo. Nuevamente, consulta el capítulo 20.


Espero que esto te sirva.

Steven





Más información sobre la lista de distribución Cconclase