t0bi: C-header in C++-programm verwenden?

Hi,

ist es möglich ein C-Header in einem C++-Programm zu
verwenden, so dass der C-Code des Headers aber mit
dem C-Compiler und der Rest mit dem C++-Compiler
kompiliert wird? (gcc / g++ unter Linux...)

Danke und LG

t0bi

  1. Moin!

    ist es möglich ein C-Header in einem C++-Programm zu verwenden, so dass der C-Code des Headers aber mit dem C-Compiler und der Rest mit dem C++-Compiler kompiliert wird? (gcc / g++ unter Linux...)

    Um C-Code mit dem C-Compiler zu kompilieren, musst du ihn in eine eigene Datei (keinen Header, sondern .c) auslagern. Wenn du dann allerdings Funktionen oder Variablen des C-Codes in C++ verwenden möchtest, muss das im Header angegeben werden, was man in der Praxis häufig folgendermaßen löst:

    #ifdef __cplusplus  
    extern "C" {  
    #endif  
      
    /* Deklarationen */  
      
    #ifdef __cplusplus  
    }  
    #endif
    

    Aber warum willst du den C-Code nicht mit dem C++-Compiler übersetzen, schließlich ist C (bis auf Ausnahmen) auch C++?

    Schönes Wochenende,
    Robert

    1. Danke, werde das mal versuchen.

      Aber warum willst du den C-Code nicht mit dem C++-Compiler übersetzen, schließlich ist C (bis auf Ausnahmen) auch C++?

      Ganz einfach: weil der C++-Compiler das c-File nicht kompiliert
      sondern einen Kompilier-Fehler liefert und ich den C-Code des
      Files nicht genügend verstehe um ihn anzupassen, bzw. mein
      Versuch das File anzupassen nicht zum Erfolg geführt hat... :)

      Danke nochmal & LG

      t0bi