共用方式為


遞迴函式

C 程式中的所有函式可以透過遞迴方式呼叫,即函式可以呼叫本身。 遞迴呼叫的數目受限於堆疊的大小。 /STACK 如需設定堆疊大小的連結器選項相關信息,請參閱 [堆棧配置] 鏈接器選項。 每次呼叫函式時,都會為參數和和 auto register 變數配置新的記憶體,以免覆寫先前未完成呼叫中的值。 只有在建立參數的函數執行個體中才能直接存取這些參數。 之前的參數無法直接存取,以確保函式的執行個體。

請注意,使用 static 記憶體宣告的變數不需要每個遞歸呼叫的新記憶體。 其儲存空間會與程式的存留期同時存在。 對這類變數的每個參考都會存取相同的儲存區域。

範例

下列範例示範遞迴呼叫:

int factorial( int num );      /* Function prototype */

int main()
{
    int result, number;
    .
    .
    .
    result = factorial( number );
}

int factorial( int num )      /* Function definition */
{
    .
    .
    .
    if ( ( num > 0 ) || ( num <= 10 ) )
        return( num * factorial( num - 1 ) );
}

另請參閱

函式呼叫