The source file must include the header file. Beyond that we can only guess at the problem without seeing the content of the source and header files. Do not post the files here. Such questions are better handled by the many C Programming forums available elsewhere on the internet.
Ideally, functions should only be declared in a header and defined in a translation unit (source file) that includes the header. However, trivial functions are often defined in a header as they are usually good candidates for inline expansion, but you must remember to declare the function inline. Often it is better to forward declare inline functions so that maintainers are not distracted by the implementation details which can be placed towards the end of the header, out of the way. However, a definition is also a declaration, so forward declaring an inline function is not a requirement unless there is a cyclic dependency issue where a forward declaration is necessary to break the cycle.
The FILE type is declared in stdio.h.
That means, the header of a function. The header is the top part, before the opening braces.
Declared is the right word. (Don't define functions in headers, unless you really know what you are doing.)
No predefined 'header' function in the standard C libraries. There are header files, if that's what you mean.
Usually declared only-oops.
Before a function can be called the compiler needs to know the function's type and the number and type of its arguments to ensure the call is valid. This information is provided by the function declaration, which must be visible to the compiler prior to the point of the call (a forward declaration). With a two-pass compiler, the declaration may be placed before or after the call point. Ideally, function declarations should be placed in a header file, with the functions grouped in some logical manner. For instance, all string-handling functions may be declared in a "string.h" header. in this way, the programmer need only include the header to ensure the declarations are consistent across all translation units that require those declarations. In addition, all types required by the function must also be declared to the compiler. Again, these may be placed in a header to ensure the types are declared consistently.
The std::pow() function can be found in the <cmath> header.
All function interfaces must be declared before they can be used. This is known as a forward declaration and is strictly enforced in C++ (but not in C). To facilitate this, interfaces are typically placed in a header file which can then be included in every source file that requires access to that function. The interface need not be defined (implemented) in the header unless the function is a template function. Typically, implementations are kept separate from interfaces (template function implementations are kept in the header but typically separated from the interface) since the interface contains everything the user needs to know in order to make use of the function.
loh
stdio.h
conio.h