How to organize files to write include?

Discussion in 'C Programming' started by Kevin Handy, Sep 15, 2006.

  1. Kevin Handy

    Kevin Handy Guest

    Sounds like a troll already.
    Bad engrish, lack of caps, etc.
    some of the problems:

    1. main should return an int.
    2. Include files should not contain executable code.
    You want to end up with one copy of each function,
    and putting code in include files causes the function
    to be expressed every time you include the file,
    causing the linker to be upset about multiple definitions.
    3. Include files should end in a '.h' extension.
    It's a convention, and most C programmers expect it.
    This allows for a 'cc *.c -o xxx' at the command line
    to compile most simple programs.
    4. Since lib_adapter.c, lib_a.c, and lib_b.c are all
    included in main.c, why are you compiling them a
    second time?
    5. main should return a value.
    6. need() is not implementated anywhere.
    7. Neither "USING_LIBA" nor "USING_LIBB" are defined,
    thus foo() is a null function.
    8. need() is prototyped after use, instead of before.
    Why can't it be complained. I see lots of things to complain about.
    What errors do you get? Are we supposed to guess?
    What happens when you try? What error do you get?
    You don't seem to really understand the purpose of
    include files.
    Kevin Handy, Sep 15, 2006
    1. Advertisements

  2. Kevin Handy

    key9 Guest

    Hi all

    look at the organize tree

    #include lib_adapter.c

    #include "foo_liba.c"
    #include "foo_libb.c"

    void foo(){
    #ifdef USING_LIBA
    #ifdef USING_LIBB

    void need();

    void foo_liba()

    void foo_libb()

    gcc -o main main.c lib_adapter.c lib_a.c lib_b.c
    the code can not be complained , what I want to know is

    I can not put need() out side of the lib_adapter.c to write include structure
    2.need I have to write .h file instead of include c file?

    best regards

    your key9
    key9, Sep 15, 2006
    1. Advertisements

  3. Kevin Handy

    Thad Smith Guest

    Do you mean that gcc does not give error messages or warnings? If not,
    I can't interpret your comment.
    Questions should have a subject, verb, and end in a question mark, as
    well as ask a question: "How can I include a structure in my program?"
    That might not be the question you intended to ask. I think you are
    asking about how to use #include statements in a program.

    By convention, C programs are separated into code files and declaration
    files. The code files contain function definitions and normally have an
    extension of .c. The declaration files have declarations normally used
    by multiple code files and have an extension of .h. These naming and
    organizational conventions are not requirements of the language, though,
    and compilers don't care what extensions are used on the files.

    Normally .c files are each compiled into a separate object file, then
    the object file are linked into a single executable file. In contrast,
    I have used a C dialect compiler (for small microprocessors) that
    requires all code files to be compiled together -- it cannot compile to
    object files and link. For that compiler, it is typical to have a main
    file include other code files. This is not recommended for normal use,
    No. In general you should compile code files separately and link them.
    I recommend writing a header file for each code and placing the
    prototypes (and other definitions required to use the code module) in
    the associated header file. Then include the header file in both the
    code file defining the functions and code files using the defined functions.

    I suggest finding a good text book on C.
    Thad Smith, Sep 16, 2006
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.