0

C プログラミング言語の本では、静的変数の使用法とトピックwhat-does-static-mean-in-ac-programについて説明しています。

  1. 関数内の静的変数は、呼び出し間でその値を保持します。
  2. 静的グローバル変数または関数は、宣言されているファイルでのみ「表示」されます

本と同じように説明していますが、ポイント1は使えてポイント2は使えません。

私のコード:

header.h

static int VAL = 15;
int canShare = 1;

static void hello(char c) {
printf("header file -> VAL: %d\n", VAL);
printf("header file -> canShare: %d\n", canShare);

printf("hello func -> %d\n", c);
}

main.c

#include <stdio.h>
#include "header.h"

main() {

printf("main -> VAL: %d\n", VAL+1);
printf("main -> canShare: %d\n", canShare+1);

hello('A');
}

出力

main -> VAL: 16
main -> canShare: 2
header file -> VAL: 15
header file -> canShare: 1
hello func -> 65
4

3 に答える 3

0

グローバル レベルの静的変数は、インクルード経由で取得したか、メイン ファイルにあったかに関係なく、独自のソース ファイルでのみ表示されます。

于 2013-09-21T02:48:46.453 に答える