C语言语法
程序-<外部聲明>|<程序外部聲明>
外部聲明-<函數定義>|<定義>
函數定義-<類型標識符> <聲明部分語句>
<標識符類型> -<無類型>|<字符>|<整型>|<浮點型>
<聲明>-<指針直接聲明> | <直接聲明>
<指針>-'*'|<*指針>
<直接聲明> → <標識符> | <直接聲明[ ]> | <直接聲明[常量表達式]> | <標識符(參數列表)> | <標識符()> | <直接聲明 , 標識符列表>
<標識符列表>:<標識符> | <標識符列表 ,標識符>
<常數表達式> → <條件表達式>
<參數列表> → <參數聲明> | <參數列表 ,參數聲明>
<參數聲明> → <說明符聲明><標識符>
<復合語句> →<{}>|<{語句列表}>|<{ <聲明列表> <語句列表> }>
<聲明列表> → <聲明> | <聲明列表> <聲明>
<聲明> → <初始化聲明> | <初始化聲明列表 ,初始化聲明>
<初始化聲明> → <聲明> | <聲明=初始化程序>
<初始化程序> → <表達式> | <{初始化程序列表}> | <{初始化程序列表,}>
<初始化程序列表> → <初始化程序> | <初始化程序列表 , 初始化程序>
<語句列表> → <語句> | <語句列表> <語句>
<語句> | <復合語句> | <表達式語句> | <選擇語句> | <循環語句> |<跳轉語句>
<表達式語句> → <表達式;>
<選擇語句> : < IF(表達式)語句> | < IF(表達式)語句 > < ELSE 語句>
<循環語句> → < WHILE(表達式)語句> | < FOR(表達式語句表達式語句)語句> | < FOR(表達式語句表達式語句表達式)語句>
<跳轉語句> | <continue;> |<breack;> | <return;> | <return 表達式; >
<賦值表達式> → <條件表達式> | <一元表達式> <賦值操作符> <賦值表達式>
<條件表達式> → <邏輯‘或’表達式> | <邏輯‘或’表達式?> <表達式:> <條件表達式>
<邏輯‘或’表達式> → <邏輯‘與’表達式> | <邏輯‘或’表達式> <‘或’運算> <邏輯‘與’表達式>
<邏輯‘與’表達式> → <邏輯‘或’表達式> | <邏輯‘與’表達式> <‘與’運算> <邏輯‘或’表達式>
<或運算表達式> → <異或表達式> | <或運算表達式‘|’ 異或表達式>
<異或表達式> : <與表達式> | <異或表達式 ^ 與表達式>
<與表達式> : <相等表達式> | <與表達式 & 相等表達式>
<相等表達式> : <關系表達式> | <相等表達式> <等于運算> <關系表達式> | <相等表達式> <不等于運算> <關系表達式>
?
<關系表達式> : <替換表達式> | <關系表達式 < 替換表達式> | <關系表達式 > 替換表達式> | <關系表達式<=替換表達式> | <關系表達式>=替換表達式>
<替換表達式> : <加法表達式> | <替換表達式> <左運算> <加法表達式> | <替換表達式> <右運算> <加法表達式>
<加法表達式> : <乘法表達式> | <加法表達式 + 乘法表達式> | <加法表達式 - 乘法表達式>
<乘法表達式> : <強制轉換表達式> | <乘法表達式 * 強制轉換表達式> | <乘法表達式 / 強制轉換表達式> | <乘法表達式 % 強制轉換表達式>
<強制轉換表達式> : <一元表達式> | <(類型名稱)強制轉換表達式>
<一元表達式> : <后綴表達式> | <加一運算> <一元表達式> | <減一運算> <一元表達式> | <一元運算符> <強制轉換表達式> | <結構體變量> <一元表達式> | <結構體變量(類型名稱)>
<后綴表達式> → : <基本表達式> | <后綴表達式 [ 表達式 ]> | <后綴表達式()> | <后綴表達式(參數表達式列表)> | <后綴表達式 . 標識符> | <后綴表達式> <指針運算> <標識符> | <后綴表達式> <加一運算> | <后綴表達式> <減一運算>
<基本表達式> → <標識符> | <常量> | <字符串> | <(表達式)>
<參數表達式列表> : <參數表達式> | <參數表達式列表 , 參數表達式>
<一元運算符> : <&> | <*> | <+> |<-> | <~> | <!>
< 賦值運算符> → <=> | <乘法賦值> | <除法賦值> | <求余賦值> | <加法賦值> | <減法賦值> | <左賦值> | <右賦值> | <與賦值> | <異或賦值> | <或賦值>
<儲存類說明符> → <typedef(定義類型)> | <extern(外部變量)> | <static(靜態)> | <auto(自動)> | <register(寄存器)>
<結構體或共用體說明符> : <結構體或共用體> <標識符> <{結構體聲明列表}> | <結構體或共用體 { 結構體聲明列表 }> | <結構體或共用體> <標識符>
<結構體或共用體> : <結構體> | <共同體>
<結構體聲明列表> : <結構體聲明> | <結構體聲明列表> <結構體聲明>
<結構體聲明> : <說明符限定符列表> <結構體聲明列表;>
<說明符限定符列表> → <類型說明符> <說明符限定符列表> | <類型說明符> | <類型限定符> <說明符限定符列表> | <類型限定符>
<結構說明符列表> → <結構說明符> | <結構說明符列表 , 結構說明符>
<結構說明符> → : <說明符> | <:常數表達式> | <說明符 : 常數表達式>
<枚舉說明符> → <枚舉{枚舉器列表}> | <枚舉標識符{枚舉器列表}> | <枚舉標識符>
<枚舉器列表> → <枚舉器> | <枚舉器列表 , 枚舉器>
<枚舉器> → <標識符> | <標識符 = 常數表達式>
<類型限定符> → <常量> | <變量>
<類型限定符列表> → <類型限定符> | <類型限定符列表> <類型限定符>
<參數類型列表> → <參數列表> | <參數類型列表 , 省略>
<參數列表> → : <參數說明> | <參數列表 , 參數說明>
<類型名稱> → <說明符限定符列表> | <說明符限定符列表> <抽象說明符>
<抽象說明符> → <指針> | <直接抽象說明符> | <指針> <直接抽象說明符>
<直接抽象說明符> → <(抽象說明符)> | <[ ]> | <[ 常數表達式 ]> | <直接抽象說明符[ ]> | <直接抽象說明符[ 常數表達式 ]> | <( )> | <(參數類型列表)> | <直接抽象說明符( )> | <直接抽象說明符(參數類型列表)>
<標記語句> → <標識符 : 語句> | <case> <常數表達式 : 語句> | <default> <語句>
轉載于:https://www.cnblogs.com/swxvico/p/6009617.html
總結
- 上一篇: ios开发人员mac空间不够用的解决办法
- 下一篇: 最近的特别问题(1)