On Mon, 13 Feb 2006 09:23:26 +0100, "Paminu" <> wrote:
>I am implementing a double-linkedlist in C. I have defined some pointers
>that points to different locations in my list. Before using the list I will
>initialize these pointers and when I call insert/delete etc they will be
>changed.
>
>Instead of giving each funtion these pointers as argumentens I was wondering
>if it was possible to place them i a .h file and initialize them there. When
>a function changes the pointers they will be updated in the .h file which
>will always contain the most updated version of the pointers.
>
>Is this possible?
Possible, yes. Desirable, probably not.
..h files, as the term is used in C, are used during compilation, not
during linking and not during execution.
Most of the experienced contributors recommend not placing object or
function definitions in a .h file, only declarations, typedefs, macro
definitions, etc. If your program has multiple source files that
include the .h files and you put the pointer definitions and
initialization in the .h file, then when you link the multiple object
modules the linker will report multiple definitions of the pointers.
If you want to establish the pointers as global variables so that all
of your functions have access to them, the preferred approach is to
declare them as EXTERN in the .h file, define them in the source file
containing main(), and #include the .h file in every source module.
However, the conventional wisdom is avoid globals unless absolutely
necessary.
Remove del for email
|