mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Warnung atoi


Autor: Andy F. (maulfisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi verwende atoi in meinem Code
und der Kompiler gibt folgende Warnung aus
implicit declaration of function 'atoi'

In welchem Header ist den atoi drinn?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das müsste stdlib.h sein.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Suchmaschine "atoi" und oh Wunder was bekommt man da nur für Ergebnisse 
...

War das zu schwer?

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast schrieb:

> Suchmaschine "atoi" und oh Wunder was bekommt man da nur für Ergebnisse
> ...
>
> War das zu schwer?

Wieder mal ein schoen sinnfreier Gast-Beitrag. Das Problem wuerde 
geloest, warum haelst Du nicht einfach die Finger still?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, die Frage danach, welche Headerdatei den Prototypen einer Funktion 
enthält, die kann man sich nun wirklich selbst beantworten, dazu muss 
man nur wissen, wie man seinen Computer dazu bringt, alle Dateien in 
einem Verzeichnis nach einem bestimmten Text zu durchsuchen.

Unter Windows:

  find atoi *.h

oder

  findstr -s atoi *.h

(letzteres geht auch noch rekursiv durch einen Verzeichnisbaum)

Das ist Grundlagenwissen. Dafür braucht es kein Google, dafür muss man 
keine Frage in einem Forum stellen.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder man schaut hier nach:

http://cplusplus.com

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly schrieb:

>   find atoi *.h

Das setzt voraus, dass ein Windows-User eine Kommandozeile oeffnen kann 
und den find-Befehl sowie dessen Syntax kennt. Das ist unter 
Mausschubsern kein Grundlagenwissen.

Andererseits koennte ein Windows-User sich auch uebers Startmenu zur 
Suchfunktion durchklicken, aber da ist die Anfrage hier im Forum schon 
schneller.

Autor: Fabi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also: Header File :    <stdlib.h>


Funtkion:    int atoi (const Char *s)

Atoi konvertiert einen String, auf den s zeigt nach int.
der String muss wie folgt aussehen:

[ws][vz][d]

[ws] = optionales Whitespace
[vz] = optionales Vorzeichen
[d]  = Ziffern

Konvertierung bricht bei 1. nichtlesbaren Zeichen ab.

Rückgabe:
- Alles gut: int Wert
- Alles schlecht: 0

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly schrieb:
> Unter Windows:
>
>   find atoi *.h

Ergibt bei mir:

D:\Programme\MinGW\include>find atoi *.h
FIND: Parameterformat falsch

> oder
>
>   findstr -s atoi *.h

Ergibt bei mir:

D:\Programme\MinGW\include>findstr -s atoi *.h
stdlib.h:_CRTIMP int __cdecl    atoi    (const char*);
stdlib.h:_CRTIMP __int64 __cdecl        _atoi64(const char *);
stdlib.h:       { return _atoi64 (_c); }
tchar.h:#define _ttoi           atoi
tchar.h:#define _ttoi64     _atoi64

Autor: oldschool (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wirklich traurig. Damals(tm) hat man erst mal apropos & man, evtl. auch 
grep & find benutzt. Wenn alles nichts half, dann hat man halt einen 
Blick in die C Bibel geworfen.
Wie unselbstständig muss man denn sein, um dermassen triviale Sachen in 
einem Forum zu erfragen.

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oldschool schrieb:

> Wirklich traurig. Damals(tm) hat man erst mal apropos & man, evtl. auch
> grep & find benutzt.

Mache ich heute auch so. Ist nur unter Windows schwierig (Rufus' 
Grundlagenwissen).

> Wenn alles nichts half, dann hat man halt einen
> Blick in die C Bibel geworfen.

Hier stehen auch die Numerical Recipes im Regal, die helfen dabei aber 
auch nicht.

> Wie unselbstständig muss man denn sein, um dermassen triviale Sachen in
> einem Forum zu erfragen.

Nein, das siehst Du falsch. Andy ist damit teamfaehig.

Autor: Fabi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal was anderes... Ich glaub nicht, dass dieses Gelaber dem 
Fragensteller in irgendeiner weise hilft...

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fabi schrieb:
> Mal was anderes... Ich glaub nicht, dass dieses Gelaber dem
> Fragensteller in irgendeiner weise hilft...

Nein, dem ist ja auch schon geholfen. Wir unterhalten uns nur.

Autor: Fabi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
g

Autor: Dominique Görsch (dgoersch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olli R. schrieb:
> Nein, das siehst Du falsch. Andy ist damit teamfaehig.

YMMD!

Autor: oldschool (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olli R. schrob:

> Mache ich heute auch so. Ist nur unter Windows schwierig (Rufus'
> Grundlagenwissen).

Ach ja Windows. Da ist es ja noch viel einfacher. Auch wenn ich 
Microsoft Produkte eher nicht mag, VisualStudio ist da eine Ausnahme. 
Und die Online-Hilfe ist gut genug, um das Fehlen von apropos, man, grep 
& find zu verschmerzen.

> Nein, das siehst Du falsch. Andy ist damit teamfaehig.

Stimmt, Team ist ja das Akronym für "Toll, ein anderer machts".

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oldschool schrieb:

> Und die Online-Hilfe ist gut genug, um das Fehlen von apropos, man, grep
> & find zu verschmerzen.

Die Online Hilfe war in Visual Studio 4 noch gut.
Seit dem ist sie immer schlechter geworden.

> Das setzt voraus, dass ein Windows-User eine Kommandozeile oeffnen
> kann und den find-Befehl sowie dessen Syntax kennt. Das ist unter
> Mausschubsern kein Grundlagenwissen.

Leider.

Einen Verzeichnisbaum löschen kann in der Mausschubsoberfläche schon mal 
eine Zeit dauern. Dasselbe in Command.com dauert ein paar Augenzwinkern.
Dasselbe für Kopieraktionen: In der Zeit in der die GUI rausfindet 
wieviele Byes überhaupt zu kopieren sind, bist du in der Command Line 
schon 3 mal fertig.

Fazit: Ich kann mir nicht helfen. Aber wenigstens ein bischen 
Grundlagenwissen, wie man mit einer Command Line arbeitet, sollte jeder 
Benutzer haben. Vor allen Dingen dann, wenn er Software entwickelt.

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier im Thread tummeln sich ja wieder mal besonders gescheite 
Programmierer ;-)

Hier mal mein Ansatz, mit einem gescheiten Erklärungsversuch:
Wenn eine Warnung kommt wie "implicit declaration of function 'atoi'
" dann fehlt wahrscheinlich nur das include zur Headerdatei, in welchem 
sich die Vorwärtsdeklaration zur Funktion 'atoi' befindet.
Also müsste folgende Zeile helfen:
#include <stdlib.h>

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johnny schrieb:

> Hier mal mein Ansatz, mit einem gescheiten Erklärungsversuch:
> Wenn eine Warnung kommt wie "implicit declaration of function 'atoi'
> " dann fehlt wahrscheinlich nur das include zur Headerdatei, in welchem
> sich die Vorwärtsdeklaration zur Funktion 'atoi' befindet.
> Also müsste folgende Zeile helfen:
>
> #include <stdlib.h>
> 

Du bist ja putzig.

Ja, dass er die includen muss, war dem OP schon klar. Seine Frage war 
nur, wie er die entsprechende Headerdatei namentlich identifizieren 
kann, und da hilft kurz gurgeln.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Funktion welche Headerdatei benötigt
steht normalerweise in der Compilerhilfe
oder in der Beschreibung zu den Librarys.
Wenn man zu faul ist die entsprechenden Dokumente
mal zu lesen, darf man sich nicht wundern wenn
ein wenig Spott aufkommt.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na dann machen wir das doch mal passend zum Titel:

Warnung vor atoi. Bibel sagt:
The atoi() function is subsumed by strtol() but is retained because  it
is  used extensively in existing code. If the number is not known to be
in range, strtol() should be used because atoi()  is  not  required  to
perform any error checking.

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Seine Frage war nur, wie er die entsprechende Headerdatei namentlich
> identifizieren kann, und da hilft kurz gurgeln.

Ach so.
In solchen Fällen implementiere ich die betreffende Funktion einfach 
rasch selber, suchen gurkt mich an.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.