回覆列表
  • 1 # 電子哥的日常

    C語言中函式名稱是否定義正確,這個問題很簡單。

    1、現在大學工科專業都開設C語言這門課程,都會有上機練習。你可以定義一個函式,然後將函式呼叫在main()函式中。然後編譯,如果編譯沒有出錯,說明你定義的函式是正確。

    2、我們經常用微控制器來做為處理器,比如51微控制器,我們需要用編譯軟體keil軟體來編譯程式。我們也可以在裡面定義一個函式,將函式放到main函式中執行,如果你定義的函式不正確,keil編譯肯定編譯通不過的。

    3、C語言,有很重語法規則,我們學習C語言時,一定要記住這些規則,包括一些變數的定義。我們新定義個函式時,函式名的命名要遵守C語言的規則,還需要遵守程式設計師常用的規則。函式命名要簡單易記,讓人看到函式名字知道這個函式的作用。函式的命令,要看到其名知道其意,知道這個函式的功能是什麼。程式設計師撰寫程式後,肯定會讓其他人來維護,別人來維護,肯定要理解這套程式。而程式都是由函式和變數組成。如果你寫的函式,函式名雜亂無章,程式維護很麻煩。

    所以,判斷函式命令是否正確,可以透過編譯軟體來判斷,如果命名正確,軟體編譯會透過。同時對函式命名,我們要遵守程式設計師常用的規則。

  • 2 # EXCEL進階課堂

    題主的問題是:正確定義函式首部的形式是如何判斷的?我把這個問題理解為:如何正確地定義函式的首部?

    1 什麼是函式?

    什麼是函式呢?在這裡,只談自己的理解:函式就是具有一定格式,完成特定功能的程式段。簡單理解,函式就是一個工具,它具有一定格式,完成特定功能。鋼筆就是一個函式,水杯也是一個函式,手槍也是一個函式。

    2 函式由哪幾個部分組成?

    函式具有一定格式。它一般來說由兩部分組成,其一是函式頭,也說就是題主說的函式首部;其二是函式體,也就是函式功能的具體實現程式碼。

    3 函式頭如何正確定義呢?

    函式頭一般來說由三個部分組成:函式型別、函式名、形參。

    (1)函式型別如何確定?

    函式型別根據函式返回值的型別來確定。函式返回值是什麼型別,函式型別就宣告為什麼型別。如果一個函式沒有返回值,就定void型。

    (2)函式名如何確定?

    函式名稱,一般由程式設計師自行定義。在C語言中,函式名定義要遵循兩點:其一是符合識別符號的命名規則,即只能由字母、數字、下劃線組成,且首字元不能是數字;其二是符合行業規範,如見名知義,如駝峰命名法等。

    (3)形參如何確定?

    在函式定義中,形參確定是一個難點,也是初學者最不容易理解的地方。

    形參是什麼?形參是為實參預留的儲存空間。看到這句話時,很多人都無法理解。在這裡舉一個例子。前面舉例說,手槍就是函式。手槍是一個工具,它具有特定功能,具有一定格式。

    手槍先要製造出來(函式定義階段),然後才能使用(函式呼叫階段)。

    生產手槍就是在製造一個函式,在生產手槍的時候,是需要製作彈夾的。彈夾是用來做什麼用的呢?是為使用手槍時用來裝子彈的。在生產的時候,我們就需要為使用時預留下裝子彈的空間。這就是我們說的形參。

    一個函式要不要形參?要幾個形參?形參是什麼型別?這是關於形參的追命三連問,也是難點中的難點。對於這些問題的解決,請看下面總結的原則:

    初看有點費解,接下來我們看一個例項。

    例:設計一個函式,返回兩個整數的和。

    (1)確定函式型別

    這個函式有沒有返回值?有。

    什麼型別?整型,取為int型。

    (2)確定函式名稱

    求兩個整數之和,取名為 sum

    (3)要不要形參,要幾個形參,什麼型別?

    要求兩個整數之和,我們必須知道什麼?必須知道這兩個整數。

    這兩個整數現在知道嗎?不知道。

    為了求兩個整數之和,我們必須知道兩個整數,現在又不知道,怎麼辦,定義成形參。

    按總原則分析,需要2個整型的形參,定義形參的變數就是已知條件,只管使用即可。

    透過以上分析,我們得出了這個函式的函式頭。

    int sum(int a,int b)

    函式體很簡單

    int sum(int a,int b)

    return a+b;

    }

  • 3 # 答客誚

    這就要涉及到C語言底層的細節設計了,而這個底層設計的關鍵就在於C的編譯器。第一部是詞法分析,編譯器透過構造DFA識別單詞形式上的正確,即拼寫正確;第二步是語法分析,這部分就和你說的問題相關了,編譯器透過很多方法(例如LR,LL,RR,RL法)識別語法上的正確與否。透過產生函式的文法來達到對C語言函式申明形式,你的書寫對不對,而程式語言的文法大多為CFG文法(context free grammar)。文法即像句子語法分析那樣,例如主語->名詞 名詞->我諸如此類。而CFG文法則是限制稍小的一類文法,對於C,文法還有不同,具體參考編譯原理。這部分解決是否能正確構成程式。下一個部分就要判斷函式語義,這部分由語義分析完成,要藉助屬性文法;最後經過構造與程式執行相關的符號表,已經程式碼最佳化就可以生成中間程式碼,最後轉化為計算機可執行程式碼

  • 中秋節和大豐收的關聯?
  • 大一女生一枚,不會和男生交流,連招呼都不敢打的那種,想知道該如何和男生交流?