c語言中,函式可以巢狀定義嗎,C語言中,函式可以巢狀定義嗎

2022-02-15 16:35:00 字數 3070 閱讀 5801

1樓:不改更待何時

取決於編譯器.

我在ubuntu16.04 用預設gcc,在eclipse中測試可以實現巢狀定義.

經測試在函式中定義的函式,在當前作用域可以被呼叫.

這樣一來,c語言貌似具有了一些物件導向的特性,使用起來比較方便

2樓:逢桃宦奕

定義的時候不能巢狀,但是定義的時候可以遞迴

3樓:匿名使用者

除了主函式以外都可以,不過在該函式巢狀定義前要宣告當中需要的函式。

4樓:流浪貓愛家

可以,函式巢狀定義前要宣告當中需要的函式

5樓:高金山

從來沒有聽說過「函式的巢狀定義」,但可以「巢狀呼叫」!

宣告,定義,呼叫,是3個不同的概念!

6樓:

在c中可以巢狀呼叫函式,但不可以巢狀定義函式。

函式巢狀呼叫是允許的。

int a()

函式巢狀定義是錯誤的。

int a()

7樓:新頁

當然不可以,沒有這一說,看來你得好好學一下函式的定義和呼叫了,別把它們整混了,先看書吧

8樓:

99年後的c語言就支援了,盡信書不如無書,用dev c++或者codeblocks測試一樣就會發現,c語言完全支援函式巢狀定義,這是c99國際標準裡的新規定,c99的乙個新特性。實踐是檢驗真理的唯一方法,既然寫了**,為什麼不編譯一下呢?或者在古老的vc6.

0裡編譯不了,那,試試最新的vc呢?最新版的vc試一試?就是看不慣一些人人云亦云,把真理埋沒了。

9樓:兜裡有兩塊糖

不可以巢狀定義,每乙個函式都有乙個記憶體位址,這個位址是函式的入口,它是不可以在其他函式中定義的。

但是函式可以巢狀呼叫,也就是在函式a中可以呼叫函式b

10樓:yxl_小路路

函式可以巢狀呼叫,但不可以巢狀定義

11樓:匿名使用者

yxl_小路路 是正確的

有些人混淆了呼叫和定義。。

c語言中是不能巢狀定義的!!

c語言中「函式的定義不可以巢狀,但函式的呼叫可以巢狀」是什麼意思???最好能舉例子說明!謝謝

12樓:匿名使用者

函式的定bai義不可以巢狀du

定義函zhi數a

void a() //定義a函式dao

},這是不對的,

但函式的呼叫

專可以嵌屬套

在主函式中呼叫x函式,x函式在呼叫y函式

void y() 定義y函式

void x() 定義x函式

void main()

13樓:放縱思想

首先你要明白函式的「定義」和「呼叫」各是什麼意思。

「函式的呼叫可以巢狀」這種說法不太準確,應該是說函式之間可以互相呼叫,

即a函式可以呼叫b函式,b函式可以呼叫a函式。

14樓:匿名使用者

函式的定義不可copy

以巢狀定義函bai數dua

void a() //定義a函式

},這是不對的,zhi

但函式的調

用可以巢狀

在主dao函式中呼叫x函式,x函式在呼叫y函式void y() 定義y函式

void x() 定義x函式

void main()

15樓:丁家宜大寶

所謂的定義bai函式就du是在乙個函式外宣告乙個zhi函式 可以是函式頭dao 如int fun(int ,int )屬於函式聲版明

函式體可權以在後來再輸入 但是一定要先宣告再使用 所謂不能巢狀定義就是不能再乙個函式體(任何乙個函式)內部宣告乙個函式 比如在main函式內就不能有int fun(int ,int )定義 這樣是錯誤的

乙個程式是從main函式開始的 也是從main函式結束的 這樣在main函式內呼叫其它函式就不矛盾了 如printf就是乙個函式 被呼叫了 屬於巢狀呼叫

巢狀呼叫可以舉個n的階乘的例子

int fun(int n)

即為巢狀呼叫 這個函式自己呼叫自己

c語言子函式中能巢狀函式嗎

16樓:匿名使用者

c語言的函式定義是互相平行的,獨立的,也就是說,在定義函式時,乙個函式內不能包含另乙個函式,不能巢狀定義函式(但pascal語言是可以巢狀定義的)。但能巢狀呼叫。

17樓:匿名使用者

當然可以 函式之間可以互相呼叫(除了main函式)

18樓:匿名使用者

我給你舉乙個例子吧:x<=0, y=-1;05, y=1;程式如下:#include

int main()

int fun1(int x)

int fun2(int x)

19樓:匿名使用者

為什麼不自己定義個函式試試呢。

c語言中不能再函式內定義函式嗎?

20樓:匿名使用者

不可以,即使主函式中也不可以,c語言只允許在函式中宣告和巢狀呼叫。

c語言中是不允許作巢狀的函式定義。因此程式中各個函式之間是平行的,不存在上一級函式和下一級函式的問題,這樣是為了簡化c語言編譯器的邏輯性。

21樓:

主函式裡怎麼能定義乙個函式呢?

主函式裡最多也 只能宣告乙個函式而已。

要區分什麼是定義,什麼是宣告。一般的c語言的書都會介紹的。

22樓:神吶

函式的呼叫可以巢狀,定義不可以巢狀。主函式不能視為一般函式看待,它和其他函式有很大的區別。

23樓:不離不棄芹

函式不能巢狀定義的,只能在外面定義然後在主函式呼叫

C語言裡面什麼叫做巢狀注釋,C語言中 在允許巢狀注釋和不允許巢狀注釋情況下的執行結果有什麼不同?

c語言巢狀注釋 對於乙個允許巢狀注釋的c編譯器,無論上面的符號串行後面跟什麼,都屬於注釋的一部分 而對於不允許巢狀注釋的c編譯器,後面跟的就是實實在在的 內容。也許有人因此想到可以在後面再跟乙個用一對引號引起的注釋結束符 如果允許巢狀注釋,上面的符號串行就等效於乙個引號 如果不允許,那麼就等效於乙個...

c語言中如何定義字串,C語言中如何定義字串?

可以用陣列或指標 陣列 char s 80 abcd 或者char s 80 說明 自動加字串結束標誌 0 char s 80 指標 char s char s abcd c語言是一門通內用計算機程式設計容語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯 處理低階儲存器 產生少量的機器碼...

問個C語言中for語句巢狀if的問題

d 0也就是說d為真,那麼應抄該執行 ee執行完畢後執行c 如此反覆,直到b為0,執行f 我想你想問的是d為0時的情況,那麼執行c,直到b為0,執行f我不已經說了麼,我想你想問的是d為0時的情況,那麼執行c,直到b為0,執行f 當d 0時 返回執行c。如果滿足b,就再執行d,不滿足就執行f c語言高...