United States    
COMPAQ STORE | PRODUCTS |
SERVICES | SUPPORT | CONTACT US | SEARCH
Compaq C

Compaq C
Language Reference Manual


Previous Contents Index

postfix-expression: (§3.3.2)

primary-expression
postfix-expression [ expression ]
postfix-expression ( argument-expression-listopt )
postfix-expression . identifier
postfix-expression -> identifier
postfix-expression ++
postfix-expression - -

argument-expression-list: (§3.3.2)

assignment-expression
argument-expression-list , assignment-expression

unary-expression: (§3.3.3)

postfix-expression
++ unary-expression
- - unary-expression
unary-operator cast-expression
sizeof unary-expression
sizeof ( type-name )

unary-operator: (§3.3.3) one of


    &  *  +  -  ~  ! 

cast-expression: (§3.3.4)

unary-expression
( type-name ) cast-expression

multiplicative-expression: (§3.3.5)

cast-expression
multiplicative-expression * cast-expression
multiplicative-expression / cast-expression
multiplicative-expression % cast-expression

additive-expression: (§3.3.6)

multiplicative-expression
additive-expression + multiplicative-expression
additive-expression - multiplicative-expression

shift-expression: (§3.3.7)

additive-expression
shift-expression << additive-expression
shift-expression >> additive-expression

relational-expression: (§3.3.8)

shift-expression
relational-expression < shift-expression
relational-expression > shift-expression
relational-expression <= shift-expression
relational-expression >= shift-expression

equality-expression: (§3.3.9)

relational-expression
equality-expression == relational-expression
equality-expression != relational-expression

AND-expression: (§3.3.10)

equality-expression
AND-expression & equality-expression

exclusive-OR-expression: (§3.3.11)

AND-expression
exclusive-OR-expression ^ AND-expression

inclusive-OR-expression: (§3.3.12)

exclusive-OR-expression
inclusive-OR-expression | exclusive-OR-expression

logical-AND-expression: (§3.3.13)

inclusive-OR-expression
logical-AND-expression && inclusive-OR-expression

logical-OR-expression: (§3.3.14)

logical-AND-expression
logical-OR-expression || logical-AND-expression

conditional-expression: (§3.3.15)

logical-OR-expression
logical-OR-expression ? expression : conditional-expression

assignment-expression: (§3.3.16)

conditional-expression
unary-expression assignment-operator assignment-expression

assignment-operator: (§3.3.16) one of


    =  *=  /=  %=  +=  -=  <<=  >>=  &=  ^=  |= 

expression: (§3.3.17)

assignment-expression
expression , assignment-expression

constant-expression: (§3.4)

conditional-expression

A.1.2.2 Declarations

declaration: (§3.5)

declaration-specifiers init-declarator-listopt ;

declaration-specifiers: (§3.5)

storage-class-specifier declaration-specifiersopt
type-specifier declaration-specifiersopt
type-qualifier declaration-specifiersopt

init-declarator-list: (§3.5)

init-declarator
init-declarator-list , init-declarator

init-declarator: (§3.5)

declarator
declarator = initializer

storage-class-specifier: (§3.5.1)

typedef
extern
static
auto
register

type-specifier: (§3.5.2)

void
char
short
int
long
float
double
signed
unsigned


struct-or-union-specifier
enum-specifier
typedef-name

struct-or-union-specifier: (§3.5.2.1)

struct-or-union identifieropt { struct-declaration-list }
struct-or-union identifier

struct-or-union: (§3.5.2.1)

struct
union

struct-declaration-list: (§3.5.2.1)

struct-declaration
struct-declaration-list struct-declaration

struct-declaration: (§3.5.2.1)

specifier-qualifier-list struct-declarator-list ;

specifier-qualifier-list: (§3.5.2.1)

type-specifier specifier-qualifier-listopt
type-qualifier specifier-qualifier-listopt

struct-declarator-list: (§3.5.2.1)

struct-declarator
struct-declarator-list , struct-declarator

struct-declarator: (§3.5.2.1)

declarator
declaratoropt : constant-expression

enum-specifier: (§3.5.2.2)

enum identifieropt { enumerator-list }
enum identifier

enumerator-list: (§3.5.2.2)

enumerator
enumerator-list , enumerator

