急C語言的高手請進!!如何確定函式體

時間 2021-10-30 05:21:12

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...