preprocessor directiven zwschen cpp/c-file und header



  • Hi,

    ich habe eine Projekt, bei dem ich in einem Header-File verschiedene konstanten defines habe, die nicht in jeder cpp/c-datei bekann sein sollen.

    Beispiel cpp1.cpp

    #define __CPP1_CPP
    #include "abc.h"
    

    cpp2.cpp

    #define __CPP2_CPP
    #include "abc.h"
    

    header file abc.h

    #pragma once
    
    #ifdef __CPP1_CPP
        #define ABC 3
    #endif
    
    #ifdef __CPP2_CPP
        #define CBA 3
    #endif
    

    Jedoch melde der Compiler bei beiden cpp-files das der Bezeichner nicht definiert ist. Ich nutze VS2005 Professional und mach das ganze in einem CLR .NET Projekt.

    In alten c-Projekt hat das ganze immer funktioniert.

    Weis jemand rat?



  • In C++ und auch in C++/CLI werden Konstanten nicht mit #define gemacht.
    Das ist ganz kein guter Stil.

    In C++ verwendet man das const Keyword, in C++/CLI das Keyword literal.

    Simon


Anmelden zum Antworten