> the reason is that i have a rather large file with 1k+ lines and roughly 18 functions, all in 1 source file.
This is not a large file by any means. So don't worry much with breaking it up. Unless of course, the file contains unrelated code. A good rule of thumb is to divide your source files so that each file contains code that is somehow related.
> i have tried before but kept getting "multiple definition" errors and a few others i cant remember,
Some things can make this happen. If you are trying to include a source file (.cpp, .c,...) into other sources files, for instance. Or if you are coding definitions inside a header file (.hpp, .h,...). Header files should not contain any definitions (with a few exceptions like class and structure definitions, iniline function definitions, const definitions).
> however i cant seem to manage it with structures.
Is it possible that you are defining your structures like this?
Code:
struct SomeStruct {
/* ... */
} foo;
By doing it you are both defining the struct SomeStruct (which is valid inside an header file), and defining a variable called
foo that is of type SomeStruct. That will create you problems when trying to include the header file in more than one source file. You will get a multiple-definitions error of
foo.