I\'m a C newbie and I was just trying to write a console application with Code::Blocks. Here\'s the (simplified) code: main.c:
#include
#incl
You actually compile the source code of test.c
twice:
test.c
itself,main.c
which includes all the test.c
source.What you need in your main.c
in order to use the test()
function is a simple declaration, not its definition. This is achieved by including a test.h
header file which contains something like:
void test(void);
This informs the compiler that such a function with input parameters and return type exists. What this function does ( everything inside {
and }
) is left in your test.c
file.
In main.c, replace #include "test.c"
by #include "test.h"
.
A last point: with your programs being more complex, you will be faced to situations when header files may be included several times. To prevent this, header sources are sometimes enclosed by specific macro definitions, like:
#ifndef TEST_H_INCLUDED
#define TEST_H_INCLUDED
void test(void);
#endif