ventajas tutorial teams sesion puedo microsoft inicia entrar desventajas descargar configurar carga caracteristicas objective-c static inline llvm extern

objective c - tutorial - Estático, externo e inline en Objective-C



no puedo entrar a microsoft teams (2)

¿Qué significan static, extern e inline (y sus combinaciones) en Objetive-C usando el compilador LLVM?

Lo mismo que en C, a menos que compiles como ObjC ++, entonces significan lo mismo que se encuentra en C ++.

Así que aquí hay una introducción para C, pero lea los enlaces si está listo para usarlos porque los detalles son importantes:

Externo

Resumen: indica que un identificador se define en otro lugar.

Detalles: http://tigcc.ticalc.org/doc/keywords.html#extern

Estático

Resumen (valor): conserva el valor de la variable para sobrevivir después de que finalice su alcance.

Resumen (función): emite de forma efectiva copias sin nombre, útil para funciones privadas en C, y puede usarse para escapar de múltiples errores de definición cuando se usa con funciones en línea.

Detalles: http://tigcc.ticalc.org/doc/keywords.html#static

En línea

Resumen: sugiere que el cuerpo de una función se debe mover a las personas que llaman.

Detalles: http://tigcc.ticalc.org/doc/gnuexts.html#SEC93

Tenga en cuenta que inline y static son un poco más complejos en C ++ (como casi todo en C ++).

También encontré que hay macros CG_EXTERN y CG_INLINE. ¿Deberíamos estar usando esos en su lugar?

No.

En su lugar, debe especificar el suyo propio, con sus propios significados, si necesita este tipo de funcionalidad. CG_EXTERN y CG_INLINE tienen significados específicos (que pueden cambiar), y están destinados a ser utilizados en su contexto definido. Además, no es necesario que incluya un puñado de marcos (todos CoreGraphics / ApplicationServices / CoreFoundation / etc. ) cuando desea especificar algo, es extern de una manera que funciona en C y C ++.

¿Qué significan static , extern e inline (y sus combinaciones) en Objetive-C usando el compilador LLVM?

Además, noté que hay macros CG_EXTERN y CG_INLINE . ¿Deberíamos estar usando esos en su lugar?

(No pude encontrar una fuente con una explicación clara, así que pensé que podría ser útil crear una aquí, o señalarla si alguien la conoce)


Justin cubrió la mayor parte, pero encontré otros recursos interesantes para aquellos que quieren profundizar:

Al declarar una función en línea, le dice al compilador que reemplace el código completo de esa función directamente en el lugar desde donde se llamó. Esta es una característica bastante avanzada que requiere la comprensión de la programación de nivel inferior.

Funciones en linea

Esta pregunta de SO tiene una respuesta enorme acerca de las variables externas , las variables definidas como "en otro lugar", pero también deben usarse "aquí".

La estática conserva la vida variable fuera del alcance. La Variable es visible dentro del alcance que fue declarado.

¿Qué significa una variable estática?