C 函式定義能夠包含對另函式的呼叫麼?舉例說明

2021-04-19 08:29:19 字數 1838 閱讀 9696

1樓:匿名使用者

1、void函式一般作為一個語句執行的。如果想作為一個表示式,可以用int函式,因為這內樣才有返回值。

2、一容個函式定義不能出現在另一個函式的定義體中3、函式定義能夠包含對另一個函式的呼叫。比如(在main函式的定義體中呼叫printhello函式):

#include

#include

using namespace std;

void printhello()}

為什麼c++語言不允許在一個函式的定義中再定義另一個函式? 舉個例子說明,謝謝

2樓:

//標頭檔案test.h

void f();

//原始檔test.cpp

#include"test.h"

void f()

提示找不到函式g().

一般函式的宣告與定義放

在不同檔案中,宣告的標頭檔案中只有巢狀定義的外層函式,巢狀在函式f中的函式是找不著的。。。

3樓:匿名使用者

c++中允許函式的巢狀呼叫,但不允許函式的巢狀定義,例如:

#include

int swpint(int *a,int *b)void main()

swpint(&e,&f);

cout<

}error c2601: 'swpint' : local function definitions are illegal

4樓:_白龍子

編語言的人就這麼設計啊,你如果會編的話自己設計一個語言就能作到在一個函式的定義中再定義另一個函式了

c++一個函式怎麼呼叫另一個函式中的引數?

5樓:殘雪黃昏

如來果另一個函式中的引數源是該函式bai的動態區域性變數,那是du不可能的,除非想zhi點其他辦法,比dao如說跟蹤該區域性變數生成的地址,並且在該區域性變數的生存期內呼叫。但是這樣我不知道有什麼意義。

如果另一個函式中的引數的變數是函式的區域性靜態變數static,那麼也可以,不過得想點辦法。那就是跟蹤該靜態變數初始化時的地址。由於靜態變數都在全域性資料區分配記憶體,不管是全域性的還是區域性的。

那麼只要找到其初始化時的地址就可以了,到時候直接在函式內操作這個變數的記憶體地址。

如果另一個函式中的引數的變數不一定是區域性變數的話,那麼你可以定義為全域性變數,這樣的話就可以操作了。上面兩種方式,我不知道有什麼意義,除非搞crack的。

6樓:匿名使用者

一個函式,就象bai你的du函式a其中的變數只在函式被呼叫zhi時才生成dao和起作用,內函式執行結束,變數容p就失效了,所以它的值無法在函式執行後被儲存。

如果想在函式執行結束後還能儲存,需要在變數定義前加個「靜態」的修飾,如:static int p;但這還是不能被函式以外的語句直接訪問。

那麼就需要將函式的值想辦法傳出來,或者直接將p的定義提到函式外成為全域性變數。

7樓:匿名使用者

如果是一般函式,不能這麼用,你可以把p定義為全域性變數,就可以用。如果是c++,將這2個函式定義為成員函式,p為成員變數,也可以用

8樓:c基生物

可以全域性變數,或是用返回值,共用指標,物件

9樓:柯西序列

如果無法把

baip定義du為全域性變數,就定zhi義一個可dao以版

指向p的全域性指

權針。int * pointer = nullptr;

void a()

void b()

C函式怎樣呼叫呢,C 函式的定義和呼叫方法

首先,將c 函式分為靜態函式,例項化函式。當c 函式分為靜態函式,呼叫的方式 類.靜態函式名稱 當c 函式分為例項化函式,呼叫的方式 物件.例項化函式名稱 補充一下 在本類中呼叫函式時,不管是那種函式,直接呼叫 函式名稱 即可。最簡單的就是在要呼叫的地方,直接寫函式名稱。建構函式是物件導向的程式設計...

C語言主函式定義任意長度的一維陣列,主函式輸入陣列元素(已排序),分別呼叫函式

include define n 10 函式前置宣告 int sortarr int p,int n int printarr int p,int n 氣泡排序 int sortarr int p,int n return 0 列印回陣列 答 int printarr int p,int n int...

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

函式的定bai義不可以巢狀du 定義函zhi數a void a 定義a函式dao 這是不對的,但函式的呼叫 專可以嵌屬套 在主函式中呼叫x函式,x函式在呼叫y函式 void y 定義y函式 void x 定義x函式 void main 首先你要明白函式的 定義 和 呼叫 各是什麼意思。函式的呼叫可以...