syntax error. Warum?

Dieses Thema im Forum "C/C++" wurde erstellt von djtraumwelt, 03.10.2008.

  1. #1 djtraumwelt, 03.10.2008
    djtraumwelt

    djtraumwelt Foren As

    Dabei seit:
    21.09.2006
    Beiträge:
    78
    Zustimmungen:
    0
    Code:
    #include <stdio.h>
    #include <string.h>
    
     typedef struct {
      char riff1;
      char riff2;
      char riff3;
      char riff4;
      int dateigros;
      char wave1;
      char wave2;
      char wave3;
      char wave4;
      char fmt1;
      char fmt2;
      char fmt3;
      char fmt4;
      int fmtlen;
      short int fmttag;
      short int channels;
      int rate;
      int bytessec;
      short int blockalign;
      short int bits;
      char data1;
      char data2;
      char data3;
      char data4;
      int len;
     } waveheader;
    
    int main(int argc, char *argv[]) {
     short int *wavedata;
     short int *wavesinus;
     short int *waveton1;
     short int *waveton2;
     FILE *fp;
    
     makesine(wavesinus);
     fp=fopen("sine.wav","wb");
     fwrite(waveheader,1,44,fp); //hier syntax error before "waveheader"
     fwrite(wavesinus,2,2000,fp);
     fclose(fp);
    
     return 0;
    }
    
    int makesine(short int *wavesinus) {
     wavesinus=(short int *) malloc(4000);
     short int u=-125;
     short int uplus=1;
     short int y[3] = {0};
     int x=0;
     while(x < 4000) {
      y[2]+=u;
      y[1]=(y[0]+y[2]) / 2;
      wavesinus[x]=y[0];
      wavesinus[x+1]=y[0];
      wavesinus[x+2]=y[1];
      wavesinus[x+3]=y[1];
      y[0]=y[2];
      x+=4;
      u+=uplus;
      if (u==-125)
       uplus=1;
      if (u==125)
       uplus=-1;
     }
     waveheader.riff1='R'; //hier syntax error before '.'
     waveheader.riff2='I';
     waveheader.riff3='F';
     waveheader.riff4='F';
     waveheader.wave1='W';
     waveheader.wave2='A';
     waveheader.wave3='V';
     waveheader.wave4='E';
     waveheader.fmt1='f';
     waveheader.fmt2='m';
     waveheader.fmt3='t';
     waveheader.fmt4=' ';
     waveheader.fmtlen=16;
     waveheader.fmttag=1;
     waveheader.channels=2;
     waveheader.rate=44100;
     waveheader.bytessec=176400;
     waveheader.blockalign=4;
     waveheader.bits=16;
     waveheader.data1='d';
     waveheader.data2='a';
     waveheader.data3='t';
     waveheader.data4='a';
     waveheader.len=4000;
     waveheader.dateigros=waveheader.len+36;
     return 0;
    }
    
    int maketon(int power1, int power2, int power3, int power4, int power5) {
     short int laut[1000];
     int i;
     for(i=0; i < 1000; i++)
      laut[i]=7000/i;
     return 0;
    
    }
    
    zwei mal syntax error, die ich beide nicht verstehe.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Gott_in_schwarz, 03.10.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Syntax error isn Bisschen unspezifisch, oder?
    Hier mal die Ausgabe von "gcc -W -Wall test.c" (solltest du am Besten auch benutzen, damit gibts (mehr und) genauere Fehlermeldungen):
    Code:
    test.c: In function ‘main’:
    test.c:39: warning: implicit declaration of function ‘makesine’
    test.c:41: error: expected expression before ‘waveheader’
    test.c:41: error: too few arguments to function ‘fwrite’
    test.c:36: warning: unused variable ‘waveton2’
    test.c:35: warning: unused variable ‘waveton1’
    test.c:33: warning: unused variable ‘wavedata’
    test.c: At top level:
    test.c:32: warning: unused parameter ‘argc’
    test.c:32: warning: unused parameter ‘argv’
    test.c: In function ‘makesine’:
    test.c:49: warning: implicit declaration of function ‘malloc’
    test.c:49: warning: incompatible implicit declaration of built-in function ‘malloc’
    test.c:69: error: expected identifier or ‘(’ before ‘.’ token
    test.c:70: error: expected identifier or ‘(’ before ‘.’ token
    test.c:71: error: expected identifier or ‘(’ before ‘.’ token
    test.c:72: error: expected identifier or ‘(’ before ‘.’ token
    test.c:73: error: expected identifier or ‘(’ before ‘.’ token
    test.c:74: error: expected identifier or ‘(’ before ‘.’ token
    test.c:75: error: expected identifier or ‘(’ before ‘.’ token
    test.c:76: error: expected identifier or ‘(’ before ‘.’ token
    test.c:77: error: expected identifier or ‘(’ before ‘.’ token
    test.c:78: error: expected identifier or ‘(’ before ‘.’ token
    test.c:79: error: expected identifier or ‘(’ before ‘.’ token
    test.c:80: error: expected identifier or ‘(’ before ‘.’ token
    test.c:81: error: expected identifier or ‘(’ before ‘.’ token
    test.c:82: error: expected identifier or ‘(’ before ‘.’ token
    test.c:83: error: expected identifier or ‘(’ before ‘.’ token
    test.c:84: error: expected identifier or ‘(’ before ‘.’ token
    test.c:85: error: expected identifier or ‘(’ before ‘.’ token
    test.c:86: error: expected identifier or ‘(’ before ‘.’ token
    test.c:87: error: expected identifier or ‘(’ before ‘.’ token
    test.c:88: error: expected identifier or ‘(’ before ‘.’ token
    test.c:89: error: expected identifier or ‘(’ before ‘.’ token
    test.c:90: error: expected identifier or ‘(’ before ‘.’ token
    test.c:91: error: expected identifier or ‘(’ before ‘.’ token
    test.c:92: error: expected identifier or ‘(’ before ‘.’ token
    test.c:93: error: expected identifier or ‘(’ before ‘.’ token
    test.c: At top level:
    test.c:97: warning: unused parameter ‘power1’
    test.c:97: warning: unused parameter ‘power2’
    test.c:97: warning: unused parameter ‘power3’
    test.c:97: warning: unused parameter ‘power4’
    test.c:97: warning: unused parameter ‘power5’
     
  4. #3 djtraumwelt, 03.10.2008
    djtraumwelt

    djtraumwelt Foren As

    Dabei seit:
    21.09.2006
    Beiträge:
    78
    Zustimmungen:
    0
    ich verstehs immer noch nicht
     
  5. #4 Gott_in_schwarz, 03.10.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Du kannst ja auch afaik nicht dem Prototyp der struct Werte zuweisen. Instanzier mal ne Variable des Typs waveheader und mach da dann die Zuweisungen.
    Kenn mich aber selber auch nicht so sehr in c aus.
     
  6. #5 der_Kay, 03.10.2008
    Zuletzt bearbeitet: 04.10.2008
    der_Kay

    der_Kay Doppel-As

    Dabei seit:
    28.02.2006
    Beiträge:
    140
    Zustimmungen:
    0
    Das ist das eine Problem, das andere ist ein zu kleines malloc. Und soll das in "maketon" wirklich Integerarithmetik sein?

    PHP:
    #include <stdio.h>
    #include <string.h>
    #include <malloc.h>

    typedef struct _waveheader {

        
    char riff [4];
        
    int dateigros;
        
    char wave [4];
        
    char fmt [4];
        
    int fmtlen;
        
    short int fmttag;
        
    short int channels;
        
    int rate;
        
    int bytessec;
        
    short int blockalign;
        
    short int bits;
        
    char data [4];
        
    int len;
     } 
    waveheader;

    int makesine(short int *wavesinus) {
        
    // aufpassen hier
        
    wavesinus=(short int *) malloc(4000 sizeof(short));
        
    short int u=-125;
        
    short int uplus=1;
        
    short int y[3] = {0};
        
    int x=0;    

        while(
    4000) {
            
    y[2]+=u;
            
    y[1]=(y[0]+y[2]) / 2;
            
    wavesinus[x]=y[0];
            
    wavesinus[x+1]=y[0];
            
    wavesinus[x+2]=y[1];
            
    wavesinus[x+3]=y[1];
            
    y[0]=y[2];
            
    x+=4;
            
    u+=uplus;

            if (
    u==-125)
                
    uplus=1;

            if (
    u==125)
                
    uplus=-1;
        }

        return 
    0;
    }

    int main(int argcchar *argv[]) {
        
    short int *wavedata;
        
    short int *wavesinus;
        
    short int *waveton1;
        
    short int *waveton2;

        
    waveheader whdr;

        
    whdr.riff [0] = 'R';
        
    whdr.riff [1] = 'I';
        
    whdr.riff [2] = 'F';
        
    whdr.riff [3] = 'F';

        
    whdr.wave [0] = 'W';
        
    whdr.wave [1] = 'A';
        
    whdr.wave [2] = 'V';
        
    whdr.wave [3] = 'E';

        
    whdr.fmt [0] = 'f';
        
    whdr.fmt [1] = 'm';
        
    whdr.fmt [2] = 't';
        
    whdr.fmt [3] = ' ';

        
    whdr.fmtlen=16;
        
    whdr.fmttag=1;
        
    whdr.channels=2;
        
    whdr.rate=44100;
        
    whdr.bytessec=176400;
        
    whdr.blockalign=4;
        
    whdr.bits=16;

        
    whdr.data [0] = 'd';
        
    whdr.data [1] = 'a';
        
    whdr.data [2] = 't';
        
    whdr.data [3] = 'a';

        
    whdr.len=4000;
        
    whdr.dateigros=whdr.len+36;

        
    FILE *fp;

        
    makesine(wavesinus);
        
    fp=fopen("sine.wav","wb");

        
    fwrite(&whdr,1,44,fp);
        
    fwrite(wavesinus,2,2000,fp);
        
    fclose(fp);

        return 
    0;
    }

    int maketon (int power1int power2int power3int power4int power5) {
        
    short int laut[1000];
        
    int i;

        for(
    i=01000i++)
            
    laut[i]=7000/i;

        return 
    0;
    }

     
  7. #6 djtraumwelt, 03.10.2008
    djtraumwelt

    djtraumwelt Foren As

    Dabei seit:
    21.09.2006
    Beiträge:
    78
    Zustimmungen:
    0
    OK, vielen dank, jetzt versteh ichs. Und funktionieren tuts auch =)
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

syntax error. Warum?

Die Seite wird geladen...

syntax error. Warum? - Ähnliche Themen

  1. syntax error near unexpected token `&'

    syntax error near unexpected token `&': Hallo Ich habe ein Scrip angepasst bzw. erweiter und habe nun an einer Stelle ein Problem. Vor der erweiterung ist es einwandfrei...
  2. Bilfe bei 1064 - You have an error in your SQL syntax; check the manuel that correspo

    Bilfe bei 1064 - You have an error in your SQL syntax; check the manuel that correspo: Hallo habe ein Kleines Problem kann mir einer helfen so bald ich ein volle rechte geben will mach er das da er ja in EVENT und TRIGGER nichts...
  3. Syntax error im configure skript

    Syntax error im configure skript: Hallo zusammen, ich versuche gerade einen n euen Chipsatztreiber zu erstellen um den LVDS Conector auch meinem VIA EPIA NANO Board voll...
  4. syntax error in expression

    syntax error in expression: File: "/etc/cron.hourly/platz1.sh" Inhalt: #!/bin/bash FREI=`df / | grep -v Verf | awk '{print $3}'` PLATZ=$(( FREI / 1024 / 1000 )) echo...
  5. syntax error near unexpected token

    syntax error near unexpected token: Hi ich hab ein kleines problem mit einem bash scritp :-( auf der einen maschine läuft es fehlerfrei ~> bash --version GNU bash, version...