Я предполагаю, что b - это другой исходный файл. Вы можете так что-то вроде:
file: file.h
#ifndef _FILE_H_
#define _FILE_H_
struct emp {
char name[100];
};
#endif
файл: a.c
#include "file.h"
extern struct emp e; // declare struct var as extern.
int main() {
printf("Name = %s\n",e.name);
return 0;
}
файл: b.c
#include "file.h"
struct emp e = {"stackoverflow"}; // struct var defined here.
На ходу:
$ gcc *.c && ./a.out
Name = stackoverflow
Ваш вопрос очень неясен, и вы не новы на SO.