Seltsames Warning

Gast #5234215
Lesenswert?
• ▲
▼
Hallo liebe Forenmitglieder,

wie schon im Betreff beschrieben, erhalte ich ein Warning, welches ich 
mir nicht erklären kann und hoffe, dass mir da jemand weiterhelfen kann. 
Und zwar ein Beispiel:
1
int main()
2
{
3
    int array[9];
4
    const int (*p2)[9] = &array;
5
}

erhalte ich als Warnung (vorausgesetzt gcc -std=c99 -pedantic ist 
gesetzt):

"pointers to arrays with different qualifiers are incompatible in ISO C 
[-Wpedantic]"

Ich hoffe, ihr könnt mir da weiterhelfen.

Lg
Gast #5234254
Lesenswert?
• ▲
▼
Hm. Aber was ist an der Warnung für Dich seltsam oder unverständlich?

Mal ganz lakonisch gesagt, ist sie für Menschen, die C können und 
Englisch, recht gut verständlich. Wenn ich voraussetze, dass Du beides 
kannst und nur ein Detail problematisch ist, würde ich mir wünschen 
dieses Detail auch genannt zu bekommen. Andernfalls solltest Du eben C 
und Englisch lernen. Das kann man Dir hier nicht abnehmen.
Gast #5234347
Lesenswert?
• ▲
▼
> Aber was ist an der Warnung für Dich seltsam oder unverständlich?

Auch ich finde selbst nach Jahren noch die Warnungen des C Compilers 
teilweise sehr Kryptisch formuliert. Allerdings findet man Erklärungen 
meist leicht mit Google, wenn man Namen und Zeilennummern weg lässt.
Gast #5234353
Lesenswert?
• ▲
▼
> Auch ich finde selbst nach Jahren noch die Warnungen des C Compilers
> teilweise sehr Kryptisch formuliert.

Jain. Wenn man C BottomUp gelernt hat, also erst mal Assembler und auch 
eine Vorstellung davon hat was ein Compiler aus dem Source fuer einen 
Coder erzeugt dann sind die Fehlermeldungen eigentlich verstaendlich.
Lernt man es TopDown, also ohne Ahnung mit dem C-Buch in der Hand und 
wohlmoeglich noch aus der behueteten PC-Umgebung heraus dann ist manches 
sicher nicht sofort verstaendlich.

Da merkt man halt die Geschichte. :-)

Olaf
#5234365
Lesenswert?
• ▲
▼
Der Code macht eigentlich auch keinen Sinn, nicht nur wegen dem 
int/const int. Mir scheint dem TE ist nicht klar, dass ein Zeiger eine 
Adresse einer Adresse ist, ein array aber nur eine Adresse. Warum 
erstellt man ein Zeiger-Array und übergibt diesem...ja, was eigentlich? 
Die Adresse der Adresse des ersten Elements? Irgendwie siehts für mich 
mehr als komisch aus.
Gast #5234426
Lesenswert?
• ▲
▼
Nop schrieb:
> Nur dereferenzieren darf man ihn nicht.

Natürlich darf man das.
Niemand kann einem das verbieten. (zumindest C tut das nicht)
Das ist ein voll funktionsfähiger Pointer!
Auch, wenn es nur selten Sinn machen wird.
Denn er zeigt in die Wiese.

Übrigens, Sinn:
Mir verbirgt sich der Sinn, hinter dem Codefetzen da oben.
Gast #5234714
Lesenswert?
• ▲
▼
M. K. schrieb:
> die uns ne -1 verpassen,

Naja...

Meine Ansicht zu Bewertungen:
Um jemanden, oder dessen Aussagen, "gerecht" zu bewerten, müssen 
folgende Bedingungen erfüllt sein:
1. Der Bewerter sollte mehr Ahnung von dem Thema haben, als der 
Bewertete
2. Der Bewerter sollte neutral sein

Beides scheint mir, in diesem Forum, längst nicht immer gegeben zu sein.

Und im Übrigen:
Eine Weltanschauung auf einen +/- Klick reduziert.
Eine reine Schwarz/Weiß Welt.
Recht Aussage los, das ganze.
Gast #5234751
Lesenswert?
• ▲
▼
Stefan U. schrieb:
>> Aber was ist an der Warnung für Dich seltsam oder unverständlich?
>
> Auch ich finde selbst nach Jahren noch die Warnungen des C Compilers
> teilweise sehr Kryptisch formuliert. Allerdings findet man Erklärungen
> meist leicht mit Google, wenn man Namen und Zeilennummern weg lässt.

Hast Du schon mal clang versucht? Dort sind die Meldungen wesentlich 
ausführlicher.

Grüsse,
René
Gast #5234772
Lesenswert?
• ▲
▼
Danke für die Erklärung. Im Moment bin ich froh, für alle meine 
Mikrocontroller einen halbwegs aktuellen gcc gefunden zu haben, wo auch 
make mit drin ist.

Aber ich werde mir das trotzdem mal anschauen, denn klarere 
Fehlermeldungen (wie ich von Java gewohnt bin) wären schon eine feine 
Sache.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.