Frage zu strcpy, strcat etc.



  • Hi,
    ich denke ich hab eine einfache Frage.
    Ich schreibe zur Zeit ein C Programm, genauer gesagt ein Pro*C Programm.
    Compiliert wird das Programm unter Unix.
    Unter anderem benutz ich die Funktionen strcpy und strcat die sich
    ja meineswissens in der string.h befinden.
    Allerdings läßt sich das Programm auch compilieren und ausführen wenn ich string.h
    nicht implementiere.

    Kann mir jemand erklären wieso? 😕



  • Möglicherweise wird in einem anderen Include, den du benutzt, bereits die string.h includiert.



  • Wenn ich es testweise in einem Programm ohne irgendein include probiere funktioniert es auch.



  • scheiß compiler? 😉



  • Dein C Programm muss mindestens die datei stdio.h includieren!



  • ThomasIT schrieb:

    Wenn ich es testweise in einem Programm ohne irgendein include probiere funktioniert es auch.

    Ist vielleicht irgendwo bei deinem Compiler bzw. deiner IDE eingestellt, dass er die Standardincludes automatisch includieren soll?

    /bin/bash0R schrieb:

    Dein C Programm muss mindestens die datei stdio.h includieren!

    Nicht unbedingt, aber meistens macht man ja doch was mit I/O ;).



  • AJ schrieb:

    ThomasIT schrieb:

    Wenn ich es testweise in einem Programm ohne irgendein include probiere funktioniert es auch.

    Ist vielleicht irgendwo bei deinem Compiler bzw. deiner IDE eingestellt, dass er die Standardincludes automatisch includieren soll?

    Irgendwie sowas muss es ja sein. Ich werd mich mal schlau machen.

    Thx



  • ThomasIT schrieb:

    Wenn ich es testweise in einem Programm ohne irgendein include probiere funktioniert es auch.

    Bekommst du auch keine Warnungen?
    Viele Compiler haben Funktionen wie strcpy oder strcat intrinsic implementiert. Vielleicht meckert er ja deswegen nicht. Richtig ist es trotzdem nicht.



  • groovemaster schrieb:

    ThomasIT schrieb:

    Wenn ich es testweise in einem Programm ohne irgendein include probiere funktioniert es auch.

    Bekommst du auch keine Warnungen?

    Es ist jedenfalls nicht verboten, undeklarierte Funktionen aufzurufen. Es führt nur zu Problemen, wenn die tatsächliche Definition von der implizit angenommenen, int strcpy(...), abweicht 🤡
    Der gcc warnt da in der Standardeinstellung nicht.


Anmelden zum Antworten