considerar dos funciones:
extern int extern_sqr(int i) { return i * i; }
static int static_dbl(int i) { return i * 2; }
Entonces las personas que se refieren a extern_sqr
se referirán a esa función. Esto se opone al enlace static
, donde solo las personas dentro de la "unidad de traducción" (más o menos el archivo que está definido) pueden acceder a la función static_dbl
.
Resulta que el extern
está implícito por defecto en c. Así, se llega a la misma conducta, si escribió:
int extern_sqr(int i) { return i * i; }
reciente estándares de C todavía requieren una "declaración de la función" así, por lo general en un archivo de cabecera en algún lugar, te vas a encontrar:
int extern_sqr(int i); // Note: 'i' is optional
que dice "en algún lugar, en alguna otra unidad de traducción, tengo una función llamada extern_sqr
.
La misma lógica se aplica a las variables.
Disculpe, ¿es nuevo en c? En mi opinión, K & R no es un libro introductorio adecuado para los novatos. – yehnan
Sin embargo, hacer el esfuerzo de entender a K & R te dará una muy buena comprensión de C. Yo digo que sigas así. –
No estoy en contra de la pregunta. Noté que asma me había hecho varias preguntas. Deseo sinceramente que pueda usar un libro más apropiado para él/ella. – yehnan