Как то раз я сделал простой тест для Linux и был в шоке:
(Тест был сделан потому, что мне по наследству достался проект
из ~2000 года. Где автор постоянно этим пользовался, а я долго
не мог понять как всё работает)
//---------------------------------------------------------------------------
// file hello.h 2020.11.09
//---------------------------------------------------------------------------
#ifndef __HELLO_H_
#define __HELLO_H_
int iii;
void h2test(void);
#endif
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// file hello.c 2018.09.18
//---------------------------------------------------------------------------
// gcc -o hello hello.c h2.c
//---------------------------------------------------------------------------
#include <stdio.h>
#include "hello.h"
int main (void)
{
iii=17; printf ("main iii=%d\n",iii);
h2test();
iii=19; printf ("main iii=%d\n",iii);
h2test();
iii=237; printf ("main iii=%d\n",iii);
h2test();
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// file h2.c 2020.11.08
//---------------------------------------------------------------------------
#include <stdio.h>
#include "hello.h"
void h2test(void)
{
printf("h2test, iii=%d\n",iii);
}
//---------------------------------------------------------------------------
Программа успешно собралась и заработала.
Результат:
[Sasha@FEDORA14 hello]$ ./hello
main iii=17
h2test, iii=17
main iii=19
h2test, iii=19
main iii=237
h2test, iii=237