Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

[C/C++] ayuda con especificadores de clases de almacenamiento

Participa en el tema [C/C++] ayuda con especificadores de clases de almacenamiento en el foro Programación.
Hola gente como andan?, les cuento que me compré un libro de programación en C, ...

Buscar en este tema:
 
  •  
    Dexter_Ramone escribió el 08/01/2007 a las 17:54 hs.
     
    ¿Mensaje inapropiado?
    #1 [C/C++] ayuda con especificadores de clases de almacenamiento
    Hola gente como andan?, les cuento que me compré un libro de programación en C, pero no logro entender bien el concepto de especificadores de clases de almacenamiento (auto, static, register, extern), si alguien pudiera aclararme un poco esos conceptos se lo agradecería.
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/programacion.313/405411-c-c-ayuda-especificadores-clases-almacenamiento.html
    | Más
  • MysticDevil escribió el 09/01/2007 a las 19:05 hs. ¿Mensaje inapropiado?

    #2 Re: ayuda con especificadores de clases de almacenamiento

    auto: No se a que te referis, salvo que sea la palabra clave que va a salir en la proxima version de C++ que la variable toma el tipo adecuado de la cosa con la que la estes inicializando...
    static: Esta palabra en diferentes lugares significa diferentes cosas... En una funcion, significa que la variable es estatica, y es la misma para todas las veces que llamen a la funcion... (Podes pensarlo como una variable global, pero que solo se puede acceder desde adentro de la funcion)... Entre dos llamadas de la funcion, la variable retiene el valor...
    register: Es una sugerencia al compilador, para que trate de poner la variable en un registro (si no sabes lo que es un registro no te preocupes)... La podes usar en variables que vas a usar MUCHO para que "ande" mas rapido el programa...
    extern: La variable que declaras no esta en este modulo (cuando linkees el .o, a a buscar la referencia a la variable en otro lugar, y ponerla aca)... Esto lo usas cuando queres tener una variable en dos .o (o dos .c), tenes que hacer que este en uno solo, en el que esta la declaras normalmente, en el que no esta y queres accederla igual le pones extern...
    Me gusta este mensaje
  • pguerra escribió el 10/01/2007 a las 19:08 hs. ¿Mensaje inapropiado?

    #3 Re: ayuda con especificadores de clases de almacenamiento

    auto: Se aplica sólo a variables locales. Indica que la variable es automática, es decir se crea al ejecutarse su instrucción de declaración y se destruye cuando el punto de ejecución sale del bloque que la contiene. Es el especificador por defecto para las variables locales.

    static: Se aplica a variables y funciones. Indica que el objeto es estático, es decir sólo es visible en su unidad y, en el caso de variables, existe durante toda la vida del programa. Es el especificador por defecto para las variables globales.

    register: Se aplica sólo a variables local. Le indica al compilador que la variable se va a utilizar bastante, y que conviene almacenarla en un registro del CPU. La gran mayoría de los compiladores nuevos simplemente ignora este especificador, ya que las opmitizaciones las hacen automáticamente.

    extern: Se aplica a variables y funciones. Indica que el objeto tiene un enlazamiento externo, es decir se puede utilizar desde otras unidades. Es el especificador por defecto para las funciones globales.

    Mas información acá.
    Me gusta este mensaje
  • Dexter_Ramone escribió el 11/01/2007 a las 14:12 hs. ¿Mensaje inapropiado?

    #4 Re: ayuda con especificadores de clases de almacenamiento

    Originalmente publicado por pguerra Ver mensaje
    auto: Se aplica sólo a variables locales. Indica que la variable es automática, es decir se crea al ejecutarse su instrucción de declaración y se destruye cuando el punto de ejecución sale del bloque que la contiene. Es el especificador por defecto para las variables locales.

    static: Se aplica a variables y funciones. Indica que el objeto es estático, es decir sólo es visible en su unidad y, en el caso de variables, existe durante toda la vida del programa. Es el especificador por defecto para las variables globales.

    register: Se aplica sólo a variables local. Le indica al compilador que la variable se va a utilizar bastante, y que conviene almacenarla en un registro del CPU. La gran mayoría de los compiladores nuevos simplemente ignora este especificador, ya que las opmitizaciones las hacen automáticamente.

    extern: Se aplica a variables y funciones. Indica que el objeto tiene un enlazamiento externo, es decir se puede utilizar desde otras unidades. Es el especificador por defecto para las funciones globales.

    Mas información acá.
    Buenisimo, gracias!!!!!!, me sirvió de mucho!
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 3 RESPUESTAS
  • 1748 VISTAS
  • 3 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB