präprozessor __LINE__ und co



  • ist es eigentlich definiert und üblich das __LINE__ und co. erst am ende ersetzt werden?
    z.b.

    #include <iostream>
    #define MYLINE __LINE__
    int main()
    {
        std::cout << MYLINE << std::endl;
    }
    

    ich sehe da zwei mögliche wege

    //0.
    #include <iostream>
    #define MYLINE __LINE__
    int main()
    {
        std::cout << MYLINE << std::endl;
    }
    //1.
    #include <iostream>
    #define MYLINE __LINE__
    int main()
    {
        std::cout << __LINE__ << std::endl;
    }
    //3.
    #include <iostream>
    #define MYLINE __LINE__
    int main()
    {
        std::cout << 5 << std::endl; 
    }
    

    oder

    //0.
    #include <iostream>
    #define MYLINE __LINE__
    int main()
    {
        std::cout << MYLINE << std::endl;
    }
    //1.
    #include <iostream>
    #define MYLINE 2
    int main()
    {
        std::cout << MYLINE << std::endl; 
    }
    //3.
    #include <iostream>
    #define MYLINE 2
    int main()
    {
        std::cout << 2 << std::endl;
    }
    

    ahja nicht nötig das ihr für mich im standard sucht, wenn das keine zufällig weis kann ich mir selbt den standard antuen

    danke



  • am ende, sonst würde assert nicht klappen.


Anmelden zum Antworten