What is the purpose of anonymous { } blocks in C style languages?

后端 未结 17 1030
囚心锁ツ
囚心锁ツ 2020-11-28 09:34

What is the purpose of anonymous { } blocks in C style languages (C, C++, C#)

Example -



void function()
{

  {
    int i = 0;
    i = i + 1;
  }

          


        
17条回答
  •  北海茫月
    2020-11-28 09:36

    Scoping of course. (Has that horse been beaten to death yet?)

    But if you look at the language definition, you see patterns like:

    • if ( expression )   statement
    • if ( expression )   statement   else   statement
    • switch ( expression )   statement
    • while ( expression )   statement
    • do   statement   while ( expression ) ;

    It simplifies the language syntax that compound-statement is just one of several possible statement's.


    compound-statement:   { statement-listopt }

    statement-list:

    • statement
    • statement-list   statement

    statement:

    • labeled-statement
    • expression-statement
    • compound-statement
    • selection-statement
    • iteration-statement
    • jump-statement
    • declaration-statement
    • try-block

提交回复
热议问题