modularisierung (funktionen) in c ?



  • Hallo zusammen

    Ich habe ein Problem beim modularisieren (h-file, c-file) in meiner C-Anwendung (für mplab, pic-programmierung).

    folgendes habe ich geschrieben:

    --------------------------------------------------
    main.c (main-programm):

    ..
    ..
    #INCLUDE "huascarInitSpecial_IO.h"
    ..
    ..
    void init_special_IO();
    ..
    ..

    ------------------------------------------------------

    huascarInitSpecial_IO.c :

    #include "huascarInitSpecial.h"

    void init_special_IO()
    {
    set_tris_A(0xFF);
    setup_adc_ports(ALL_ANALOG);
    set_tris_B(0b00111111);
    set_tris_C(0xFF);
    }

    --------------------------------------------------

    huascarInitSpecial_IO.h :

    #ifndef HUASCAR_INIT_SPECIAL_IO
    #define HUASCAR_INIT_SPECIAL_IO

    void init_special_IO();

    #endif

    ----------------------------------------------------

    nun gibt der Compiler folgenden Fehler aus:

    *** Error 112 "P18Lkasd.c" Line 3085(1,2): Function used but not defined: init_special_IO

    an was könnte das liegen? was habe ich falsch gemacht?
    Wäre wirklich nett von euch, wenn mich jemand belehren könnte..

    danke und gruss
    manni



  • ovejo schrieb:

    main.c (main-programm):

    #INCLUDE "huascarInitSpecial_IO.h"
    void init_special_IO();

    Warum dieses? Die Deklaration steht doch schon im Header.

    nun gibt der Compiler folgenden Fehler aus:

    *** Error 112 "P18Lkasd.c" Line 3085(1,2): Function used but not defined: init_special_IO

    Was ist P18Lkasd.c? Gehört das zu deinem Projekt?



  • Hallo Daniel

    was meinst du mit "Warum dieses? Die Deklaration steht doch schon im Header." ?

    Sorry, "P18Lkasd.c" ist mein main-programm, hab ich vergessen zu erwähnen 🙂

    Kannst du mir jetzt helfen? wäre echt toll und nett von dir



  • Nach diesem Schema aufbauen:

    // Main
    #include "func.h"
    
    int main() {
        func();
    }
    
    // func.h
    #ifndef _FUNC_H_
    #define _FUNC_H_
    
    void func();
    
    #endif
    
    // func.cpp
    #include "func.h"
    
    void func()
    {
        // dieses und jenes
    }
    

    Dann natürlich nicht vergessen func.cpp zu compillieren und nacher mit rein zu linken.

    gruß


Anmelden zum Antworten