Struct Code umwandeln

OP #6050811
hallo zusammen,

gibt es einen Unterschied, ich den folgenden Code von
1
typedef struct { double x; double y; } berech;
2

3
berech c[2] = 
4

5
{ {0,0},
6
    {0.040508,8 },}
7

8

9

10
double interp( berech* c, double x, int n )
11
{
12
    int i;
13
    for( i = 0; i < n-1; i++ )
14
    { if ( c[i].x <= x && c[i+1].x >= x )
15
        {
16
    double difx = x - c[i].x;
17
    return double difn = c[i+1].x - c[i].x;
18
        }}
19
    return 0; 
20
}
zu änderen ?
1
struct berech { double x; double y;} ;
2

3
berech c[2] = 
4

5
{ {0,0},
6
    {0.040508,8 },}
7

8

9

10
double interp( berech c, double x, int n )
11
{
12
    int i;
13
    for( i = 0; i < n-1; i++ )
14
    { if ( c[i].x <= x && c[i+1].x >= x )
15
        {
16
    double difx = x - c[i].x;
17
    return double difn = c[i+1].x - c[i].x;
18
        }}
19
    return 0; 
20
}
Gast #6050824
Ja. Das zweite Codebeispiel wird einen Fehler verursachen, weil der Typ 
von 'berech' nicht bekannt ist bzw. weil an dieser Stelle ein Typname 
erwartet wird und nicht der Name einer Struktur.

Du hast in dem zweiten Code lediglich eine Struktur benannt, aber damit 
noch keinen neuen Typ definiert.

Korrekt müsste der zweite Code sein:
1
struct berech { double x; double y;};
2

3
struct berech c[2]  = 
4

5
{ {0,0},
6
    {0.040508,8 },};
7

8
...

Am besten sowas einfach mal durch den Compiler jagen. Das erspart viele 
Fragen. :-)
Gast #6050831
Mark S. schrieb:
> mit dem Grund ?

Bitte formuliere einen vollständigen Satz. Ich habe keine Idee, was Du 
mit dem Fragment sagen willst.

Falls Du Dich auf einen vorherigen Beitrag beziehst, füge zuvor das 
Zitat an. Der Button "Markierten Text zitieren" ist dabei hilfreich.
#6051620
Theor schrieb:
> Ja. Das zweite Codebeispiel wird einen Fehler verursachen, weil der Typ
> von 'berech' nicht bekannt ist bzw. weil an dieser Stelle ein Typname
> erwartet wird und nicht der Name einer Struktur.

Ausserdem kriegt die Funktion interp() im 2. Beispiel kein Zeiger auf 
dem Array sondern lediglich das erste Element vom Array als Parameter 
geliefert. Damit lässt sich die Indizierung also gar nicht machen. Der 
Compiler wird gemeckert haben.
#6053168
Cyblord -. schrieb:
> Läuft bei euch ein Wettbewerb über die blödesten Funktionsnamen?

Ich hab mich eher gefragt, ob das ein Wettberwerb im "finde die 
Unterschiede" ist.

Theor schrieb:
> Genau. Siehe
> Beitrag "Re: Struct Code umwandeln"
>
> "Du hast in dem zweiten Code lediglich eine Struktur benannt, aber damit
> noch keinen neuen Typ definiert."

Einen Typ hat er damit schon definiert. Aber der heißt eben nicht 
"berech", sondern "struct berech".

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 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.