1樓:匿名使用者
編譯原理,而且不同的語法規則都是不同的,有些是允許巢狀,有些是不允許的,光看一個是沒什麼大意思的。學習編譯原理,語法、詞法分析。
2樓:匿名使用者
參見《c程式設計語言》的附錄,裡面有c語言「函式」的文法,照著那個解析就可以了
3樓:
有宣告 定義 型別 函式名 引數可有可無..
int max(int,int);
void main()
int max(int a,int b)int 是函式的返回型別,
max 是函式名也是函式的地址 也就是類似於陣列的首地址引數就不用說了吧..
4樓:匿名使用者
沒有好的辦法,自己寫正則判斷吧!
或者學習一下編譯原理,編譯原理裡面有介紹,比較複雜的說!
5樓:賴不胖子
我提供一個思路:
需要用到棧。把字元陣列掃描一遍,遇到左括號『(』或左大括號『』時看看棧頂元素是不是')'或者'}',若是則把棧頂元素彈出,繼續掃描陣列後面的元素;否則終止,可以斷定不是函式。
同時還需要判斷一點,就是其中有一個右括號『)』後面的是左大括號『{』,中間允許有空格,但不允許有別的字元。
如果陣列掃描完了而且也滿足第二點,就判定是函式。
我這方法只是單純從語法括號上判定,仍有不妥,僅供參考。
6樓:匿名使用者
編譯原理!!!文法什麼的狂看!!!!就知道了。
C語言高手請進
你的程式中存在一些邏輯問題和語法問題 編譯都過不了 1。max沒定義 2。a未定義 3。ab,cd只要十位數不為0就可以,而你卻判斷成ab 0,cd 0了 4。邏輯不夠清晰,最好有一個好的書寫習慣和風格,再多一些註釋幫你改了個新的 正確的,供參考 沒有改變你原有的變數名,最好要改一改 void js...
C語言高手請進
明顯有問題,你定義的a 80 已經規定了它有80個字元,但是你確定你輸入的這80字元都是有效的而不是 0 即如果a 80 abc 那麼這個字元陣列後面部分有77個 0 你一調換過來就成了a 80 0 0 cba 前面有77個 0 而字串的輸出一遇到 0 即停止了,所以你陣列的第一個元素就是 0 所以...
C語言高手請進急急
高金山 基本上就是這個思想,不太對,你再除錯一下吧 include define year 1970 typedef struct date 儲存12個月的天數 const int days 12 判斷是否為閏年 int isleapyear int year return 0 日期轉成1970年1...