gcc sucht sich die benötigen Headerfiles selbst?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
padarasa
Beiträge: 281
Registriert: 11.12.2004 13:17:10
Wohnort: Friedberg (Hessen)

gcc sucht sich die benötigen Headerfiles selbst?

Beitrag von padarasa » 17.10.2005 23:47:55

Zugegeben, dass ist mein erster Versuch in C unter Linux. Ich hab das typische Hello-World.

Code: Alles auswählen

int main(){
   printf("hello world\n");
   return 0;
}
Mich wundert nur, dass das funktioniert. Wieso besteht gcc nicht auf dem
#include <stdio.h>
?

Kann ich dem dieses Verhalten irgendwie abgewöhnen?

Benutzeravatar
HotblackDesiato
Beiträge: 203
Registriert: 12.08.2004 16:26:56

Re: gcc sucht sich die benötigen Headerfiles selbst?

Beitrag von HotblackDesiato » 18.10.2005 00:26:51

padarasa hat geschrieben:Zugegeben, dass ist mein erster Versuch in C unter Linux. Ich hab das typische Hello-World.

Code: Alles auswählen

int main(){
   printf("hello world\n");
   return 0;
}
Mich wundert nur, dass das funktioniert. Wieso besteht gcc nicht auf dem
#include <stdio.h>
?

Kann ich dem dieses Verhalten irgendwie abgewöhnen?
Hast du keine Compiler-Warnings bekommen ?

C kommt zur Not auch ohne Prototypen aus (meckert halt dann ein bisschen) und ansonsten hast du ja nichts verwendet (wie z.B. Dateitypen, ' FILE' oder so). Wundert mich nicht...

Stefan

matzi
Beiträge: 8
Registriert: 16.10.2005 22:50:01
Wohnort: Weinheim
Kontaktdaten:

Beitrag von matzi » 18.10.2005 00:39:35

Moin padarasa,

Wenn du dein Projekt :) mit »gcc -Werror -o project projekt.c« übersetzt, behandelt der Compiler Warnungen als Fehler und wird sich verabschieden, wenn du keine header files benuzt.

Gruß
matzi

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: gcc sucht sich die benötigen Headerfiles selbst?

Beitrag von peschmae » 18.10.2005 10:29:29

padarasa hat geschrieben: Mich wundert nur, dass das funktioniert. Wieso besteht gcc nicht auf dem
#include <stdio.h>
?
Weil der C Standard sagt dass eine Funktion die du nicht deklariert hast ints zurückgibt und ints als Argumente nimmt.
Oder so ähnlich. Hab mich nie genau damit befasst weil das eh doof ist.

Dass der aber das macht was er soll ist hier recht zufall - halt weil die Funktionsprototypen einigermassen zu passen scheinen und die Standardbibliothek in der printf ist eh gelinkt wird
Kann ich dem dieses Verhalten irgendwie abgewöhnen?
Das erwähnte -Werr. Oder alternativ auch einfach die Warnungen lesen *hint* ;)

Kompilieren tu ich eigenes zeugs eh nur mit -Wall...

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

padarasa
Beiträge: 281
Registriert: 11.12.2004 13:17:10
Wohnort: Friedberg (Hessen)

Re: gcc sucht sich die benötigen Headerfiles selbst?

Beitrag von padarasa » 18.10.2005 10:53:22

Also ich hatte das gestern auf meinem Laptop probiert. Ich habe auch keine Warnungen erhalten; nein, ich bin nicht blind ;-).

Jetzt sitze ich am Desktop-PC und es geht zwar auch, nur gibt mir hier der Compiler eine Warnung aus.

Stellt sich jetzt die Frage wieso der Laptop nicht das macht was er machen sollte... werd heute Abend nochmal den Laptop anwerfen.

hennes@debian
Beiträge: 465
Registriert: 18.01.2005 02:11:40
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz - Kanton St. Gallen
Kontaktdaten:

Beitrag von hennes@debian » 18.10.2005 15:26:12

Ich nehme mal an du hast eine andere GCC-Version auf dem Laptop...

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 18.10.2005 16:12:36

Stimmt, der 2.95er meckert das erst mit -Wall an. Ein Grund mehr das zu verwenden und die Meldungen zu lesen ;)

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Windmann
Beiträge: 62
Registriert: 13.09.2004 19:12:24

Beitrag von Windmann » 28.10.2005 13:09:51

Wenn du die Wahl hast zwischen gcc und g++, dann würde ich g++ nehmen.
Debian Linux - Woody

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 28.10.2005 13:21:35

Windmann hat geschrieben:Wenn du die Wahl hast zwischen gcc und g++, dann würde ich g++ nehmen.
Wieso? C-Programme kompiliert man mit gcc, C++-Programme mit g++.

Windmann
Beiträge: 62
Registriert: 13.09.2004 19:12:24

Yoghurt...

Beitrag von Windmann » 28.10.2005 13:30:51

genau das meinte ich damit.
Debian Linux - Woody

Antworten