Ich muss die <limits.h> gar nicht aufrufen



  • //#include <limits.h>
    #include <iostream>
    using namespace std;
    int main()
    {
            cout<<INT_MAX<<endl;
    };
    

    Warum geht das bei mir ohne <limits.h>? Ich hab gedacht die Funktion INT_MAX ist aus <limits.h> aber es compiliert auch fehlerlos ohne die Header.



  • iostream (bzw istream) holt limits rein. schmeiss mal iostream raus, dann sollte es nicht mehr kompilieren..



  • thordk schrieb:

    iostream (bzw istream) holt limits rein. schmeiss mal iostream raus, dann sollte es nicht mehr kompilieren..

    Der Standard legt nicht fest, welche Standard-Header welche anderen Headern inkludieren. Das iostream limits inkludiert kann also sein, muss aber nicht. Man sollte sich also nicht auf die include-Eigenheiten eines bestimmten Compilers verlassen, sondern lieber immer alle nötigen Header explizit einbinden.


Anmelden zum Antworten