まじですか…。数年ぶりにプログラム書いてますが、色々と忘れちゃったなあ。

この場合dataの実体はfile1にあって、file2では外部参照していることになるんでしょうか?
記憶ではその場合、externを使って宣言しないといけなかったと思うのですが。


--------------------
<file1.c>
#include "file2.h"
static uint8_t data = 10;
void main(void)
{
uint8_t i = 0;
func2();
for(i = 0; i < data; i++);
}

<file2.c>
static uint8_t data;
void func2(void)
{
data = 5;
}

<file2.h>
void func2(void);
--------------------


こうすればfile1のdataとfile2のdataは別々の場所に作られ、それぞれのファイル内でしか参照することが出来なくなりますか?