sprintf-Warning

OP #1548266
Lesenswert?

Hallo!

Ich verwende in meinem Programm den Befehl "sprintf"
Das Programm funktioniert damit einwandfrei, jedoch bekomme ich für jede 
Zeile mit "sprintf" folgende warning:

../modus.c:68: warning: incompatible implicit declaration of built-in 
function 'sprintf'

Wie schon gesagt, das programm funktioniert trotzdem einwandfrei...es 
ist aber totzdem störend wenn man beim compilieren 20 warnings deswegen 
bekommt!

Hier eine Beispiel aus dem Programm:

char string[20];
int stopZeit = 10;
sprintf(string,"Zeit: %d\r",stopZeit);

DANKE für eure Mithilfe!

glg tommy
Gast #1548801
Lesenswert?

Klaus Wachtler schrieb:
> erstens string.h und nicht String.h, und zweitens wieso string?
> snprintf ist in stdio.h, siehe Doku dazu...

Naja, die Frage von Thomas ist schon berechtigt: Von der Logik her
müssten sprintf und snprintf in string.h deklariert sein, da es sich
dabei um Stringmanipulations- und nicht um I/O-Funktionen handelt. Da
sie aber mit printf und fprintf eine große gemeinsame Codebasis haben,
hat man sie eben mit diesen zu einer Gruppe zusammengefasst.
#1548821
Lesenswert?

ok, aber mein Gemecker ist wohl auch berechtigt m.E..

Man programmiert etwas, bekommt in der Zeile mit snprintf
eine Fehlermeldung, daß mit der Deklaration von snprintf
etwas nicht stimmt, schaut daraufhin nicht in der Doku nach,
fragt in einem Forum, bekommt die Lösung gesagt, wundert
sich immer noch, daß der Fehler auftritt und schaut auch
dann noch nicht in die Doku.
Wie will man so mit Programmieren weiterkommen?
Bei jeder neuen Quelltextzeile wieder fragen?

Das ist ja nicht das erste und auch nicht das letzte
Unlogische an C. Ohne ein Buch oder minimale Online-Doku
wird das halt nichts.

Es ist ja nicht mal böse gemeint. Aber der Hinweis, mal
selber etwas zu lesen, ist manchmal schon angebracht.
Gast #1549093
Lesenswert?

Klaus Wachtler schrieb:
> ok, aber mein Gemecker ist wohl auch berechtigt m.E..

Natürlich ist es das. Eigentlich hätte die Frage des TE ja lauten
müssen:

  "Ich habe bei der Verwendung von sprintf die Warnung "..." bekommen
  und beim Lesen der Dokumentation festgestellt, dass man dafür stdio.h
  includen muss. Aber warum ist sprintf in stdio.h und nicht in string.h
  deklariert?"

> Und das kommt dann dabei raus...
> http://mfgkw.dyndns.org/siehe_man_fork.jpg

Grintz :) Da scheint jemand in der Vorlesung aufgepasst zu haben. Ich
nehme an, sie/er hat dafür die volle Punktzahl bekommen, oder?.
Gast #1549266
Lesenswert?

Klaus Wachtler schrieb:
> nö, da war ich ungnädig.
> Ich habe mich amüsiert und trotzdem 0 Punkte spendiert.

hehe, ich hätte an der Stelle nen halben Gnadenpunkt spendiert, weil die 
Antwort witzig und nicht vollkommen falsch ist ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren