提示コードですがなぜstaticグローバル変数はそのファイルのみしか使えないのにその外でも利用できるのでしょうか?
引用 [ グローバル変数にstatic修飾子を付けると、記述されたファイル内のみでの使用に制限されます。宣言、定義はソースファイルで行います。ヘッダーファイルでstatic修飾子を付けて宣言することはできません。 ]
とありますがヘッダーファイルでも宣言出来てしまうのですが...
c
1#include "stdio.h" 2#include "test.h"//インクルード 3 4 5 6 7int main() 8{ 9 st = 4; 10 11 12 return 0; 13}
c
1//ヘッダーファイル 2static int st; 3 4void test();
c
1//ソースファイル 2#include "test.h" 3 4void test() 5{ 6 st = 5; 7}
回答2件
あなたの回答
tips
プレビュー