[C con Clase] persistencia

Samuel Porras samuelporras en gmail.com
Mar Feb 24 14:37:29 CET 2009


Muchas grácias Steven, me has aclarado la duda.
Un cordial saludo ^^.

Steven Davidson escribió:
> Hola Samuel,
>
> Samuel Porras wrote:
>> Buenos días,
>> escribo a la lista para resolver un par de dudas sobre la
>> persistencia en lenguaje C.
>>
>> Estoy estudiando la persistencia automática y la persistencia
>> estática, la persistencia automática tiene auto y register que se
>> comportan de un modo determinado y la estatica permanece a lo largo
>> de todo el programa, tanto en una como en otra, dicen
>> identificadores, en las de persistencia automática dicen que solo se
>> puede usar con variables automáticas y en la persistencia estática en
>> la declaración de variables y de funciones.
>>
>> La duda es:
>> - static y extern se puede utilizar en funciones y variables, auto y 
>> register solo en variables, no? o en las dos solo se utiliza en 
>> variables, y de ser así
>
> La primera parte de tu afirmación es correcta:
> - Las variables pueden tener: auto, register, extern, o static.
> - Las funciones pueden tener: extern, o static.
>
>> ¿Qué utilidad tendría declarar static y extern una función?
>>
>
> Indicar que una función es estática significa que su existencia o 
> "vida" sólo pertenece al código fuente que la definió. Es decir, tal 
> función tiene un ámbito de fichero. Por ejemplo,
>
> // fuente1.c
> static int func( int );
> ...
>
> // fuente2.c
> static void func( float[], int );
> ...
>
> Las dos funciones 'func()' no guardan relación alguna y existen 
> exclusivamente en su fichero fuente correspondiente.
>
> Indicar 'extern' para una función no tiene mucho sentido, ya que por 
> defecto su enlazado es externo y por tanto visible y compartido por 
> otros ficheros fuentes.
>
>
> En C++, existen otros usos y en el caso de variables y funciones 
> miembros, 'static' tiene otro uso.
>
>
> Espero haber aclarado la duda.
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>




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