Должно быть вот так (тест на внимательность) x.h
#pragma once /* то же что и "защита от многократного включения" */
extern int data;
main.c
#include "x.h"
int data = 0;
int main()
{
return data;
}
fun.c
#include "x.h"
int f()
{
data = 1;
return data;
}