enumerator: (§3.5.2.2)

enumeration-constant
enumeration-constant = constant-expression

type-qualifier: (§3.5.3)

const
volatile

declarator: (§3.5.4)

pointeropt direct-declarator

direct-declarator: (§3.5.4)

identifier
( declarator )
direct-declarator [ constant-expressionopt ]
direct-declarator ( parameter-type-list )
direct-declarator ( identifier-listopt )

pointer: (§3.5.4)

* type-qualifier-listopt
* type-qualifier-listopt pointer

type-qualifier-list: (§3.5.4)

type-qualifier
type-qualifier-list type-qualifier

parameter-type-list: (§3.5.4)

parameter-list
parameter-list , ...

parameter-list: (§3.5.4)

parameter-declaration
parameter-list , parameter-declaration

parameter-declaration: (§3.5.4)

declaration-specifiers declarator
declaration-specifiers abstract-declaratoropt

identifier-list: (§3.5.4)

identifier
identifier-list , identifier

type-name: (§3.5.5)

specifier-qualifier-list abstract-declaratoropt

abstract-declarator: (§3.5.5)

pointer
pointeropt direct-abstract-declarator

direct-abstract-declarator: (§3.5.5)

( abstract-declarator )
direct-abstract-declaratoropt [ constant-expressionopt ]
direct-abstract-declaratoropt ( parameter-type-listopt )

typedef-name: (§3.5.6)

identifier

initializer: (§3.5.7)

assignment-expression
{ initializer-list }
{ initializer-list , }

initializer-list: (§3.5.7)

initializer
initializer-list , initializer

A.1.2.3 Statements

statement: (§3.6)

labeled-statement
compound-statement
expression-statement
selection-statement
iteration-statement
jump-statement

labeled-statement: (§3.6.1)

identifier : statement
case constant-expression : statement
default : statement

compound-statement: (§3.6.2)

{ declaration-listopt statement-listopt }

declaration-list: (§3.6.2)

declaration
declaration-list declaration

statement-list: (§3.6.2)

statement
statement-list statement

expression-statement: (§3.6.3)

expressionopt ;

selection-statement: (§3.6.4)

if ( expression ) statement
if ( expression ) statement else statement
switch ( expression) statement

iteration-statement: (§3.6.5)

while ( expression ) statement
do statement while ( expression ) ;
for ( expressionopt ; expressionopt ; expressionopt ) statement

jump-statement: (§3.6.6)

goto identifier ;
continue ;
break ;
return expressionopt ;

A.1.2.4 External Definitions

translation-unit: (§3.7)

external-declaration
translation-unit external-declaration

external-declaration: (§3.7)

function-definition
declaration

function-definition: (§3.7.1)

declaration-specifiersopt declarator declaration-listopt compound-statement

A.1.3 Preprocessing Directives

preprocessing-file: (§3.8)

groupopt

group: (§3.8)

group-part
group group-part

group-part: (§3.8)

pp-tokensopt new-line
if-section
control-line

if-section: (§3.8.1)

if-group elif-groupsopt else-groupopt endif-line

if-group: (§3.8.1)

#if constant-expression new-line groupopt
#ifdef identifier new-line groupopt
#ifndef identifier new-line groupopt

elif-groups: (§3.8.1)

elif-group
elif-groups elif-group

elif-group: (§3.8.1)

#elif constant-expression new-line groupopt

else-group: (§3.8.1)

#else new-line groupopt

endif-line: (§3.8.1)

#endif new-line

control-line:

#include pp-tokens new-line (§3.8.2)
#define identifier replacement-list new-line (§3.8.3)
#define identifier (identifier-list)opt replacement-list new-line (§3.8.3)
#undef identifier new-line (§3.8.3)
#line pp-tokens new-line (§3.8.4)
#error pp-tokensopt new-line (§3.8.5)
#pragma pp-tokensopt new-line (§3.8.6)
# new-line (§3.8.7)

lparen: (§3.8.3)

the left parenthesis character without preceding white space

replacement-list: (§3.8.3)

pp-tokensopt

pp-tokens: (§3.8)

preprocessing-token
pp-tokens preprocessing-token

new-line: (§3.8)

the new-line character


Previous Next Contents Index
  

1.800.AT.COMPAQ

privacy and legal statement