C語言 可以在函式中定義另函式為什麼不對

2021-04-03 13:30:49 字數 2925 閱讀 2040

1樓:金色潛鳥

c語言程式結構是:

標頭檔案和巨集

全域性量宣告

主函式main

函式1函式2。。。。

函式nc語言程式,必須有一個主函式,可以有1個或多個其它函式,所有的函式塊是平行的,並列的。

不允許 在一個函式中定義另一個函式。

語法規則如此。這只是一種規定和約定。並不是說其它的計算機語言,或將來發明的計算機語言也必須如此。

2樓:匿名使用者

呵呵,這個問題簡單的回答是c語言規定了不能這樣。c語言是計算機的一門語言,也有其特定的語法,就像英語那樣,不合語法規定的我們就認為是錯誤的或不地道的或有歧義的。但計算機只有正確(1)與錯誤(0),沒得選了。

至於為什麼當初制定語法時這樣規定了(好像是先有實踐,後有理論的哦,呵呵),我認為可以從下面的幾點看:

1。從c/c++編譯器編譯方式來看。編譯器編譯的方式是逐條往下編譯的。

要是一個函式中又定義一個函式,則編譯器很容易搞混,分不清到底那一句是函式1的那一句是函式2的,就很有可能上面一句是函式1的,下一句就直接跳到函式2的,跳來跳去的,也只有人能認清,計算機沒有像人那樣的跳躍思維。所以,語法就這樣規定了,這樣就可以避免很多的混亂和錯誤。

2.從審美的角度來看。其實不用我多說,你一看到一個函式裡又定義另一個函式時,你就覺得很亂了。尤其是當**寫得很長很長是,更弱爆了!

3.從使用,管理方便角度看。這樣規定了,可以使程式設計模組化,就是不用等前面的寫完,後面的才能寫。它可以同時進行n個模組(模組可以簡單的認為是一個或多個的函式),方便且提高效率啊。

3樓:陌語哲偤

簡單的是c語言規定了不能這樣。c語言是計算機的一門語言,也有其特定的語法,就像英語那樣,不合語法規定的就認為是錯誤的或不地道的或有歧義的。

c語言中能否在一個自定義函式中呼叫另一個自定義函式?

4樓:七班趙子龍

當然copy

可以!c語言程式的最基本的模組就是函式,

該程式規定:任意函式都可以呼叫其它任意一個函式,包括函式本身;

1、函式呼叫自己本身, 這種稱為遞迴;

通過遞迴,計算1+2+3+...+n值的**:

2、自定義函式呼叫其它自定義函式的例子:

這個例子就是主函式呼叫自定義函式fun2,然後fun2呼叫另一個自定義函式fun1;

c語言:可以在一個函式中定義另一個函式為什麼不對?謝謝

5樓:海天盛筵

main函式不是必須定義的,可以嘗試放在其他函式前面,放在其他函式的上面,下面,都可以。

當編譯器編譯時,它逐行編譯。但它首先找到主函式,當主函式被編譯時,它意味著程式被編譯。如果主函式位於其他函式之前,則在主函式中呼叫的子函式(自定義函式)將在主函式之前宣告其存在。

void fun(int n,int m);

在大多數程式語言中,必須宣告(或在使用之前定義)變數、函式(過程)、結構、類、物件等。如果在使用其函式之前沒有宣告或定義編譯,則編譯失敗。它還報告錯誤:

未定義的變數或函式,等等。

擴充套件資料:

main函式,又稱主函式,是程式執行的起點。c程式最大的特點就是所有的程式都是用函式來裝配的。main()稱之為主函式,是所有程式執行的入口。

其餘函式分為有參或無參兩種,均由main()函式或其它一般函式呼叫,若呼叫的是有參函式,則引數在呼叫時傳遞。

int main(void)//整數型別 主函式(無型別)

f1(int a,int b)//f1(整數型別 a,整數型別 b)

f2(int m,int n)//f2(整數型別 m,整數型別 n){

6樓:匿名使用者

呵呵,這個問題簡單的回答是c語言規定了不能這樣。c語言是計算機的一門語言,也有其特定的語法,就像英語那樣,不合語法規定的我們就認為是錯誤的或不地道的或有歧義的。但計算機只有正確(1)與錯誤(0),沒得選了。

至於為什麼當初制定語法時這樣規定了(好像是先有實踐,後有理論的哦,呵呵),我認為可以從下面的幾點看:

1。從c/c++編譯器編譯方式來看。編譯器編譯的方式是逐條往下編譯的。

要是一個函式中又定義一個函式,則編譯器很容易搞混,分不清到底那一句是函式1的那一句是函式2的,就很有可能上面一句是函式1的,下一句就直接跳到函式2的,跳來跳去的,也只有人能認清,計算機沒有像人那樣的跳躍思維。所以,語法就這樣規定了,這樣就可以避免很多的混亂和錯誤。

2.從審美的角度來看。其實不用我多說,你一看到一個函式裡又定義另一個函式時,你就覺得很亂了。尤其是當**寫得很長很長是,更弱爆了!

3.從使用,管理方便角度看。這樣規定了,可以使程式設計模組化,就是不用等前面的寫完,後面的才能寫。它可以同時進行n個模組(模組可以簡單的認為是一個或多個的函式),方便且提高效率啊。

7樓:金色潛鳥

c語言程式結構是:

標頭檔案和巨集

全域性量宣告

主函式main

函式1函式2。。。。

函式nc語言程式,必須有一個主函式,可以有1個或多個其它函式,所有的函式塊是平行的,並列的。

不允許 在一個函式中定義另一個函式。

語法規則如此。這只是一種規定和約定。並不是說其它的計算機語言,或將來發明的計算機語言也必須如此。

8樓:志傑魯

c語言語法不支援這樣做。函式之間是平等的關係,不能互相包含,只能互相呼叫

9樓:匿名使用者

不可以這樣。c++ 不支援這種形式。

10樓:讓娜閉湛英

說不能的都沒試過。c語言支援函式內定義函式。

int func()

g();

return 0;

}沒有問題。

c中,在函式內是否可以再定義函式

函式內部肯定是不能定義函式的,只能使用,想想,在main函式裡能定義函式嗎,在函式內可以再呼叫另一個函式,但是定義要在這函式外面 不能直接定義,但可以通過函式物件實現,內 void fun 函式對容象 nesetfun fun fun 10 不能。可在類定義巢狀類。在函式內可以再定義一個函式嗎?c ...

c語言 函式的定義的小問題,C語言 函式的定義的小問題

注意這個函式的兩點 第一個引數是char,什麼是char?在32位的機器上,char可以看成1個位元組的整數,a b 這樣的asii字元是char,a選項中的 abc c選項中的 65 都不是char,實際上他們什麼都不是,所以排除ac 第二,返回是void的。那麼b取了函式的返回值,所以b也是錯誤...

C語言中函式的定義格式是什麼,函式原型宣告的語法格式

函式定義就是規定函式的格式與功能。函式宣告就是在函式呼叫之前進行的一種說明。下面舉例說明兩者的語法格式 include int fun int a,int b 函式的宣告void main 下面的fun函式就是函式的定義 int fun int a,int b 注 如果被調函式 上例中為fun函式 ...