Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 43 — #81<br />
✐<br />
2.2. Herrami<strong>en</strong>tas para compilación modular<br />
que la definición es externa al fichero, o que la definición se <strong>en</strong>cu<strong>en</strong>tra después <strong>en</strong><br />
este fichero.<br />
Declarar una variable sin definirla implica usar la palabra reservada extern antes<br />
de una descripción de la variable, como por ejemplo:<br />
extern int a;<br />
extern también se puede aplicar a la declaración de funciones. Para func1()<br />
sería algo así:<br />
extern int func1(int l<strong>en</strong>gth, int width);<br />
Esta s<strong>en</strong>t<strong>en</strong>cia es equival<strong>en</strong>te a las declaraciones anteriores para func1() . Como<br />
no hay cuerpo de función, el compilador debe tratarla como una declaración<br />
de función <strong>en</strong> lugar de como definición. La palabra reservada extern es bastante<br />
superflua y opcional para la declaración de funciones. Probablem<strong>en</strong>te sea desafortunado<br />
que los diseñadores de C no obligaran al uso de extern para la declaración<br />
de funciones; hubiera sido más consist<strong>en</strong>te y m<strong>en</strong>os confuso (pero hubiera requerido<br />
teclear más, lo cual probablem<strong>en</strong>te explica la decisión).<br />
Aquí hay algunos ejemplos más de declaraciones:<br />
//: C02:Declare.cpp<br />
// Declaration & definition examples<br />
extern int i; // Declaration without definition<br />
extern float f(float); // Function declaration<br />
float b; // Declaration & definition<br />
float f(float a) { // Definition<br />
return a + 1.0;<br />
}<br />
int i; // Definition<br />
int h(int x) { // Declaration & definition<br />
return x + 1;<br />
}<br />
int main() {<br />
b = 1.0;<br />
i = 2;<br />
f(b);<br />
h(i);<br />
} ///:~<br />
En la declaración de funciones, los id<strong>en</strong>tificadores de los argum<strong>en</strong>tos son opcionales.<br />
En la definición son necesarios (los id<strong>en</strong>tificadores se requier<strong>en</strong> solam<strong>en</strong>te <strong>en</strong><br />
C, no <strong>en</strong> <strong>C++</strong>).<br />
Incluir ficheros de cabecera<br />
La mayoría de las librerías conti<strong>en</strong><strong>en</strong> un número importante de funciones y variables.<br />
Para ahorrar trabajo y asegurar la consist<strong>en</strong>cia cuando se hac<strong>en</strong> declaraciones<br />
externas para estos elem<strong>en</strong>tos, C y <strong>C++</strong> utilizan un artefacto llamado fichero de ca-<br />
43<br />
✐<br />
✐<br />
✐<br />
✐