diff --git a/three_files/func.c b/three_files/func.c
new file mode 100644
index 0000000000000000000000000000000000000000..8f2a8a6e40a91256acba971276d98aaa8b544392
--- /dev/null
+++ b/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/three_files/func.h b/three_files/func.h
new file mode 100644
index 0000000000000000000000000000000000000000..0aa7479313d3ebc2e5afe4a49b3b8621d31e8516
--- /dev/null
+++ b/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/three_files/main.c b/three_files/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..97c7c73566f5738188a098aa3413d3d7938afee9
--- /dev/null
+++ b/three_files/main.c
@@ -0,0 +1,20 @@
+#include <stdio.h>
+#include "func.h"
+
+#define PRINT_ID
+
+int func_name_or_id()
+{
+#ifdef PRINT_ID
+	printf("201920756");
+	return 0;
+#else
+	printf("�����");
+	return 1;
+#endif
+}
+
+int main()
+{
+	func_name_or_id();
+}
\ No newline at end of file