C Language Grammar

Source: Internet
Author: User

C Language Program--〉main function, call database | function declaration | function definition

Main function--〉 function definition variable | calling function

function declaration--〉 function name, argument, type

Defining a variable--〉 function type

Type--〉void| char| Int| FLOAT

Defining--〉 Defining Variables | calling functions

Parameter--〉 argument type, parameter name

Declaration → Pointer Direct declaration | Direct declaration

Pointer →* | * pointer

Direct Declaration → identifiers | Direct declaration []| Direct declaration [constant Expression]| Identifiers (parameter list) | Identifier () | (Direct declaration, List of identifiers)

Identifier list → identifiers | (identifier list, identifier)

Constant-expression → conditional-expression

parameter list → parameter declaration | (parameter list, parameter declaration)

parameter declaration → Descriptor declaration, identifier

Compound Statement →{} | {Statement List} | {Declaring list statement list}

Declaration List → Declaration | Declaration List Declaration

Declaration → Initialization Declaration | (Initialize declaration list, initialize declaration)

Declaration of initialization → Declaration | Declaration = Initialization Program

Initialization program → expression | {initialization Program List} | {Initialization program list,}

Initialization program list → initialization Program | (Initialize program list, initialize program)

Statement List → statements | Statement list

Statement → statement | Compound Statement | Expression Statements | SELECT statement | Loop Statement | JUMP statement

expression statement → expression;

SELECT statement →if (expression) statement | IF (expression) statement | ELSE statement

Loop statement →while (expression) statement | For (an expression statement; An expression statement) | For (an expression statement; An expression statement; An expression statement)

Jump Statement | continue; |breack; | return; | return expression;

Expression → assignment expression | (An expression, an assignment expression)

assignment expression → conditional expression | unary expression (Assignment operator) assignment expression

conditional expression → logical ' or ' expression | logical ' or ' expression? Expression: Conditional expression

Logical ' or ' expression → logic ' and ' expression | logic ' or ' expression ' or ' operation | logic ' and ' expression

Logic ' and ' expression '-logic ' or ' expression | logic ' with ' expression ' and ' operation (logical ' or ' expression ')

or op-expression → xor expression | or expression ' | xor expression

equality expressions → relational expressions | Equality expression equals an expression of an operation relationship | An equality expression is not equal to an expression of an operation relationship

Relationship expression → substitution expression | relationship expression Substitution expression | Relationship expression Substitution expression | Relational expression <= Substitution expression | < relationship expression >= substitution expression

Replace expression → addition expression | Subtraction-expression | Multiplication expressions

addition expression → multiplication expression >| (addition expression + multiplication expression) | (addition expression-multiplication expression)

multiplication expression → cast expression | (Multiplication expression * Cast expression) | (multiplication expression/cast expression) | (multiplicative expression% cast expression)

Basic Expressions → identifiers | Constants | string | (expression)

Unary operator →& | * | + |- | ~ | !

Assignment operator →=| Multiply Assign values | Division Assignment | finding remainder Assignment | addition Assignment | subtraction Assignment | Left Assignment | Right Assignment | and Assignment | XOR Assignment | or assignment

Storage class Descriptor →typedef (definition Type) | <extern (external variable) | <static (Static) | Auto (Auto) | Register (Register)

Specifiers qualifier list → type specifier specifier qualifier list | Type descriptor | Type Qualifier Descriptor Qualifier List | Type qualifier

Tag statement → (identifier: statement) | Case (constant expression: statement) | Default (statement)

C Language Grammar

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.