From 7faf53b701ee34eff0187ee4cc71e2bd7f23a098 Mon Sep 17 00:00:00 2001 From: Tomasz Matejuk Date: Tue, 6 Oct 2020 15:48:13 +0200 Subject: [PATCH] Example on how to divide c programm into multiple files with compilation instruction, and simple Makefile. --- OneProgramInMultipleFiles/.gitignore | 2 ++ OneProgramInMultipleFiles/Makefile | 17 +++++++++++++++++ OneProgramInMultipleFiles/README.md | 8 ++++++++ OneProgramInMultipleFiles/function1.c | 7 +++++++ OneProgramInMultipleFiles/function1.h | 7 +++++++ OneProgramInMultipleFiles/function2.c | 7 +++++++ OneProgramInMultipleFiles/function2.h | 7 +++++++ OneProgramInMultipleFiles/main.c | 18 ++++++++++++++++++ 8 files changed, 73 insertions(+) create mode 100644 OneProgramInMultipleFiles/.gitignore create mode 100644 OneProgramInMultipleFiles/Makefile create mode 100644 OneProgramInMultipleFiles/README.md create mode 100644 OneProgramInMultipleFiles/function1.c create mode 100644 OneProgramInMultipleFiles/function1.h create mode 100644 OneProgramInMultipleFiles/function2.c create mode 100644 OneProgramInMultipleFiles/function2.h create mode 100644 OneProgramInMultipleFiles/main.c diff --git a/OneProgramInMultipleFiles/.gitignore b/OneProgramInMultipleFiles/.gitignore new file mode 100644 index 0000000..3e0f233 --- /dev/null +++ b/OneProgramInMultipleFiles/.gitignore @@ -0,0 +1,2 @@ +a.out + diff --git a/OneProgramInMultipleFiles/Makefile b/OneProgramInMultipleFiles/Makefile new file mode 100644 index 0000000..8ec0924 --- /dev/null +++ b/OneProgramInMultipleFiles/Makefile @@ -0,0 +1,17 @@ +# +#simple makefile with only explicyt rules +# + +TARGET= a.out +$(TARGET): main.o function1.o function2.o + gcc -o $(TARGET) main.o function1.o function2.o + +main.o: main.c + gcc -c main.c + +function1.o: function1.c function1.h + gcc -c function1.c + +function2.o: function2.c function2.h + gcc -c function2.c + diff --git a/OneProgramInMultipleFiles/README.md b/OneProgramInMultipleFiles/README.md new file mode 100644 index 0000000..33a2918 --- /dev/null +++ b/OneProgramInMultipleFiles/README.md @@ -0,0 +1,8 @@ +example how to create c program that uses more than one file + +compile with command : + gcc -Wall main.c function1.c function2.c + +or with command : + make + diff --git a/OneProgramInMultipleFiles/function1.c b/OneProgramInMultipleFiles/function1.c new file mode 100644 index 0000000..ae53b0c --- /dev/null +++ b/OneProgramInMultipleFiles/function1.c @@ -0,0 +1,7 @@ +#include "function1.h" + +int func1(int a, int b) +{ + return 2*(2*a+b); +} + diff --git a/OneProgramInMultipleFiles/function1.h b/OneProgramInMultipleFiles/function1.h new file mode 100644 index 0000000..51849d4 --- /dev/null +++ b/OneProgramInMultipleFiles/function1.h @@ -0,0 +1,7 @@ +#ifndef FUNCTION1_H +#define FUNCTION1_H + +int func1(int a, int b); + +#endif + diff --git a/OneProgramInMultipleFiles/function2.c b/OneProgramInMultipleFiles/function2.c new file mode 100644 index 0000000..70e98fc --- /dev/null +++ b/OneProgramInMultipleFiles/function2.c @@ -0,0 +1,7 @@ +#include "function2.h" + +int func2(int a, int b) +{ + return a-2-1*3*b; +} + diff --git a/OneProgramInMultipleFiles/function2.h b/OneProgramInMultipleFiles/function2.h new file mode 100644 index 0000000..ecd7eaf --- /dev/null +++ b/OneProgramInMultipleFiles/function2.h @@ -0,0 +1,7 @@ +#ifndef FUNCTION2_H +#define FUNCTION2_H + +int func2(int a, int b); + +#endif + diff --git a/OneProgramInMultipleFiles/main.c b/OneProgramInMultipleFiles/main.c new file mode 100644 index 0000000..f78b6fe --- /dev/null +++ b/OneProgramInMultipleFiles/main.c @@ -0,0 +1,18 @@ +#include +#include "function1.h" +#include "function2.h" + +int main(void) +{ + int a, b; + printf("Insert two numbers: "); + if(scanf("%d %d", &a, &b)!=2) + { + fputs("Invalid input", stderr); + return 1; + } + printf("func1 result: %d\n", func1(a, b)); + printf("func2 result: %d\n", func2(a, b)); + return 0; +} +