Article View: es.comp.os.linux.programacion
Article #13198Re: Funciones static
From: Mario Teijeiro Otero
Date: Tue, 13 Mar 2001 13:35
Date: Tue, 13 Mar 2001 13:35
65 lines
2830 bytes
2830 bytes
Willy wrote:
> �Hola!
>
> Me gustaria saber que son las funciones static, para qu� sirven sobre todo
> en los ficheros del n�cleo, y qu� efectos tienen.
>
> O sea, funciones de la forma:
>
> static func(int num1, ...) {
> algo;
> algomas;
> }
>
> Y tambi�n los objetos static, por qu� se utilizan y si se diferencian en
> algo del resto. Por ejemplo:
>
> static struct miestruc {
> int campo1;
> int etc;
> };
>
> Sobre todo ya digo en ficheros del n�cleo, aunque en general tambi�n me
> interesa. Yo nunca he utilizado este tipo de cosas, pero ahora he visto
> que se utiliza por ah� y me gustar�a saber su raz�n de ser.
>
> Bye!
>
La palabra clave static, a nivel global, es un podo de decir que son
locales al fichero. Es decir, que solo pueden ser referenciadas en el mismo
*.c, ni siquieras podr�s enlazar con esa funci�n si la declaras en otro
como extern.
En el kernel es una manera de evitar que los nombres se solapen de un
fichero a otro, ya que puede haber dos funciones dentro del mismo
programa, pero *.c, que se llamen igual, siempre y cuando las dos sean
est�ticas.
Lo mismo pasa con las variables globales est�ticas.
Si se declarara una variable estatica, dentro de funci�n, esta variable
*recuerda* el valor de la ultima vez que se llam� a esa funci�n
Ejm
void funcion (void )
{
static int llamadas;
llamadas++;
....
}
Llamadas guardar� un contador de las llamadas a esa funci�n.
Saludos
--
Los dedos molan. Siempre puedes contar con ellos.
"Yo uso software libre" (declaraci�n a petici�n de Richard M. Stallman)
Mario Teijeiro Otero mailto:asimovi at teleline dot es
NiCK: emeteo en irc (#debian, #java, #escomposlinux).
clave: correo con Asunto: "[PGPKEY]" Usr. Reg. 122438
Technical Details
Message-ID:
<vm7l89.aef.ln@asimovi.localdomain>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-03!supernews.com!cyclone2.usenetserver.com!news-out.usenetserver.com!feed2.onemain.com!feed1.onemain.com!news-out.cwix.com!newsfeed.cwix.com!newsfeed.bcn.ttd.net!news.bcn.ttd.net!news.mad.ttd.net!asimovi.localdomain!nobodyReferences:
<984440188.224065120@news.inicia.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,d59104dc5a1901fb X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2001-03-13 12:40:09 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-03!supernews.com!cyclone2.usenetserver.com!news-out.usenetserver.com!feed2.onemain.com!feed1.onemain.com!news-out.cwix.com!newsfeed.cwix.com!newsfeed.bcn.ttd.net!news.bcn.ttd.net!news.mad.ttd.net!asimovi.localdomain!nobody From: Mario Teijeiro Otero <mteijeiro@NOSPAMescomposlinux.org> Newsgroups: es.comp.os.linux.programacion Subject: Re: Funciones static Date: Tue, 13 Mar 2001 14:35:26 +0100 Organization: Telefonica Transmision de Datos Lines: 66 Message-ID: <vm7l89.aef.ln@asimovi.localdomain> References: <984440188.224065120@news.inicia.es> NNTP-Posting-Host: 193-152-67-206.uc.nombres.ttd.es Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit User-Agent: KNode/0.4