So fügen Sie eine ‘oder’-Bedingung in #ifdef hinzu

Lesezeit: 2 Minuten

Benutzeravatar von Michael
michael

Wie kann ich eine ‘oder’-Bedingung in #ifdef hinzufügen?

Ich habe versucht:

#ifdef CONDITION1 || CONDITION2

#endif

Das funktioniert nicht.

#if defined(CONDITION1) || defined(CONDITION2)

sollte arbeiten. 🙂

#ifdef ist etwas weniger tippend, funktioniert aber nicht gut mit komplexeren Bedingungen

  • @iEngineer #elif defined(CONDITION1) || defined(CONDITION2)?

    – jalf

    26. Juni 2015 um 14:16 Uhr


  • Wie verwende ich #ifndef mit mehreren Bedingungen?

    – Benutzer3017748

    22. Januar 2016 um 9:32 Uhr

  • @user3017748 #if !defined(CONDITION1) || !definiert(BEDINGUNG2)

    – jalf

    22. Januar 2016 um 9:47 Uhr

  • @ user3017748, Jalfs Kommentar funktioniert, wenn Sie möchten, dass etwas passiert, wenn entweder der beiden Bedingungen sind nicht definiert. Wenn Sie möchten, dass es passiert, wenn keiner von ihnen ist definiertwürden Sie ein UND verwenden: #if !defined(CONDITION1) && !defined(CONDITION2).

    – vgl. engr

    20. Februar 2017 um 18:26 Uhr


  • Braucht das nicht eine #endif?

    – Stevoisiak

    20. Dezember 2017 um 15:55 Uhr

Benutzeravatar von Minhas Kamal
Minhas Kamal

Kann dies verwenden-

#if defined CONDITION1 || defined CONDITION2
//your code here
#endif

Das geht auch –

#if defined(CONDITION1) || defined(CONDITION2)
//your code here
#endif

Des Weiteren-

  • UND: #if defined CONDITION1 && defined CONDITION2
  • XOR: #if defined CONDITION1 ^ defined CONDITION2
  • UND NICHT: #if defined CONDITION1 && !defined CONDITION2

Überprüfen Sie dies:

    #if defined __WINDOWS__ && ( _MSC_VER >= 1700 )
        enum class FUTURES_DS_STAGE{
            ...
        };
    #else
        enum FUTURES_DS_STAGE{
        ...
        };
    #endif

  • Das beantwortet die Frage nicht wirklich “Wie füge ich eine ‘oder’-Bedingung in #ifdef hinzu?” Bitte vermeiden Sie nur Code-Antworten, insbesondere wenn Sie versuchen, die Frage indirekt zu beantworten.

    – Benutzer694733

    30. August um 9:37 Uhr

Ich bin wirklich OCD über die Pflege strenge Spaltenbegrenzungenund kein Fan von “\”-Zeilenfortsetzungen, weil Sie keinen Kommentar dahinter setzen können, also hier ist meine Methode.

//|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|//
#ifdef  CONDITION_01             //|       |//
#define             TEMP_MACRO   //|       |//
#endif                           //|       |//
#ifdef  CONDITION_02             //|       |//
#define             TEMP_MACRO   //|       |//
#endif                           //|       |//
#ifdef  CONDITION_03             //|       |//
#define             TEMP_MACRO   //|       |//
#endif                           //|       |//
#ifdef              TEMP_MACRO   //|       |//
//|-  --  --  --  --  --  --  --  --  --  -|//

printf("[IF_CONDITION:(1|2|3)]\n");

//|-  --  --  --  --  --  --  --  --  --  -|//
#endif                           //|       |//
#undef              TEMP_MACRO   //|       |//
//|________________________________________|//

1425900cookie-checkSo fügen Sie eine ‘oder’-Bedingung in #ifdef hinzu

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy