🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #13198

Re: Funciones static

#13198
From: Mario Teijeiro Otero
Date: Tue, 13 Mar 2001 13:35
65 lines
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!nobody
References: <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