Lines Matching +full:right +full:- +full:aligned
1 .\" Copyright (C) Caldera International Inc. 2001-2002. All rights reserved.
38 The C Programming Language - Reference Manual
47 by Brian W. Kernighan and Dennis M. Ritchie, Prentice-Hall, Inc., 1978.
51 .EH 'PSD:6-%''The C Programming Language - Reference Manual'
52 .OH 'The C Programming Language - Reference Manual''PSD:6-%'
56 This manual describes the C language on the DEC PDP-11\(dg, the DEC VAX-11,
59 \(dg DEC PDP-11, and DEC VAX-11 are trademarks of Digital Equipment Corporation.
65 out implementation-dependent details. With few exceptions, these dependencies
71 There are six classes of tokens\ -\
108 eight characters of a non-external name, and perhaps
116 PDP-11 7 characters, 2 cases
117 VAX-11 >100 characters, 2 cases
267 A new-line character is illegal in a character constant.
346 DEC PDP\-11 DEC VAX-11 AT&T 3B
356 float range \(+-10 \(+-38 \(+-10 \(+-38 \(+-10 \(+-38
358 double range \(+-10 \(+-38 \(+-10 \(+-38 \(+-10 \(+-308
361 .\" .FG 4 4 1 "DEC PDP-11 HARDWARE CHARACTERISTICS"
380 { \fIexpression\v'0.5'\s-2opt\s0\v'-0.5'\fR }
480 2\v'-0.5'\fIn\fR\v'0.5'
483 PDP-11,
486 Single-precision floating point
616 Whether or not sign-extension occurs for characters is machine
618 standard character set is non-negative.
621 PDP-11
623 VAX-11
624 sign-extend.
643 set are all non-negative.
728 integer (modulo 2\v'-0.3'\s-2wordsize\s+2\v'0.3').
839 Left- or right-associativity is specified
871 division by 0 and all floating-point exceptions
881 group left to right.
883 \fIprimary-expression:
888 primary-expression [ expression ]
889 primary-expression ( expression-list\v'0.5'\s-2opt\s0\v'-0.5' )
890 primary-expression . identifier
891 primary-expression \(mi> identifier\fR
894 \fIexpression-list:
896 expression-list , expression\fR
912 when used except in the function-name position
987 empty, comma-separated list of expressions
998 thus in the most common case, integer-valued functions
1087 group right to left.
1090 \fIunary-expression:
1100 ( type-name ) expression\fR
1102 sizeof\fI ( type-name )\fR
1141 2\v'-0.5'\fIn\fR\^\v'0.5' where \fIn\fR\^ is the number of bits in
1283 \fBsizeof(\fItype\|\fB)-2\fR
1285 \fB(sizeof(\fItype\|\fB))-2\fR.
1296 group left to right.
1332 but the form of truncation is machine-dependent
1360 group left to right.
1364 \fIadditive-expression:
1427 the pointed-to objects.
1444 group left to right.
1447 Then the right operand is converted to
1450 The result is undefined if the right operand is negative
1452 On the VAX a negative right operand is interpreted as reversing
1455 \fIshift-expression:
1469 pattern) left-shifted
1483 right-shifted
1488 The right shift is guaranteed to be logical
1501 The relational operators group left to right.
1503 \fIrelational-expression:
1533 of the pointed-to objects.
1540 \fIequality-expression:
1579 Bitwise \s-1AND\s0 Operator
1582 \fIand-expression:
1603 Bitwise Exclusive \s-1OR\s0 Operator
1605 \fIexclusive-or-expression:
1628 Bitwise Inclusive \s-1OR\s0 Operator
1630 \fIinclusive-or-expression:
1651 Logical \s-1AND\s0 Operator
1653 \fIlogical-and-expression:
1661 operator groups left to right.
1669 guarantees left to right
1681 Logical \s-1OR\s0 Operator
1683 \fIlogical-or-expression:
1691 operator groups left to right.
1699 guarantees left to right evaluation; moreover,
1714 \fIconditional-expression:
1718 Conditional expressions group right to left.
1736 all of which group right to left.
1745 \fIassignment-expression:
1765 the right operand is converted to the type of the left
1768 Finally, if the left operand is a pointer, the right operand must in general be a pointer
1791 the left operand may be a pointer; in which case, the (integral) right
1794 All right operands and all nonpointer left operands must
1799 \fIcomma-expression:
1804 left to right, and the value of the left expression is
1807 type and value of the right operand.
1808 This operator groups left to right.
1829 decl-specifiers declarator-list\v'0.5'\s-2opt\s0\v'-0.5' ;\fR
1832 The declarators in the declarator-list
1834 The decl-specifiers
1837 \fIdecl-specifiers:
1838 type-specifier decl-specifiers\v'0.5'\s-2opt\s0\v'-0.5'
1839 sc-specifier decl-specifiers\v'0.5'\s-2opt\s0\v'-0.5'\fR
1842 The list must be self-consistent in a way described below.
1846 The sc-specifiers are:
1848 \fIsc-specifier:\fB
1897 PDP-11,
1904 the address-of operator
1914 At most, one sc-specifier may be given in a declaration.
1915 If the sc-specifier is missing from a declaration, it
1931 The type-specifiers are
1933 \fItype-specifier:
1934 struct-or-union-specifier
1935 typedef-name
1936 enum-specifier
1937 basic-type-specifier:
1938 basic-type
1939 basic-type basic-type-specifiers
1940 basic-type:\fB
1961 Otherwise, at most on type-specifier may be
1966 If the type-specifier is missing from a declaration,
1979 The declarator-list appearing in a declaration
1980 is a comma-separated sequence of declarators,
1983 \fIdeclarator-list:
1984 init-declarator
1985 init-declarator , declarator-list
1988 \fIinit-declarator:
1989 declarator initializer\v'0.5'\s-2opt\s0\v'-0.5'\fR
2003 declarator [ constant-expression\v'0.5'\s-2opt\s0\v'-0.5' ]\fR
2036 is a type-specifier (like
2098 \fBD\|[\|\fIconstant-expression\fB\|]\fR
2218 declares a static 3-dimensional array of integers,
2251 \fIstruct-or-union-specifier:
2252 struct-or-union { struct-decl-list }
2253 struct-or-union identifier { struct-decl-list }
2254 struct-or-union identifier
2257 \fIstruct-or-union:\fB
2263 struct-decl-list
2267 \fIstruct-decl-list:
2268 struct-declaration
2269 struct-declaration struct-decl-list
2272 \fIstruct-declaration:
2273 type-specifier struct-declarator-list ;
2276 \fIstruct-declarator-list:
2277 struct-declarator
2278 struct-declarator , struct-declarator-list\fR
2281 In the usual case, a struct-declarator is just a declarator
2289 a non-negative constant expression,
2292 \fIstruct-declarator:
2294 declarator : constant-expression
2295 : constant-expression\fR
2300 are read left to right.
2312 Fields are assigned right to left
2314 PDP-11
2316 VAX-11,
2317 left to right on the 3B 20.
2319 A struct-declarator with no declarator, only a colon and a width,
2321 to externally-imposed layouts.
2336 PDP-11,
2339 VAX-11,
2352 and the address-of operator
2367 \fBstruct \fIidentifier { struct-decl-list \fR}
2368 \fBunion \fIidentifier { struct-decl-list \fR}
2384 Structure tags allow definition of self-referential
2417 struct tnode \(**right;
2442 \fBsp->count\fR
2463 \fBs.right->tword[0]\fR
2470 member of the right subtree of
2480 \fIenum-specifier:\fB
2481 enum\fI { enum-list \fR}\fB
2482 enum \fIidentifier { enum-list \fR}\fB
2485 enum-list:
2487 enum-list , enumerator
2491 identifier = constant-expression\fR
2494 The identifiers in an enum-list are declared as constants
2502 read from left to right.
2513 The role of the identifier in the enum-specifier
2515 in a struct-specifier; it names a particular enumeration.
2532 the enumeration-tag of a type describing various colors,
2558 = { initializer-list }
2559 = { initializer-list , }
2562 \fIinitializer-list:
2564 initializer-list , initializer-list\fR
2565 { \fIinitializer-list \fR}
2566 { \fIinitializer-list\fR , }
2596 the initializer consists of a brace-enclosed, comma-separated list of
2607 the succeeding comma-separated list of initializers initializes
2633 as a one-dimensional array which has three members, since no size was specified
2644 is a completely-bracketed initialization:
2706 (regarded as a two-dimensional array)
2728 \fItype-name:
2729 type-specifier abstract-declarator
2732 \fIabstract-declarator:
2734 ( abstract-declarator )
2735 \(** abstract-declarator
2736 abstract-declarator ()
2737 abstract-declarator\fR\^ [ \fIconstant-expression\v'0.5'\s-2opt\s0\v'-0.5' \fR\^]
2743 \fI( abstract-declarator \fR)
2747 abstract-declarator
2750 it is possible to identify uniquely the location in the abstract-declarator
2784 \fItypedef-name:\fR
2836 does not introduce brand-new types, only synonyms for
2870 \fIcompound-statement:
2871 { declaration-list\v'0.5'\s-2opt\s0\v'-0.5' statement-list\v'0.5'\s-2opt\s0\v'-0.5' }
2874 \fIdeclaration-list:
2876 declaration declaration-list
2879 \fIstatement-list:
2881 statement statement-list\fR
2885 in the declaration-list were previously declared,
2934 \fBelse\fR-less
2980 \fBfor\fI ( exp-1\v'0.5'\s-2opt\s0\v'-0.5' ; exp-2\v'0.5'\s-2opt\s0\v'-0.5' ; exp-3\v'0.5'\s-2opt\s…
2987 \fIexp-1 \fR;
2988 \fBwhile\fR\^ ( \fIexp-2\ ) \fR\^
2991 exp-3 ;\fR
3006 exp-2
3042 \fBcase \fIconstant-expression \fR:
3127 causes control to pass to the loop-continuation portion of the
3244 The type-specifier (see ``Type Specifiers'' in
3261 \fIfunction-definition:
3262 decl-specifiers\v'0.5'\s-2opt\s0\v'-0.5' function-declarator function-body\fR
3265 The only sc-specifiers
3267 among the decl-specifiers
3281 \fIfunction-declarator:
3282 declarator ( parameter-list\v'0.5'\s-2opt\s0\v'-0.5' )
3285 \fIparameter-list:
3287 identifier , parameter-list\fR
3290 The function-body
3293 \fIfunction-body:
3294 declaration-list\v'0.5'\s-2opt\s0\v'-0.5' compound-statement\fR
3325 is the type-specifier;
3329 is the function-declarator;
3333 is the declaration-list for
3369 \fIdata-definition:
3489 comprising a multi-file program.
3491 for any external non-function identifier;
3505 comprising a mult-file program.
3539 A compiler-control line of the form
3541 \fB#define \fIidentifier token-string\v'0.5'\s-2opt\s0\v'-0.5'\fR
3546 Semicolons in or at the end of the token-string are part of that string.
3549 \fB#define \fIidentifier(identifier, ... )token-string\v'0.5'\s-2opt\s0\v'-0.5'\fR
3570 Strings and character constants in the token-string are scanned
3604 the two token-strings are compared textually.
3605 If the two token-strings are not identical
3643 \fB#if \fIrestricted-constant-expression\fR
3646 checks whether the restricted-constant expression evaluates to nonzero.
3667 All currently defined identifiers in restricted-constant-expressions
3668 are replaced by their token-strings (except those identifiers
3813 name on the right
3814 of the \fB->\fR or the \fB.\fR
3861 expression not in the function-name position of a call,
3941 E2-th
3958 \fIn\fR-dimensional
3967 a pointer to an (n-1)-dimensional
3977 the result is the pointed-to (n-1)-dimensional array,
3995 to a pointer to (the first of three) 5-membered arrays of integers.
4016 namely 5-integer objects.
4024 row-wise (last subscript varies fastest)
4033 but have implementation-dependent aspects.
4034 They are all specified by means of an explicit type-conversion
4061 the subject pointer does not refer to an object suitably aligned in storage.
4068 a storage-allocation routine
4088 must ensure (in a machine-dependent way)
4099 PDP-11
4100 corresponds to a 16-bit integer and
4108 VAX-11,
4110 Elementary objects are aligned on a boundary equal to their
4115 quantities need be aligned only on even 4-byte boundaries.
4116 Aggregates are aligned on the strictest boundary required by
4119 The 3B 20 computer has 24-bit pointers placed into 32-bit quantities.
4121 aligned on 4-byte boundaries. \fBShort\fRs are aligned in all cases on
4122 2-byte boundaries. Arrays of characters, all structures,
4123 \fBint\fR\^s, \fBlong\fR\^s, \fBfloat\fR\^s, and \fBdouble\fR\^s are aligned on 4-byte
4189 is not meant to be all-inclusive
4238 Fields are assigned to words and characters to integers right to left
4240 and left to right on other machines.
4251 pointer and inspecting the pointed-to storage)
4252 but must be accounted for when conforming to externally-imposed
4280 \fBsizeof (\fItype-name\fB)\fI
4281 ( type-name ) expression
4293 primary ( expression-list\v'0.5'\s-2opt\s0\v'-0.5' )
4309 The primary-expression operators
4315 have highest priority and group left to right.
4318 \(** & \(mi ! \s+2~\s0 \(pl\(pl \(mi\(mi \fBsizeof\fI ( type-name \fR)
4323 and group right to left.
4325 group left to right; they have priority
4341 The conditional operator groups right to left.
4344 priority and all group right to left.
4350 The comma operator has the lowest priority and groups left to right.
4357 decl-specifiers init-declarator-list\v'0.5'\s-2opt\s0\v'-0.5' ;
4360 \fIdecl-specifiers:
4361 type-specifier decl-specifiers\v'0.5'\s-2opt\s0\v'-0.5'
4362 sc-specifier decl-specifiers\v'0.5'\s-2opt\s0\v'-0.5'
4365 \fIsc-specifier:\fB
4373 \fItype-specifier:
4374 struct-or-union-specifier
4375 typedef-name
4376 enum-specifier
4377 basic-type-specifier:
4378 basic-type
4379 basic-type basic-type-specifiers
4380 basic-type:\fB
4391 \fIenum-specifier:\fB
4392 enum\fI { enum-list }\fB
4393 enum \fIidentifier { enum-list }\fB
4397 \fIenum-list:
4399 enum-list , enumerator
4404 identifier = constant-expression
4407 \fIinit-declarator-list:
4408 init-declarator
4409 init-declarator , init-declarator-list
4412 \fIinit-declarator:
4413 declarator initializer\v'0.5'\s-2opt\s0\v'-0.5'
4421 declarator [ constant-expression\v'0.5'\s-2opt\s0\v'-0.5' ]
4424 \fIstruct-or-union-specifier:\fB
4425 struct\fI { struct-decl-list }\fB
4426 struct \fIidentifier { struct-decl-list }\fB
4428 union { \fIstruct-decl-list }\fB
4429 union \fIidentifier { struct-decl-list }\fB
4433 \fIstruct-decl-list:
4434 struct-declaration
4435 struct-declaration struct-decl-list
4438 \fIstruct-declaration:
4439 type-specifier struct-declarator-list ;
4442 \fIstruct-declarator-list:
4443 struct-declarator
4444 struct-declarator , struct-declarator-list
4447 \fIstruct-declarator:
4449 declarator : constant-expression
4450 : constant-expression
4455 = { initializer-list }
4456 = { initializer-list , }
4459 \fIinitializer-list:
4461 initializer-list , initializer-list
4462 { initializer-list }
4463 { initializer-list , }
4466 \fItype-name:
4467 type-specifier abstract-declarator
4470 \fIabstract-declarator:
4472 ( abstract-declarator )
4473 \(** abstract-declarator
4474 abstract-declarator ()
4475 abstract-declarator [ constant-expression\v'0.5'\s-2opt\s0\v'-0.5' ]
4478 \fItypedef-name:
4486 \fIcompound-statement:
4487 { declaration-list\v'0.5'\s-2opt\s0\v'-0.5' statement-list\v'0.5'\s-2opt\s0\v'-0.5' }
4490 \fIdeclaration-list:
4492 declaration declaration-list
4495 \fIstatement-list:
4497 statement statement-list
4501 compound-statement
4507 …\fBfor\fI (exp\v'0.3'\s-2opt\s0\v'-0.3'\fB;\fIexp\v'0.3'\s-2opt\s0\v'-0.3'\fB;\fIexp\v'0.3'\s-2opt…
4509 \fBcase\fI constant-expression : statement
4525 external-definition
4526 external-definition program
4529 \fIexternal-definition:
4530 function-definition
4531 data-definition
4534 \fIfunction-definition:
4535 decl-specifier\v'0.5'\s-2opt\s0\v'-0.5' function-declarator function-body
4538 \fIfunction-declarator:
4539 declarator ( parameter-list\v'0.5'\s-2opt\s0\v'-0.5' )
4542 \fIparameter-list:
4544 identifier , parameter-list
4547 \fIfunction-body:
4548 declaration-list\v'0.5'\s-2opt\s0\v'-0.5' compound-statement
4551 \fIdata-definition:
4558 \fB#define\fI identifier token-string\v'0.3'\s-2opt\s0\v'-0.3'\fB
4559 … \fB#define\fI identifier\fB(\fIidentifier\fB,...)\fItoken-string\v'0.5'\s-2opt\s0\v'-0.5'\fB
4563 \fB#if\fI restricted-constant-expression\fB