Lines Matching full:of

7 .\" Redistributions of source code and documentation must retain the above
8 .\" copyright notice, this list of conditions and the following
12 .\" notice, this list of conditions and the following disclaimer in the
15 .\" All advertising materials mentioning features or use of this software
19 .\" International, Inc. Neither the name of Caldera International, Inc.
20 .\" nor the names of other contributors may be used to endorse or promote
24 .\" USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA
27 .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
32 .\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 .\" OR OTHERWISE) RISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
35 .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
49 \fBThis document is of historical interest only. Do not use it as a reference
50 for modern implementations of C.\fP
59 \(dg DEC PDP-11, and DEC VAX-11 are trademarks of Digital Equipment Corporation.
61 \(dd 3B 20 is a trademark of AT&T.
66 follow directly from the underlying properties of the hardware; the various
71 There are six classes of tokens\ -\
83 to include the longest string of characters
99 An identifier is a sequence of letters and digits.
106 Although there is no limit on the length of a name,
108 eight characters of a non-external name, and perhaps
157 An integer constant consisting of a sequence of digits
164 An octal constant consists of the digits \fB0\fR through \fB7\fR only.
165 A sequence of digits preceded by
225 The value of a character constant is the numerical value of the
252 consists of the backslash followed by 1, 2, or 3 octal digits
253 which are taken to specify the value of the
255 A special case of this construction is
268 The type of a character constant is \fBint\fR.
273 A floating constant consists of
282 The integer and fraction parts both consist of a sequence
304 A string is a sequence of characters surrounded by
309 ``array of \fBchar\fR'' and storage class
317 at the end of each string so that programs
388 The C language bases the interpretation of an
389 identifier upon two attributes of the identifier \(mi its
399 the meaning of the values
418 Automatic variables are local to each invocation of
425 the execution of the entire program and
436 types of objects.
439 are large enough to store any member of the implementation's
448 Up to three sizes of integer, declared
467 The properties of \fBenum\fR types (see ``Structure, Union, and Enumeration Declarations''
469 are identical to those of
471 The implementation may use the range of values to
479 obey the laws of arithmetic modulo
481 where \fIn\fR is the number of bits in the representation.
492 Because objects of the foregoing types can usefully be interpreted
530 specifies an empty set of values.
535 conceptually infinite class of derived types constructed
538 of objects of most types
540 which return objects of a given type
542 to objects of a given type
544 containing a sequence of objects of various types
546 capable of containing any one of several objects of various types.
558 is a manipulatable region of storage.
564 An obvious example of an lvalue
572 is an expression of pointer type, then
592 The discussion of each operator
598 A number of operators may, depending on their operands,
599 cause conversion of the value of an operand from one type to another.
614 Conversion of a shorter integer
617 dependent, but it is guaranteed that a member of the
641 the characters of the
698 Conversions of floating values to integral type
700 In particular, the direction of truncation of negative numbers
705 Conversions of integral values to floating type
707 Some loss of accuracy occurs
712 An expression of integral type may be added to or subtracted from
715 specified in the discussion of the addition operator.
716 Two pointers to objects of the same type may be subtracted;
718 as specified in the discussion of the subtraction
735 the value of the result is the same numerically as that of the
745 First, any operands of type
755 and any operands of type \fBunsigned char\fR
767 and that is the type of the result.
771 is the type of the result.
779 and that is the type of the result.
784 the type of the result.
794 and that is the type of the result.
798 and that is the type of the result.
803 The (nonexistent) value of a
821 by use of a cast.
822 For example, this makes explicit the discarding of the value
827 The precedence of expression operators is the same
828 as the order of the major
829 subsections of this section, highest precedence first.
830 Thus, for example, the expressions referred to as the operands of
842 The precedence and associativity of all the expression
844 grammar of ``SYNTAX SUMMARY''.
846 Otherwise, the order of evaluation of expressions
863 to force a particular order of evaluation,
866 The handling of overflow and divide check
869 Most existing implementations of C ignore integer overflows;
870 treatment of
902 If the type of the identifier is ``array of .\|.\|.'',
903 then the value of the identifier expression
906 type of the expression is
935 Its type is originally ``array of
949 to those of the unadorned expression.
950 The presence of parentheses does
956 The intuitive meaning is that of a subscript.
960 and the type of the result is ``\|.\|.\|.\|''.
987 empty, comma-separated list of expressions
990 The primary expression must be of type ``function returning .\|.\|.,''
991 and the result of the function call is of type ``\|.\|.\|.\|''.
1001 Any actual arguments of type
1011 Any of type
1026 the types of actual arguments with those of formal
1033 a copy is made of each actual parameter.
1036 change the values of its formal parameters, but
1044 The order of evaluation of arguments is undefined by the language;
1052 must name a member of the structure or union.
1053 The value is the named member of the structure or union, and it is
1068 and the identifier must name a member of that structure or union.
1118 If the type of the expression is ``pointer to .\|.\|.,''
1119 the type of the result is ``\|.\|.\|.\|''.
1121 The result of the unary
1128 If the type of the lvalue is ``\|.\|.\|.\|'',
1129 the type of the result is ``pointer to .\|.\|.''.
1137 is the negative of its operand.
1139 The negative of an unsigned quantity is computed by
1141 2\v'-0.5'\fIn\fR\^\v'0.5' where \fIn\fR\^ is the number of bits in
1151 The result of the logical negation operator
1155 is one if the value of its operand is zero, zero if the value of its
1157 The type of the result is
1168 operator yields the one's complement of its operand.
1170 The type of the operand must be integral.
1172 The object referred to by the lvalue operand of prefix
1177 The value is the new value of the operand
1188 The lvalue operand of prefix
1205 the result is the value of the object referred to by the lvalue.
1213 The type of the result is the same as the type of the lvalue expression.
1220 the result is the value of the object referred to by the lvalue.
1227 The type of the result is the same as the type of the lvalue
1230 An expression preceded by the parenthesized name of a data type
1231 causes conversion of the value of the expression to the named type.
1243 in bytes of its operand.
1249 except in terms of the value of
1257 number of bytes in the array.
1259 the declarations of
1276 In that case it yields the size in bytes of an object
1328 from the division of the first expression by the second.
1332 but the form of truncation is machine-dependent
1369 The result of the
1373 operator is the sum of the operands.
1375 a value of any integral type
1380 by the length of the object to which the
1407 The result of the
1411 operator is the difference of the operands.
1414 a value of any integral type
1418 If two pointers to objects of the same type are subtracted,
1420 (by division by the length of the object)
1425 representing the number of
1431 to objects of the same type, do not necessarily differ
1432 by a multiple of the object length.
1446 each of which must be integral.
1449 the type of the result is that of the left operand.
1451 or greater than or equal to the length of the object in bits.
1453 the direction of the shift.
1460 The value of
1475 The value of
1527 The type of the result is
1599 function of the operands.
1623 function of
1647 function of its operands.
1674 must have one of the fundamental
1692 It returns 1 if either of its operands
1701 if the value of the first operand is nonzero.
1705 have one of the fundamental types
1720 and if it is nonzero, the result is the value of the
1721 second expression, otherwise that of third expression.
1724 If both are structures or unions of the same type,
1725 the result has the type of the structure or union.
1726 If both pointers are of the same type,
1729 and the result has the type of the pointer.
1730 Only one of the second and third
1735 There are a number of assignment operators,
1736 all of which group right to left.
1738 and the type of an assignment expression is that
1742 The two parts of a compound assignment operator are separate
1761 the value of the expression replaces that of the object
1765 the right operand is converted to the type of the left
1767 Second, both operands may be structures or unions of the same type.
1774 The behavior of an expression
1803 A pair of expressions separated by a comma is evaluated
1804 left to right, and the value of the left expression is
1806 The type and value of the result are the
1807 type and value of the right operand.
1810 e.g., in lists of actual arguments
1819 has three arguments, the second of which has the value 5.
1835 consist of a sequence of type and storage class specifiers.
1863 The meanings of the various storage classes were discussed in ``Names.''
1873 in that they cause an appropriate amount of storage to be reserved.
1887 declaration is best thought of as an
1895 Moreover, only variables of certain types will be stored in registers;
1904 the address-of operator
1951 At most one of the words \fBlong\fR or \fBshort\fR
1958 in conjunction with \fBint\fR or any of its short
1963 In particular, adjectival use of \fBlong\fR,
1980 is a comma-separated sequence of declarators,
1981 each of which may have an initializer.
1994 indicate the type and storage class of the objects to which the
2009 Meaning of Declarators
2012 an assertion that when a construction of
2014 it yields an object of the indicated
2024 but the binding of complex declarators may be altered by parentheses.
2055 (so that the type of
2072 the type of the contained identifier is
2107 ``\|.\|.\|.\| array of
2118 When several ``array of'' specifications are adjacent, a multidimensional
2121 of the arrays may be missing only for the first member of the sequence.
2130 An array may be constructed from one of the basic types, from a pointer,
2141 there are no arrays of functions although
2142 there may be arrays of pointers to functions.
2175 The binding of
2185 requires, the calling of a function
2203 declares an array of
2207 numbers and an array of
2218 declares a static 3-dimensional array of integers,
2224 is an array of three items;
2225 each item is an array of five arrays;
2226 each of the latter arrays is an array of seven
2228 Any of the expressions
2245 is an object consisting of a sequence of named members.
2265 is a sequence of declarations for the members of the structure or union:
2282 for a member of a structure or union.
2283 A structure member may also consist of a specified number of bits.
2301 Each nonfield member of a structure
2322 As a special case, a field with a width of 0
2323 specifies alignment of the next field at an implementation dependent boundary.
2325 The language does not restrict the types of things that
2351 there are no arrays of fields,
2352 and the address-of operator
2359 A union may be thought of as a structure all of whose members
2361 any of its members.
2362 At most, one of the members can be stored in a union
2365 A structure or union specifier of the second form, that is, one of
2378 the third form of specifier, one of
2384 Structure tags allow definition of self-referential
2386 permit the long part of the declaration to be
2389 which contains an instance of
2390 itself, but a structure or union may contain a pointer to an instance of itself.
2392 The third form of a structure or union specifier may be
2400 This, for example, allows the declaration of a pair
2403 The names of members and tags do not conflict
2409 A simple but important example of a structure declaration is
2421 which contains an array of 20 characters, an integer, and two pointers
2433 to be a structure of the given sort
2449 field of the structure to which
2466 refers to the first character of the
2470 member of the right subtree of
2500 appear, then the values of the
2510 The names of enumerators in the same scope must all be distinct
2511 from each other and from those of ordinary variables.
2513 The role of the identifier in the enum-specifier
2514 is entirely analogous to that of the structure tag
2532 the enumeration-tag of a type describing various colors,
2537 as a pointer to an object of that type,
2542 as an object of that type.
2554 consists of an expression or a list of values nested in braces.
2572 or expressions which reduce to the address of a previously
2586 (a pointer or an object of arithmetic type),
2587 it consists of a single expression, perhaps in braces.
2588 The initial value of the object is taken from
2596 the initializer consists of a brace-enclosed, comma-separated list of
2597 initializers for the members of the aggregate
2600 applies recursively to the members of the aggregate.
2601 If there are fewer initializers in the list than there are members of the aggregate,
2607 the succeeding comma-separated list of initializers initializes
2608 the members of the aggregate;
2612 for the members of the aggregate; any remaining members
2613 are left to initialize the next member of the aggregate of which
2621 In this case successive characters of the string
2622 initialize the members of the array.
2645 1, 3, and 5 initialize the first row of
2702 initializes the first column of
2720 by means of a cast
2721 and as an argument of
2723 it is desired to supply the name of a data type.
2725 is a declaration for an object of that type which omits the name of
2753 The named type is then the same as the type of the
2767 ``array of three pointers to integers,''
2768 ``pointer to an array of three integers,''
2771 and ``array of three pointers to functions returning an integer.''
2788 Within the scope of a declaration involving
2790 each identifier appearing as part of
2795 in the way described in ``Meaning of Declarators.''
2810 are all legal declarations; the type of
2816 that of
2821 and that of
2884 If any of the identifiers
2886 the outer declaration is pushed down for the duration of the block,
2889 Any initializations of
2902 Initializations of
2917 The two forms of the conditional statement are
2951 so long as the value of the
2953 The test takes place before each execution of the
2968 the value of the expression becomes 0.
2969 The test takes place after each execution of the
2984 Except for the behavior of \fBcontinue\fR,
3003 Any or all of the expressions may be dropped.
3025 to one of several statements depending on
3026 the value of an expression.
3051 No two of the case constants in the same switch
3055 There may also be at most one statement prefix of the
3067 If one of the case constants is
3068 equal to the value of the expression,
3080 none of the statements in the
3091 do not alter the flow of control,
3096 Usually, the statement that is the subject of a switch is compound.
3097 Declarations may appear at the head of this
3100 initializations of automatic or register variables
3110 causes termination of the smallest enclosing
3127 causes control to pass to the loop-continuation portion of the
3133 statement; that is to the end of the loop.
3134 More precisely, in each of the statements
3161 A function returns to its caller by means of
3166 statement which has one of the
3174 In the second case, the value of the expression
3178 as if by assignment, to the type of
3180 Flowing off the end of a function is
3186 Control may be transferred unconditionally by means of
3199 label prefixes of the form
3206 The only use of a label is as a target of a
3210 The scope of a label is the current function,
3233 A C program consists of a sequence of external definitions.
3250 The scope of external definitions persists to the end
3252 of declarations persists to the end of a block.
3253 The syntax of external definitions is the same
3254 as that of all declarations except that
3274 see ``Scope of Externals'' in
3278 it lists the formal parameters of
3307 at the outset of the function.
3309 A simple example of a complete function definition is
3361 a pointer to the first element of the array,
3362 declarations of formal parameters declared ``array of .\|.\|.\|''
3373 The storage class of such data may be
3392 be compiled at the same time. The source text of the
3397 Communication among the functions of a program
3399 and through manipulation of external data.
3401 Therefore, there are two kinds of scopes to consider:
3406 region of a program during which it may
3417 The lexical scope of identifiers declared in external definitions
3419 the end of the source file
3421 The lexical scope of identifiers which are formal parameters
3424 The lexical scope of identifiers declared at the head of a block
3425 persists until the end of the block.
3426 The lexical scope of labels is the whole of the
3430 if an identifier is explicitly declared at the head of a block,
3432 any declaration of that identifier outside the block
3433 is suspended until the end of the block.
3472 Scope of Externals
3488 identifier more than once in the set of files and libraries
3492 explicit use of \fBextern\fR does not
3493 change the meaning of an external declaration.
3495 In restricted environments, the use of the \fBextern\fR
3497 In these environments, the explicit appearance of the
3498 \fBextern\fR keyword in external data declarations of
3502 It is required that there be exactly one definition of
3504 in the set of files and libraries
3523 and inclusion of named files.
3530 There may be any number of blanks and horizontal tabs
3532 These lines have syntax independent of the rest of the language;
3533 they may appear anywhere and have effect which lasts (independent of
3534 scope) until the end of the source program file.
3539 A compiler-control line of the form
3545 of the identifier with the given string of tokens.
3546 Semicolons in or at the end of the token-string are part of that string.
3547 A line of the form
3557 Subsequent instances of the first identifier followed
3560 a sequence of tokens delimited by commas, and a
3564 Each occurrence of an identifier mentioned in the formal parameter list
3569 The number of formal and actual parameters must be the same.
3572 strings and character constants in the rest of the program are
3584 at the end of the line to be continued.
3586 This facility is most valuable for definition of ``manifest constants,''
3594 A control line of the form
3602 If a \fB#define\fRd identifier is the subject of a subsequent
3612 A compiler control line of
3618 causes the replacement of that
3619 line by the entire contents of the file
3625 and then in a sequence of specified or standard places.
3626 Alternatively, a control line of the form
3632 and not the directory of the \fB#include\fR.
3633 (How the places are specified is not part of the language.)
3641 A compiler control line of the form
3675 A control line of the form
3682 subject of a
3688 A control line of the form
3700 All three forms are followed by an arbitrary number of lines,
3740 For the benefit of other preprocessors which generate C programs,
3741 a line of the form
3746 causes the compiler to believe, for purposes of error
3748 that the line number of the next source line is given by the constant and the current input
3760 and in declarations of formal parameters
3779 If the type of an identifier is ``function returning .\|.\|.\|,''
3800 which can be performed on objects of certain types.
3815 must specify a member of the aggregate
3818 In general, a member of a union may not be inspected
3819 unless the value of the union has been assigned using that same member.
3821 to simplify the use of unions:
3823 and if the union currently contains one of these structures,
3824 it is permitted to inspect the common initial part of any of
3860 If the name of a function appears in an
3861 expression not in the function-name position of a call,
3872 Then the definition of
3905 Every time an identifier of array type appears
3907 to the first member of the array.
3908 Because of this conversion, arrays are not
3923 Because of the conversion rules
3943 member of
3951 A consistent rule is followed in the case of
3975 or implicitly as a result of subscripting,
3989 is a 3\(mu5 array of integers.
3995 to a pointer to (the first of three) 5-membered arrays of integers.
4008 is converted to the type of
4018 yield an array (of five integers) which in turn is converted to
4019 a pointer to the first of the integers.
4026 the amount of storage consumed by an array.
4034 They are all specified by means of an explicit type-conversion
4038 A pointer may be converted to any of the integral types large
4054 An object of integral type may be explicitly converted to a pointer.
4063 a pointer to an object of a given size may be converted to a pointer to an object
4117 any of their constituents.
4122 2-byte boundaries. Arrays of characters, all structures,
4179 by appearance of unsubscripted arrays and functions.
4187 Certain parts of C are inherently machine dependent.
4188 The following list of potential trouble spots
4193 word size and the properties of floating point arithmetic and integer division
4194 have proven in practice to be not much of a problem.
4195 Other facets of the hardware are reflected
4197 Some of these,
4202 Most of the others are only minor problems.
4204 The number of
4210 as does the set of valid types.
4222 on any of these properties.
4224 The order of evaluation of function arguments
4229 Since character constants are really objects of type
4258 This summary of C syntax is intended more for aiding comprehension
4259 than as an exact statement of the language.