mixte des déclarations et des codes

Quand je compile fonction avec "gcc -o dene -Wall-ansi -pedantic-erreurs de dénir.c"
gcc n'émet pas d'erreur.(pouvez-vous regarder une ligne qui commence avec le char ....,si la boucle,)

        static void remove_negation(char *s,char *s1) 
          {
             char **cmainp=malloc(sizeof(char*)*1);   
                        int len=0;int d=0; int i=0;
            cmainp[0]=malloc(sizeof(char)*300);
            len=strlen(s);
           for(i=0;i<len;++i)
             { if(s[i]=='-')
               if(i==0 || s[i-1]==',')
      /*look*/  {char *p=malloc(sizeof(char)*3); /*look*/

                ++i;    p[0]=s[i];   p[1]='
        static void remove_negation(char *s,char *s1) 
{
char **cmainp=malloc(sizeof(char*)*1);   
int len=0;int d=0; int i=0;
cmainp[0]=malloc(sizeof(char)*300);
len=strlen(s);
for(i=0;i<len;++i)
{ if(s[i]=='-')
if(i==0 || s[i-1]==',')
/*look*/  {char *p=malloc(sizeof(char)*3); /*look*/
++i;    p[0]=s[i];   p[1]='\0'; 
strcat(s1,","); strcat(s1,p); free(p);
continue;
}
cmainp[0][d]=s[i]; 
++d;
} cmainp[0][d+1]='\0'; 
strcpy(cmainp[0],s);
free(cmainp[0]);
}
'
; strcat(s1,","); strcat(s1,p); free(p); continue; } cmainp[0][d]=s[i]; ++d; } cmainp[0][d+1]='
        static void remove_negation(char *s,char *s1) 
{
char **cmainp=malloc(sizeof(char*)*1);   
int len=0;int d=0; int i=0;
cmainp[0]=malloc(sizeof(char)*300);
len=strlen(s);
for(i=0;i<len;++i)
{ if(s[i]=='-')
if(i==0 || s[i-1]==',')
/*look*/  {char *p=malloc(sizeof(char)*3); /*look*/
++i;    p[0]=s[i];   p[1]='\0'; 
strcat(s1,","); strcat(s1,p); free(p);
continue;
}
cmainp[0][d]=s[i]; 
++d;
} cmainp[0][d+1]='\0'; 
strcpy(cmainp[0],s);
free(cmainp[0]);
}
'
; strcpy(cmainp[0],s); free(cmainp[0]); }

Mais,quand compiler fonction ci-dessus reformatée avec gcc
gcc émet que de l'erreur;

"dene.c:10: erreur: ISO C90 interdit mixte déclarations et le code"

        static void remove_negation(char *s,char *s1) 
          {
             char **cmainp=malloc(sizeof(char*)*1);    
          /*look*/ cmainp[0]=malloc(sizeof(char)*300); /*look*/
                        int len=0;int d=0; int i=0;

            len=strlen(s);
           for(i=0;i<len;++i)
             { if(s[i]=='-')
               if(i==0 || s[i-1]==',')
        {char *p=malloc(sizeof(char)*3);

                ++i;    p[0]=s[i];   p[1]='
        static void remove_negation(char *s,char *s1) 
{
char **cmainp=malloc(sizeof(char*)*1);    
/*look*/ cmainp[0]=malloc(sizeof(char)*300); /*look*/
int len=0;int d=0; int i=0;
len=strlen(s);
for(i=0;i<len;++i)
{ if(s[i]=='-')
if(i==0 || s[i-1]==',')
{char *p=malloc(sizeof(char)*3);
++i;    p[0]=s[i];   p[1]='\0'; 
strcat(s1,","); strcat(s1,p); free(p);
continue;
}
cmainp[0][d]=s[i]; 
++d;
} cmainp[0][d+1]='\0'; 
strcpy(cmainp[0],s);
free(cmainp[0]);
}
'
; strcat(s1,","); strcat(s1,p); free(p); continue; } cmainp[0][d]=s[i]; ++d; } cmainp[0][d+1]='
        static void remove_negation(char *s,char *s1) 
{
char **cmainp=malloc(sizeof(char*)*1);    
/*look*/ cmainp[0]=malloc(sizeof(char)*300); /*look*/
int len=0;int d=0; int i=0;
len=strlen(s);
for(i=0;i<len;++i)
{ if(s[i]=='-')
if(i==0 || s[i-1]==',')
{char *p=malloc(sizeof(char)*3);
++i;    p[0]=s[i];   p[1]='\0'; 
strcat(s1,","); strcat(s1,p); free(p);
continue;
}
cmainp[0][d]=s[i]; 
++d;
} cmainp[0][d+1]='\0'; 
strcpy(cmainp[0],s);
free(cmainp[0]);
}
'
; strcpy(cmainp[0],s); free(cmainp[0]); }

Et dernier,gcc émet des erreurs suivantes

dénir.c:16: erreur: attendu expression avant de ‘char’

dénir.c:20: erreur: "p1" non déclaré (première utilisation dans cette fonction)

dénir.c:20: erreur: (Chaque identificateur non déclaré est signalé qu'une seule fois

dénir.c:20: erreur: pour chaque fonction, il paraît.)

        static void remove_negation(char *s,char *s1) 
          {
             char **cmainp=malloc(sizeof(char*)*1);    

                        int len=0;int d=0; int i=0;
             cmainp[0]=malloc(sizeof(char)*300); 
            len=strlen(s);
           for(i=0;i<len;++i)
             { if(s[i]=='-')
        /*look*/   char *p=malloc(sizeof(char)*3);   /*look*/
               if(i==0 || s[i-1]==',')
              {

                ++i;    p[0]=s[i];   p[1]='
        static void remove_negation(char *s,char *s1) 
{
char **cmainp=malloc(sizeof(char*)*1);    
int len=0;int d=0; int i=0;
cmainp[0]=malloc(sizeof(char)*300); 
len=strlen(s);
for(i=0;i<len;++i)
{ if(s[i]=='-')
/*look*/   char *p=malloc(sizeof(char)*3);   /*look*/
if(i==0 || s[i-1]==',')
{
++i;    p[0]=s[i];   p[1]='\0'; 
strcat(s1,","); strcat(s1,p); free(p);
continue;
}
cmainp[0][d]=s[i]; 
++d;
} cmainp[0][d+1]='\0'; 
strcpy(cmainp[0],s);
free(cmainp[0]);
}
'
; strcat(s1,","); strcat(s1,p); free(p); continue; } cmainp[0][d]=s[i]; ++d; } cmainp[0][d+1]='
        static void remove_negation(char *s,char *s1) 
{
char **cmainp=malloc(sizeof(char*)*1);    
int len=0;int d=0; int i=0;
cmainp[0]=malloc(sizeof(char)*300); 
len=strlen(s);
for(i=0;i<len;++i)
{ if(s[i]=='-')
/*look*/   char *p=malloc(sizeof(char)*3);   /*look*/
if(i==0 || s[i-1]==',')
{
++i;    p[0]=s[i];   p[1]='\0'; 
strcat(s1,","); strcat(s1,p); free(p);
continue;
}
cmainp[0][d]=s[i]; 
++d;
} cmainp[0][d+1]='\0'; 
strcpy(cmainp[0],s);
free(cmainp[0]);
}
'
; strcpy(cmainp[0],s); free(cmainp[0]); }

question est de savoir pourquoi il y a des différences entre eux.

OriginalL'auteur | 2010-05-24