Typprüfung beim Funktionsaufruf



  • Hallo alle zusammen,

    ich habe eine Frage zur Typprüfung beim Funktionsaufruf. Ist es normal das der Compiler keinen Fehler erzeugt, wenn an eine Funktion die falschen typen übergeben werden?. Bei einem Test mit dem gcc habe ich festgestellt, dass man wenn man eine Funktion mit dem übergabeparameter short erstellt hat ihr trotzdem alles übergeben darf ohne eine Warnung vom compiler zu bekommen. Dieses gilt allerdings nicht für Zeiger.


  • Mod

    Typen werden schon geprüft. Das ist sogar eine wichtige und ganz große Stärke der Sprache. Was dir aber wohl entgangen ist, dass die arithmetischen Basisdatentypen (d.h. Typen die irgendwie das Konzept einer Zahl ausdrücken, konkret zum Beispiel int, float, char, long, short, double und ähnliche) ineinander konvertierbar sind. Das heißt, deine Funktion wird nicht mit dem falschen Typen aufgerufen, sondern es gibt eine unmittelbare Konvertierung in den gesuchten Typen für den Funktionaufruf, die dann auch benutzt wird.



  • der gcc warnt net?
    hast du die höchste warnstufe eingestellt?
    mein vs von ms gibt auf der höchsten stufe ne meldung:
    warning C4244: 'Funktion': Konvertierung von 'int' in 'short', möglicher Datenverlust


Log in to reply