|
|
1.1 root 1:
2:
3: extern C Keyword extern
4:
5:
6:
7:
8: Declare storage class
9:
10:
11: extern indicates that a C element belongs to the _e_x_t_e_r_n_a_l storage
12: class. Both variables and functions may be declared to be ex-
13: tern. Use of this keyword tells the C compiler that the variable
14: or function is defined outside of the present file of source
15: code. All functions and variables defined outside of functions
16: are implicitly extern unless declared static.
17:
18: When a source file references data that are defined in another
19: file, it must declare the data to be extern, or the linker will
20: return an error message of the form:
21:
22:
23: undefined symbol _n_a_m_e
24:
25:
26: For example, the following declares the array tzname:
27:
28:
29: extern char tzname[2][32];
30:
31:
32: When a function calls a function that is defined in another
33: source file or in a library, it should declare the function to be
34: extern. In the absence of a declaration, extern functions are
35: assumed to return ints, which may cause serious problems if the
36: function actually returns a 32-bit pointer (such as on the 68000
37: or i8086 LARGE model), a long, or a double.
38:
39: For example, the function mmaalllloocc appears in a library and returns
40: a pointer; therefore, it should be declared as follows:
41:
42:
43: extern char *malloc();
44:
45:
46: If you do not do so, the compiler assumes that mmaalllloocc returns an
47: iinntt, and generate the error message
48:
49:
50: integer pointer pun
51:
52:
53: when you attempt to use mmaalllloocc in your program.
54:
55: ***** See Also *****
56:
57: auto, C keywords, pun, register, static, storage class
58:
59:
60:
61:
62:
63:
64: COHERENT Lexicon Page 1
65:
66:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.