首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C/C++ 函數調用返回不同值:靜態變量實現

     編輯:程式設計疑難解答

需求

函數 A 調用函數 B,要求 B 每次調用返回不同數值。

解決方案

在 B 函數內部使用 static 局部變量保存狀態:

int B() {
    static int counter = 0;
    return ++counter; // 每次調用返回 1,2,3...
}

// 或根據業務邏輯
int B() {
    static int values[] = {10, 20, 30};
    static int idx = 0;
    return values[idx++ % 3];
}

原理

  • static 變量在程序生命周期內僅初始化一次,保持值不隨函數返回銷毀。
  • 線程不安全,多線程環境需加鎖或用原子操作。

這是實現「有狀態函數」的最簡單標準方法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved