mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik long int to ASCII


Autor: Norbert L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen und Hallo,

ich versuche eine unsigned long in ASCII zu wandeln.

Mein Compiler CodeVision, stdl.h ist included,

Die Declaration ist:
void ltoa(long int n, char *ptr);

ich habe initialisiert:
1. long int fx_result1;   // Inhalt von ulong
2. char result_trans1[12];  // Array zur ablage der ASCII-zahl
3. char *ptor=&result_trans1;   // Zeiger auf obiges Array


der Funktionsaufruf ist:
4. ltoa( fx_result, *ptor)

Die Fehlermeldungen des Compilers sind
für Zeile 3: illegal address

für Zeile 4: Functon parameter #2 incompatible with its declaration

Irgendwas übersehe ich hier? Habi Ihr eine Tipp?

Norbert L.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Statt

  char *ptor = &result_trans1;   // Zeiger auf obiges Array

solltest Du besser

  char *ptor = result_trans1;   // Zeiger auf obiges Array

schreiben.

ltoa möchte einen Pointer vom Typ char* übergeben bekommen, nicht einen
vom Typ char**.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
char *ptor = result_trans1;   // Zeiger auf obiges Array

beliebter Fehler !

Entweder Leerzeichen lassen:

char * ptor = result_trans1;

oder Zuweisung separat machen:

char *ptor;
ptor = result_trans1;


Und dann natürlich:

ltoa( fx_result, ptor)

Der * hat 2 verschiedene Bedeutungen !!!

In der Deklaration: ein Pointer
In der Zuweisung: der Inhalt


Peter

Autor: Norbert L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rufus T. Firefly,
@Peter Dannegger,

jetzt funktioniert es, mit der Zeile von Rufus T. Firefly, ohne
Leerzeichen, und dem zweitem Absatz von Peter Dannergger.

Aber, warum ich das so machen muß ist mir noch nicht klar.
Mein Lehrbuch 'C in 25 Tagen' habe ich wohl zu schnell gelesen.

Besten Dank!     Norbert L.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hast Du Lust, meine Routine aus der Codesammlung mit Deinem
Compiler zu testen - Codegröße und Geschwindigkeit - und das Ergebnis
mitzuteilen ?

http://www.mikrocontroller.net/forum/read-4-126283.html

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.