www.mikrocontroller.net

Forum: Compiler & IDEs Charakter Array


Autor: Harald hermenau (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich erhalte vom Compiler die Warnung:
"warning: array subscript has type char"
für ein initialisiertes char Array "char AnzBuffer[0]"
Ich kann die Warnung nicht nachvollziehen.
Compiler: WINAVR 3.3.2
Prozessor: ATMega8

Vielen Dank für die Antworten

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
char AnzBuffer[20] = {...};
char c;
char i = 3;
int j = 4;

c = AnzBuffer[i];       Warning
c = AnzBuffer[(int)i];  OK
c = AnzBuffer[j];       OK

Oder im Klartext:  Das Array subscript muß vom Typ integer sein.

Autor: Harald hermenau (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

oder vom typ "unsigned char". Generell sollte man zum Zugriff auf
Arrays keine Datentypen verwenden die auch negative Wert annehmen
können.

Matthias

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum nicht?

Konstrukte wie

char *cp, buf[N];

for (cp = buf; *cp != 0; cp++) {
  ...
  if (*cp == 'x' && cp > buf) {
    *cp = 0;
    cp[-1] = 'y';
    break;
  }
}

sind durchaus akzeptabel.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

#include <stdio.h>
int l;int main(int o,char **O,
int I){char c,*D=O[1];if(o>0){
for(l=0;D[l              ];D[l
++]-=10){D   [l++]-=120;D[l]-=
110;while   (!main(0,O,l))D[l]
+=   20;   putchar((D[l]+1032)
/20   )   ;}putchar(10);}else{
c=o+     (D[I]+82)%10-(I>l/2)*
(D[I-l+I]+72)/10-9;D[I]+=I<0?0
:!(o=main(c/10,O,I-1))*((c+999
)%10-(D[I]+92)%10);}return o;}

ist auch durchaus aktzektabel :-)
Weitere aktzektable Programme gibts hier http://www.de.ioccc.org

SCNR

Matthias

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.