diff --git a/8.5/three_files/func.c b/8.5/three_files/func.c
new file mode 100644
index 0000000000000000000000000000000000000000..8f2a8a6e40a91256acba971276d98aaa8b544392
--- /dev/null
+++ b/8.5/three_files/func.c
@@ -0,0 +1,11 @@
+#include "func.h"
+
+int func1(int a)
+{
+	return (a * 10);
+}
+
+int func2(int a)
+{
+	return (a * 2);
+}
\ No newline at end of file
diff --git a/8.5/three_files/func.h b/8.5/three_files/func.h
new file mode 100644
index 0000000000000000000000000000000000000000..0aa7479313d3ebc2e5afe4a49b3b8621d31e8516
--- /dev/null
+++ b/8.5/three_files/func.h
@@ -0,0 +1,3 @@
+#pragma once
+#define DF(a) ((a)*(a))
+extern int func1(int x);
\ No newline at end of file
diff --git a/8.5/three_files/main.c b/8.5/three_files/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..2f2c8826140c1448b4307dd70d64a9d84840555c
--- /dev/null
+++ b/8.5/three_files/main.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+#include "func.h"
+
+int func_name_or_id()
+{
+#ifdef PRINT_ID
+	printf("201920756");
+	return 0;
+#else
+	printf("�����");
+	return 1;
+#endif
+}
+
+int main()
+{
+	func_name_or_id();
+}