C言語でstaticを使う方法

下次还敢
下次还敢オリジナル
2024-05-09 10:48:21651ブラウズ

C 言語では、static キーワードは、静的スコープを持つように変数、関数、またはクラス メンバーを変更するために使用され、次の特徴があります: 内部リンケージ: 宣言されているファイル内でのみアクセスまたは呼び出しが可能です。値を保持する: 変数とローカル関数変数は、プログラムが終了するまで値を保持します。クラス スコープ: クラス メンバーはクラス全体に属し、すべてのインスタンスが同じデータを共有します。定数: 静的 const クラスのメンバーは、コンパイル時の定数として宣言できます。

C言語でstaticを使う方法

C言語でのstaticの使用法static用法

什么是static

static是一个关键字,用于修饰变量、函数或类成员,表示其具有静态作用域。

变量的static作用域

对于变量,static表示:

  • 内部链接:static变量只能在声明它的文件内访问。
  • 保留值:static变量在程序结束之前一直保留其值,即使它所在的函数已经退出。
  • 默认初始化:全局static变量被初始化为0,局部static变量被初始化为垃圾值。

函数的static作用域

对于函数,static表示:

  • 内部链接:static函数只能在声明它的文件内调用。
  • 局部作用域:static函数的局部变量具有与static变量相同的内部作用域和值保留特性。

类成员的static作用域

对于类成员,static表示:

  • 类作用域:static类成员属于整个类,而不是任何特定对象。
  • 共享数据:所有类实例共享同一份static类成员。
  • 常量: static const类成员可以声明为编译时常量。

何时使用static

使用static

  • staticとは何ですか?
  • static は、変数、関数、またはクラス メンバーを変更して、静的スコープを持つことを示すために使用されるキーワードです。
  • static 変数のスコープ

変数の場合、static は以下を意味します:

🎜内部リンク: 🎜static 変数はアクセスのみ可能ですそれが宣言されているファイル内で。 🎜🎜🎜保持される値: 🎜static変数は、変数が含まれている関数が終了した場合でも、プログラムが終了するまでその値を保持します。 🎜🎜🎜デフォルトの初期化: 🎜グローバル static 変数は 0 に初期化され、ローカル static 変数はガベージ値に初期化されます。 🎜🎜🎜🎜static 関数のスコープ 🎜🎜🎜関数の場合、static は以下を意味します: 🎜🎜🎜🎜内部リンク: 🎜static 関数のみ宣言されているファイル内で呼び出されます。 🎜🎜🎜ローカル スコープ: 🎜 static 関数のローカル変数には、static 変数と同じ内部スコープと値保持プロパティがあります。 🎜🎜🎜🎜クラスメンバーのstaticスコープ🎜🎜🎜クラスメンバーの場合、staticは以下を意味します: 🎜🎜🎜🎜クラススコープ: 🎜staticClassメンバーは特定のオブジェクトではなく、クラス全体に属します。 🎜🎜🎜共有データ: 🎜すべてのクラス インスタンスは、同じ static クラス メンバーを共有します。 🎜🎜🎜定数:🎜 static const クラスのメンバーは、コンパイル時の定数として宣言できます。 🎜🎜🎜🎜static を使用するのはどのような場合ですか? 🎜🎜🎜static を使用する一般的なシナリオは次のとおりです: 🎜🎜🎜変数または関数の可視性を制限する 🎜🎜関数のローカル変数の状態を保持する 🎜🎜クラスで共有データを使用する 🎜🎜コンパイルを宣言する時定数🎜 🎜🎜🎜例🎜🎜
<code class="c">// 外部变量,全局可见
int external_var = 10;

// 静态变量,仅在本文件中可见且保留其值
static int static_var = 20;

// 静态函数,仅在本文件中可见且局部变量保留其值
static void static_func() {
    static int local_var = 30;
    local_var++;
}

// 静态类成员,所有对象共享
class MyClass {
public:
    static int shared_var = 40;
};</code>

以上がC言語でstaticを使う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。