Mostra notizie nelle discussioni
  • Avatar
    Scritto da
    Non Autenticato
    il 2008-02-17 13:54:00.0 alle 2008-02-17 13:54:00.0
    qual è il senso di questo codice?
        typedef struct Point { float x, y; } Punto;
        typedef Punto Matrice[N][N];


    perché chiamare la struttura sia Point sia Punto?
    • Avatar
      Scritto da
      Non Autenticato
      il 2008-02-17 14:14:00.0 alle 2008-02-17 14:14:00.0
      Re: qual è il senso di questo codice?

      - Scritto da:
      >     typedef struct Point { float x, y; } Punto;
      >     typedef Punto Matrice[N][N];
      >
      >
      > perché chiamare la struttura sia Point sia Punto?

      perché chi l'ha scritto ignora la grammatica del C
      • Avatar
        Scritto da
        Non Autenticato
        il 2008-02-17 14:29:00.0 alle 2008-02-17 14:29:00.0
        Re: qual è il senso di questo codice?

        - Scritto da:
        >
        > - Scritto da:
        > >     typedef struct Point { float x, y; } Punto;
        > >     typedef Punto Matrice[N][N];
        > >
        > >
        > > perché chiamare la struttura sia Point sia
        > Punto?
        >
        > perché chi l'ha scritto ignora la grammatica del C


        Non credo, il codice funziona e ha un senso, ovvero di dichiarare la struttura Point anche col nome Punto.

        Il problema è che siccome nelle dispense ho trovato più volte questa sintassi dichiarativa, ho l'impressione che il prof l'abbia imparata così com'è, e non si sia mai posto il problema di domandarsene il senso.

        Forse avrebbe avuto più senso la seguente:
            typedef struct Punto {float x,y} Matrice[N][N];
        • Avatar
          Scritto da
          Non Autenticato
          il 2008-02-17 14:33:00.0 alle 2008-02-17 14:33:00.0
          Re: qual è il senso di questo codice?

          - Scritto da:
          >
          > - Scritto da:
          > >
          > > - Scritto da:
          > > >     typedef struct Point { float x, y; }
          > Punto;
          >
          > > >     typedef Punto Matrice[N][N];
          > > >
          > > >
          > > > perché chiamare la struttura sia Point sia
          > > Punto?
          > >
          > > perché chi l'ha scritto ignora la grammatica
          > del
          > C
          >
          >
          > Non credo, il codice funziona e ha un senso,
          > ovvero di dichiarare la struttura Point anche col
          > nome
          > Punto.
          >
          > Il problema è che siccome nelle dispense ho
          > trovato più volte questa sintassi dichiarativa,
          > ho l'impressione che il prof l'abbia imparata
          > così com'è, e non si sia mai posto il problema di
          > domandarsene il
          > senso.
          >
          > Forse avrebbe avuto più senso la seguente:
          >     typedef struct Punto {float x,y}
          > Matrice[N][N];

          Ma così facendo non hai dichiarato la struttura Punto, che ti potrebbe essere utile in una funzione.
          • Avatar
            Scritto da
            Non Autenticato
            il 2008-02-17 15:03:00.0 alle 2008-02-17 15:03:00.0
            Re: qual è il senso di questo codice?

            - Scritto da:
            >
            > - Scritto da:
            > >
            > > - Scritto da:
            > > >
            > > > - Scritto da:
            > > > >     typedef struct Point { float x, y; }
            > > Punto;
            > >
            > > > >     typedef Punto Matrice[N][N];
            > > > >
            > > > >
            > > > > perché chiamare la struttura sia Point sia
            > > > Punto?
            > > >
            > > > perché chi l'ha scritto ignora la grammatica
            > > del
            > > C
            > >
            > >
            > > Non credo, il codice funziona e ha un senso,
            > > ovvero di dichiarare la struttura Point anche
            > col
            > > nome
            > > Punto.
            > >
            > > Il problema è che siccome nelle dispense ho
            > > trovato più volte questa sintassi dichiarativa,
            > > ho l'impressione che il prof l'abbia imparata
            > > così com'è, e non si sia mai posto il problema
            > di
            > > domandarsene il
            > > senso.
            > >
            > > Forse avrebbe avuto più senso la seguente:
            > >     typedef struct Punto {float x,y}
            > > Matrice[N][N];
            >
            > Ma così facendo non hai dichiarato la struttura
            > Punto, che ti potrebbe essere utile in una
            > funzione.


            non è vero, la struttura Punto risulta dichiarata, infatti poi posso scrivere
            Punto Fiat; //ahahah quanto sono spiritoso.
            Fiat.x=3,14;
            Fiat.y=213;

            e funziona.
            • Avatar
              Scritto da
              Non Autenticato
              il 2008-02-17 15:07:00.0 alle 2008-02-17 15:07:00.0
              Re: qual è il senso di questo codice?

              - Scritto da:
              >
              > - Scritto da:
              > >
              > > - Scritto da:
              > > >
              > > > - Scritto da:
              > > > >
              > > > > - Scritto da:
              > > > > >     typedef struct Point { float x, y; }
              > > > Punto;
              > > >
              > > > > >     typedef Punto Matrice[N][N];
              > > > > >
              > > > > >
              > > > > > perché chiamare la struttura sia Point sia
              > > > > Punto?
              > > > >
              > > > > perché chi l'ha scritto ignora la grammatica
              > > > del
              > > > C
              > > >
              > > >
              > > > Non credo, il codice funziona e ha un senso,
              > > > ovvero di dichiarare la struttura Point anche
              > > col
              > > > nome
              > > > Punto.
              > > >
              > > > Il problema è che siccome nelle dispense ho
              > > > trovato più volte questa sintassi
              > dichiarativa,
              > > > ho l'impressione che il prof l'abbia imparata
              > > > così com'è, e non si sia mai posto il problema
              > > di
              > > > domandarsene il
              > > > senso.
              > > >
              > > > Forse avrebbe avuto più senso la seguente:
              > > >     typedef struct Punto {float x,y}
              > > > Matrice[N][N];
              > >
              > > Ma così facendo non hai dichiarato la struttura
              > > Punto, che ti potrebbe essere utile in una
              > > funzione.
              >
              >
              > non è vero, la struttura Punto risulta
              > dichiarata, infatti poi posso
              > scrivere
              > Punto Fiat; //ahahah quanto sono spiritoso.
              > Fiat.x=3,14;
              > Fiat.y=213;
              >
              > e funziona.


              #define N 4
              
              int main(int arg, char* argv[])
              {
                typedef struct Punto {float x,y} Matrice[N][N];
                Punto fiat;
                
                return 0;
              }


              >gcc -c prova.c
              prova.c: In function `main':
              prova.c:5: warning: no semicolon at end of struct or union
              prova.c:6: error: `Punto' undeclared (first use in this function)
              prova.c:6: error: (Each undeclared identifier is reported only once
              prova.c:6: error: for each function it appears in.)
              prova.c:6: error: parse error before "fiat"
              prova.c:9:2: warning: no newline at end of file
              • Avatar
                Scritto da
                Non Autenticato
                il 2008-02-17 15:17:00.0 alle 2008-02-17 15:17:00.0
                Re: qual è il senso di questo codice?

                - Scritto da:
                >
                > - Scritto da:
                > >
                > > - Scritto da:
                > > >
                > > > - Scritto da:
                > > > >
                > > > > - Scritto da:
                > > > > >
                > > > > > - Scritto da:
                > > > > > >     typedef struct Point { float x, y; }
                > > > > Punto;
                > > > >
                > > > > > >     typedef Punto Matrice[N][N];
                > > > > > >
                > > > > > >
                > > > > > > perché chiamare la struttura sia Point
                > sia
                > > > > > Punto?
                > > > > >
                > > > > > perché chi l'ha scritto ignora la
                > grammatica
                > > > > del
                > > > > C
                > > > >
                > > > >
                > > > > Non credo, il codice funziona e ha un senso,
                > > > > ovvero di dichiarare la struttura Point
                > anche
                > > > col
                > > > > nome
                > > > > Punto.
                > > > >
                > > > > Il problema è che siccome nelle dispense ho
                > > > > trovato più volte questa sintassi
                > > dichiarativa,
                > > > > ho l'impressione che il prof l'abbia
                > imparata
                > > > > così com'è, e non si sia mai posto il
                > problema
                > > > di
                > > > > domandarsene il
                > > > > senso.
                > > > >
                > > > > Forse avrebbe avuto più senso la seguente:
                > > > >     typedef struct Punto {float x,y}
                > > > > Matrice[N][N];
                > > >
                > > > Ma così facendo non hai dichiarato la
                > struttura
                > > > Punto, che ti potrebbe essere utile in una
                > > > funzione.
                > >
                > >
                > > non è vero, la struttura Punto risulta
                > > dichiarata, infatti poi posso
                > > scrivere
                > > Punto Fiat; //ahahah quanto sono spiritoso.
                > > Fiat.x=3,14;
                > > Fiat.y=213;
                > >
                > > e funziona.
                >
                >
                >
                #define N 4
                > 
                > int main(int arg, char* argv[])
                > {
                >   typedef struct Punto {float x,y} Matrice[N][N];
                >   Punto fiat;
                >   
                >   return 0;
                > }

                >
                > >gcc -c prova.c
                > prova.c: In function `main':
                > prova.c:5: warning: no semicolon at end of struct
                > or
                > union
                > prova.c:6: error: `Punto' undeclared (first
                > use in this
                > function)

                > prova.c:6: error: (Each undeclared identifier is
                > reported only
                > once
                > prova.c:6: error: for each function it appears
                > in.)
                > prova.c:6: error: parse error before "fiat"
                > prova.c:9:2: warning: no newline at end of file

                #define N 4

                int main(int arg, char* argv[])
                {
                typedef struct Punto {float x,y;} Matrice[N][N];
                Punto fiat;

                return 0;
                }


                avevo dimenticato un punto e virgola, riprova.
                • Avatar
                  Scritto da
                  Non Autenticato
                  il 2008-02-17 15:22:00.0 alle 2008-02-17 15:22:00.0
                  Re: qual è il senso di questo codice?

                  - Scritto da:
                  >
                  > - Scritto da:
                  > >
                  > > - Scritto da:
                  > > >
                  > > > - Scritto da:
                  > > > >
                  > > > > - Scritto da:
                  > > > > >
                  > > > > > - Scritto da:
                  > > > > > >
                  > > > > > > - Scritto da:
                  > > > > > > >     typedef struct Point { float x,
                  > y;
                  > }
                  > > > > > Punto;
                  > > > > >
                  > > > > > > >     typedef Punto Matrice[N][N];
                  > > > > > > >
                  > > > > > > >
                  > > > > > > > perché chiamare la struttura sia Point
                  > > sia
                  > > > > > > Punto?
                  > > > > > >
                  > > > > > > perché chi l'ha scritto ignora la
                  > > grammatica
                  > > > > > del
                  > > > > > C
                  > > > > >
                  > > > > >
                  > > > > > Non credo, il codice funziona e ha un
                  > senso,
                  > > > > > ovvero di dichiarare la struttura Point
                  > > anche
                  > > > > col
                  > > > > > nome
                  > > > > > Punto.
                  > > > > >
                  > > > > > Il problema è che siccome nelle dispense
                  > ho
                  > > > > > trovato più volte questa sintassi
                  > > > dichiarativa,
                  > > > > > ho l'impressione che il prof l'abbia
                  > > imparata
                  > > > > > così com'è, e non si sia mai posto il
                  > > problema
                  > > > > di
                  > > > > > domandarsene il
                  > > > > > senso.
                  > > > > >
                  > > > > > Forse avrebbe avuto più senso la seguente:
                  > > > > >     typedef struct Punto {float x,y}
                  > > > > > Matrice[N][N];
                  > > > >
                  > > > > Ma così facendo non hai dichiarato la
                  > > struttura
                  > > > > Punto, che ti potrebbe essere utile in una
                  > > > > funzione.
                  > > >
                  > > >
                  > > > non è vero, la struttura Punto risulta
                  > > > dichiarata, infatti poi posso
                  > > > scrivere
                  > > > Punto Fiat; //ahahah quanto sono spiritoso.
                  > > > Fiat.x=3,14;
                  > > > Fiat.y=213;
                  > > >
                  > > > e funziona.
                  > >
                  > >
                  > >
                  #define N 4
                  > > 
                  > > int main(int arg, char* argv[])
                  > > {
                  > >   typedef struct Punto {float x,y}
                  > Matrice[N][N];
                  > >   Punto fiat;
                  > >   
                  > >   return 0;
                  > > }

                  > >
                  > > >gcc -c prova.c
                  > > prova.c: In function `main':
                  > > prova.c:5: warning: no semicolon at end of
                  > struct
                  > > or
                  > > union
                  > > prova.c:6: error: `Punto' undeclared (first
                  > > use in this
                  > > function)

                  > > prova.c:6: error: (Each undeclared identifier is
                  > > reported only
                  > > once
                  > > prova.c:6: error: for each function it appears
                  > > in.)
                  > > prova.c:6: error: parse error before "fiat"
                  > > prova.c:9:2: warning: no newline at end of file
                  >
                  > #define N 4
                  >
                  > int main(int arg, char* argv[])
                  > {
                  >   typedef struct Punto {float x,y;}
                  > Matrice[N][N];
                  >   Punto fiat;
                  >   
                  >   return 0;
                  > }
                  >
                  >
                  > avevo dimenticato un punto e virgola, riprova.


                  C:\DOCUME~1\lisio\Desktop>gcc -c prova.c
                  prova.c: In function `main':
                  prova.c:6: error: `Punto' undeclared (first use in this function)
                  prova.c:6: error: (Each undeclared identifier is reported only once
                  prova.c:6: error: for each function it appears in.)
                  prova.c:6: error: parse error before "fiat"
                  prova.c:9:2: warning: no newline at end of file
                  • Avatar
                    Scritto da
                    Non Autenticato
                    il 2008-02-17 15:24:00.0 alle 2008-02-17 15:24:00.0
                    Re: qual è il senso di questo codice?

                    - Scritto da:
                    >
                    > - Scritto da:
                    > >
                    > > - Scritto da:
                    > > >
                    > > > - Scritto da:
                    > > > >
                    > > > > - Scritto da:
                    > > > > >
                    > > > > > - Scritto da:
                    > > > > > >
                    > > > > > > - Scritto da:
                    > > > > > > >
                    > > > > > > > - Scritto da:
                    > > > > > > > >     typedef struct Point { float x,
                    > > y;
                    > > }
                    > > > > > > Punto;
                    > > > > > >
                    > > > > > > > >     typedef Punto Matrice[N][N];
                    > > > > > > > >
                    > > > > > > > >
                    > > > > > > > > perché chiamare la struttura sia
                    > Point
                    > > > sia
                    > > > > > > > Punto?
                    > > > > > > >
                    > > > > > > > perché chi l'ha scritto ignora la
                    > > > grammatica
                    > > > > > > del
                    > > > > > > C
                    > > > > > >
                    > > > > > >
                    > > > > > > Non credo, il codice funziona e ha un
                    > > senso,
                    > > > > > > ovvero di dichiarare la struttura Point
                    > > > anche
                    > > > > > col
                    > > > > > > nome
                    > > > > > > Punto.
                    > > > > > >
                    > > > > > > Il problema è che siccome nelle dispense
                    > > ho
                    > > > > > > trovato più volte questa sintassi
                    > > > > dichiarativa,
                    > > > > > > ho l'impressione che il prof l'abbia
                    > > > imparata
                    > > > > > > così com'è, e non si sia mai posto il
                    > > > problema
                    > > > > > di
                    > > > > > > domandarsene il
                    > > > > > > senso.
                    > > > > > >
                    > > > > > > Forse avrebbe avuto più senso la
                    > seguente:
                    > > > > > >     typedef struct Punto {float x,y}
                    > > > > > > Matrice[N][N];
                    > > > > >
                    > > > > > Ma così facendo non hai dichiarato la
                    > > > struttura
                    > > > > > Punto, che ti potrebbe essere utile in una
                    > > > > > funzione.
                    > > > >
                    > > > >
                    > > > > non è vero, la struttura Punto risulta
                    > > > > dichiarata, infatti poi posso
                    > > > > scrivere
                    > > > > Punto Fiat; //ahahah quanto sono spiritoso.
                    > > > > Fiat.x=3,14;
                    > > > > Fiat.y=213;
                    > > > >
                    > > > > e funziona.
                    > > >
                    > > >
                    > > >
                    #define N 4
                    > > > 
                    > > > int main(int arg, char* argv[])
                    > > > {
                    > > >   typedef struct Punto {float x,y}
                    > > Matrice[N][N];
                    > > >   Punto fiat;
                    > > >   
                    > > >   return 0;
                    > > > }

                    > > >
                    > > > >gcc -c prova.c
                    > > > prova.c: In function `main':
                    > > > prova.c:5: warning: no semicolon at end of
                    > > struct
                    > > > or
                    > > > union
                    > > > prova.c:6: error: `Punto' undeclared (first
                    > > > use in this
                    > > > function)

                    > > > prova.c:6: error: (Each undeclared identifier
                    > is
                    > > > reported only
                    > > > once
                    > > > prova.c:6: error: for each function it appears
                    > > > in.)
                    > > > prova.c:6: error: parse error before "fiat"
                    > > > prova.c:9:2: warning: no newline at end of
                    > file
                    > >
                    > > #define N 4
                    > >
                    > > int main(int arg, char* argv[])
                    > > {
                    > >   typedef struct Punto {float x,y;}
                    > > Matrice[N][N];
                    > >   Punto fiat;
                    > >   
                    > >   return 0;
                    > > }
                    > >
                    > >
                    > > avevo dimenticato un punto e virgola, riprova.
                    >
                    >
                    > C:\DOCUME~1\lisio\Desktop>gcc -c prova.c
                    > prova.c: In function `main':
                    > prova.c:6: error: `Punto' undeclared (first
                    > use in this
                    > function)

                    > prova.c:6: error: (Each undeclared identifier is
                    > reported only
                    > once
                    > prova.c:6: error: for each function it appears
                    > in.)
                    > prova.c:6: error: parse error before "fiat"
                    > prova.c:9:2: warning: no newline at end of file

                    non so che dirti, a me funziona.
                    ho usato sia il dev c++ sia il gcc che vi era incluso.
                    mò mi leggo il kerningam e vado a cercare se è standard ciò che ho fatto.
                    • Avatar
                      Scritto da
                      Non Autenticato
                      il 2008-02-17 15:27:00.0 alle 2008-02-17 15:27:00.0
                      Re: qual è il senso di questo codice?

                      - Scritto da:
                      >
                      > - Scritto da:
                      > >
                      > > - Scritto da:
                      > > >
                      > > > - Scritto da:
                      > > > >
                      > > > > - Scritto da:
                      > > > > >
                      > > > > > - Scritto da:
                      > > > > > >
                      > > > > > > - Scritto da:
                      > > > > > > >
                      > > > > > > > - Scritto da:
                      > > > > > > > >
                      > > > > > > > > - Scritto da:
                      > > > > > > > > >     typedef struct Point { float
                      > x,
                      > > > y;
                      > > > }
                      > > > > > > > Punto;
                      > > > > > > >
                      > > > > > > > > >     typedef Punto Matrice[N][N];
                      > > > > > > > > >
                      > > > > > > > > >
                      > > > > > > > > > perché chiamare la struttura sia
                      > > Point
                      > > > > sia
                      > > > > > > > > Punto?
                      > > > > > > > >
                      > > > > > > > > perché chi l'ha scritto ignora la
                      > > > > grammatica
                      > > > > > > > del
                      > > > > > > > C
                      > > > > > > >
                      > > > > > > >
                      > > > > > > > Non credo, il codice funziona e ha un
                      > > > senso,
                      > > > > > > > ovvero di dichiarare la struttura
                      > Point
                      > > > > anche
                      > > > > > > col
                      > > > > > > > nome
                      > > > > > > > Punto.
                      > > > > > > >
                      > > > > > > > Il problema è che siccome nelle
                      > dispense
                      > > > ho
                      > > > > > > > trovato più volte questa sintassi
                      > > > > > dichiarativa,
                      > > > > > > > ho l'impressione che il prof l'abbia
                      > > > > imparata
                      > > > > > > > così com'è, e non si sia mai posto il
                      > > > > problema
                      > > > > > > di
                      > > > > > > > domandarsene il
                      > > > > > > > senso.
                      > > > > > > >
                      > > > > > > > Forse avrebbe avuto più senso la
                      > > seguente:
                      > > > > > > >     typedef struct Punto {float x,y}
                      > > > > > > > Matrice[N][N];
                      > > > > > >
                      > > > > > > Ma così facendo non hai dichiarato la
                      > > > > struttura
                      > > > > > > Punto, che ti potrebbe essere utile in
                      > una
                      > > > > > > funzione.
                      > > > > >
                      > > > > >
                      > > > > > non è vero, la struttura Punto risulta
                      > > > > > dichiarata, infatti poi posso
                      > > > > > scrivere
                      > > > > > Punto Fiat; //ahahah quanto sono
                      > spiritoso.
                      > > > > > Fiat.x=3,14;
                      > > > > > Fiat.y=213;
                      > > > > >
                      > > > > > e funziona.
                      > > > >
                      > > > >
                      > > > >
                      #define N 4
                      > > > > 
                      > > > > int main(int arg, char* argv[])
                      > > > > {
                      > > > >   typedef struct Punto {float x,y}
                      > > > Matrice[N][N];
                      > > > >   Punto fiat;
                      > > > >   
                      > > > >   return 0;
                      > > > > }

                      > > > >
                      > > > > >gcc -c prova.c
                      > > > > prova.c: In function `main':
                      > > > > prova.c:5: warning: no semicolon at end of
                      > > > struct
                      > > > > or
                      > > > > union
                      > > > > prova.c:6: error: `Punto' undeclared
                      > (first
                      > > > > use in this
                      > > > > function)

                      > > > > prova.c:6: error: (Each undeclared
                      > identifier
                      > > is
                      > > > > reported only
                      > > > > once
                      > > > > prova.c:6: error: for each function it
                      > appears
                      > > > > in.)
                      > > > > prova.c:6: error: parse error before "fiat"
                      > > > > prova.c:9:2: warning: no newline at end of
                      > > file
                      > > >
                      > > > #define N 4
                      > > >
                      > > > int main(int arg, char* argv[])
                      > > > {
                      > > >   typedef struct Punto {float x,y;}
                      > > > Matrice[N][N];
                      > > >   Punto fiat;
                      > > >   
                      > > >   return 0;
                      > > > }
                      > > >
                      > > >
                      > > > avevo dimenticato un punto e virgola, riprova.
                      > >
                      > >
                      > > C:\DOCUME~1\lisio\Desktop>gcc -c prova.c
                      > > prova.c: In function `main':
                      > > prova.c:6: error: `Punto' undeclared (first
                      > > use in this
                      > > function)

                      > > prova.c:6: error: (Each undeclared identifier is
                      > > reported only
                      > > once
                      > > prova.c:6: error: for each function it appears
                      > > in.)
                      > > prova.c:6: error: parse error before "fiat"
                      > > prova.c:9:2: warning: no newline at end of file
                      >
                      > non so che dirti, a me funziona.
                      > ho usato sia il dev c++ sia il gcc che vi era
                      > incluso.
                      > mò mi leggo il kerningam e vado a cercare se è
                      > standard ciò che ho
                      > fatto.

                      Più che il kernigam dovresti prendere qualche libro sui linguaggi di programmazione.
                      • Avatar
                        Scritto da
                        Non Autenticato
                        il 2008-02-17 15:31:00.0 alle 2008-02-17 15:31:00.0
                        Re: qual è il senso di questo codice?

                        - Scritto da:
                        >
                        > - Scritto da:
                        > >
                        > > - Scritto da:
                        > > >
                        > > > - Scritto da:
                        > > > >
                        > > > > - Scritto da:
                        > > > > >
                        > > > > > - Scritto da:
                        > > > > > >
                        > > > > > > - Scritto da:
                        > > > > > > >
                        > > > > > > > - Scritto da:
                        > > > > > > > >
                        > > > > > > > > - Scritto da:
                        > > > > > > > > >
                        > > > > > > > > > - Scritto da:
                        > > > > > > > > > >     typedef struct Point { float
                        > > x,
                        > > > > y;
                        > > > > }
                        > > > > > > > > Punto;
                        > > > > > > > >
                        > > > > > > > > > >     typedef Punto Matrice[N][N];
                        > > > > > > > > > >
                        > > > > > > > > > >
                        > > > > > > > > > > perché chiamare la struttura sia
                        > > > Point
                        > > > > > sia
                        > > > > > > > > > Punto?
                        > > > > > > > > >
                        > > > > > > > > > perché chi l'ha scritto ignora la
                        > > > > > grammatica
                        > > > > > > > > del
                        > > > > > > > > C
                        > > > > > > > >
                        > > > > > > > >
                        > > > > > > > > Non credo, il codice funziona e ha
                        > un
                        > > > > senso,
                        > > > > > > > > ovvero di dichiarare la struttura
                        > > Point
                        > > > > > anche
                        > > > > > > > col
                        > > > > > > > > nome
                        > > > > > > > > Punto.
                        > > > > > > > >
                        > > > > > > > > Il problema è che siccome nelle
                        > > dispense
                        > > > > ho
                        > > > > > > > > trovato più volte questa sintassi
                        > > > > > > dichiarativa,
                        > > > > > > > > ho l'impressione che il prof l'abbia
                        > > > > > imparata
                        > > > > > > > > così com'è, e non si sia mai posto
                        > il
                        > > > > > problema
                        > > > > > > > di
                        > > > > > > > > domandarsene il
                        > > > > > > > > senso.
                        > > > > > > > >
                        > > > > > > > > Forse avrebbe avuto più senso la
                        > > > seguente:
                        > > > > > > > >     typedef struct Punto {float x,y}
                        > > > > > > > > Matrice[N][N];
                        > > > > > > >
                        > > > > > > > Ma così facendo non hai dichiarato la
                        > > > > > struttura
                        > > > > > > > Punto, che ti potrebbe essere utile in
                        > > una
                        > > > > > > > funzione.
                        > > > > > >
                        > > > > > >
                        > > > > > > non è vero, la struttura Punto risulta
                        > > > > > > dichiarata, infatti poi posso
                        > > > > > > scrivere
                        > > > > > > Punto Fiat; //ahahah quanto sono
                        > > spiritoso.
                        > > > > > > Fiat.x=3,14;
                        > > > > > > Fiat.y=213;
                        > > > > > >
                        > > > > > > e funziona.
                        > > > > >
                        > > > > >
                        > > > > >
                        #define N 4
                        > > > > > 
                        > > > > > int main(int arg, char* argv[])
                        > > > > > {
                        > > > > >   typedef struct Punto {float x,y}
                        > > > > Matrice[N][N];
                        > > > > >   Punto fiat;
                        > > > > >   
                        > > > > >   return 0;
                        > > > > > }

                        > > > > >
                        > > > > > >gcc -c prova.c
                        > > > > > prova.c: In function `main':
                        > > > > > prova.c:5: warning: no semicolon at end of
                        > > > > struct
                        > > > > > or
                        > > > > > union
                        > > > > > prova.c:6: error: `Punto' undeclared
                        > > (first
                        > > > > > use in this
                        > > > > > function)

                        > > > > > prova.c:6: error: (Each undeclared
                        > > identifier
                        > > > is
                        > > > > > reported only
                        > > > > > once
                        > > > > > prova.c:6: error: for each function it
                        > > appears
                        > > > > > in.)
                        > > > > > prova.c:6: error: parse error before
                        > "fiat"
                        > > > > > prova.c:9:2: warning: no newline at end of
                        > > > file
                        > > > >
                        > > > > #define N 4
                        > > > >
                        > > > > int main(int arg, char* argv[])
                        > > > > {
                        > > > >   typedef struct Punto {float x,y;}
                        > > > > Matrice[N][N];
                        > > > >   Punto fiat;
                        > > > >   
                        > > > >   return 0;
                        > > > > }
                        > > > >
                        > > > >
                        > > > > avevo dimenticato un punto e virgola,
                        > riprova.
                        > > >
                        > > >
                        > > > C:\DOCUME~1\lisio\Desktop>gcc -c prova.c
                        > > > prova.c: In function `main':
                        > > > prova.c:6: error: `Punto' undeclared (first
                        > > > use in this
                        > > > function)

                        > > > prova.c:6: error: (Each undeclared identifier
                        > is
                        > > > reported only
                        > > > once
                        > > > prova.c:6: error: for each function it appears
                        > > > in.)
                        > > > prova.c:6: error: parse error before "fiat"
                        > > > prova.c:9:2: warning: no newline at end of
                        > file
                        > >
                        > > non so che dirti, a me funziona.
                        > > ho usato sia il dev c++ sia il gcc che vi era
                        > > incluso.
                        > > mò mi leggo il kerningam e vado a cercare se è
                        > > standard ciò che ho
                        > > fatto.
                        >
                        > Più che il kernigam dovresti prendere qualche
                        > libro sui linguaggi di
                        > programmazione.

                        che c'entra il kernigam è il manuale di c, questa è una questione puramente sintattica.

                        cmq è appurato che il compilatore non mi dà errori per qualche strana configurazione, però provando con
                        #include <stdio.h>
                        #define N 4
                        
                        int main(int arg, char* argv[])
                        {
                          typedef struct Punto {float x,y;} Matrice[N][N];
                          Punto fiat;
                          
                          fiat.x=N;
                          fiat.y=fiat.x+N;
                          printf("%d %d",fiat.x,fiat.y);
                          return 0;
                        }


                        ottengo risultati non corretti, quindi mi sto quasi convincendo che hai ragione.
                        • Avatar
                          Scritto da
                          Non Autenticato
                          il 2008-02-17 15:34:00.0 alle 2008-02-17 15:34:00.0
                          Re: qual è il senso di questo codice?
                          mai letto il kernigam, basta leggere un libro che spieghi la teoria dei linguaggi di programmazione, e nessun linguaggio (imperativo) può darti intoppi.
                          • Avatar
                            Scritto da
                            Non Autenticato
                            il 2008-02-17 15:40:00.0 alle 2008-02-17 15:40:00.0
                            Re: qual è il senso di questo codice?

                            - Scritto da:
                            > mai letto il kernigam, basta leggere un libro che
                            > spieghi la teoria dei linguaggi di
                            > programmazione, e nessun linguaggio (imperativo)
                            > può darti
                            > intoppi.

                            La sintassi prescinde dalla teoria dei linguaggi di programmazione. Posso pur crederti se tu mi dici di averla appresa a prove ed errori, ma se lo standard dice che la sintassi giusta è quella e non un'altra, non c'è nessuna teoria dietro che te lo possa spiegare.
                            • Avatar
                              Scritto da
                              Non Autenticato
                              il 2008-02-17 15:45:00.0 alle 2008-02-17 15:45:00.0
                              Re: qual è il senso di questo codice?

                              - Scritto da:
                              >
                              > - Scritto da:
                              > > mai letto il kernigam, basta leggere un libro
                              > che
                              > > spieghi la teoria dei linguaggi di
                              > > programmazione, e nessun linguaggio (imperativo)
                              > > può darti
                              > > intoppi.
                              >
                              > La sintassi prescinde dalla teoria dei linguaggi
                              > di programmazione. Posso pur crederti se tu mi
                              > dici di averla appresa a prove ed errori, ma se
                              > lo standard dice che la sintassi giusta è quella
                              > e non un'altra, non c'è nessuna teoria dietro che
                              > te lo possa
                              > spiegare.


                              cmq per la cronaca il programma mi funziona con
                              typedef struct Point { float x, y; } Punto, Matrice[N][N];

                              avevo sbagliato i formattatori per la printf (%d invece che %f) e quindi mi veniva un risultato insolito.
                              • Avatar
                                Scritto da
                                Non Autenticato
                                il 2008-02-17 15:59:00.0 alle 2008-02-17 15:59:00.0
                                Re: qual è il senso di questo codice?

                                - Scritto da:
                                >
                                > - Scritto da:
                                > >
                                > > - Scritto da:
                                > > > mai letto il kernigam, basta leggere un libro
                                > > che
                                > > > spieghi la teoria dei linguaggi di
                                > > > programmazione, e nessun linguaggio
                                > (imperativo)
                                > > > può darti
                                > > > intoppi.
                                > >
                                > > La sintassi prescinde dalla teoria dei linguaggi
                                > > di programmazione. Posso pur crederti se tu mi
                                > > dici di averla appresa a prove ed errori, ma se
                                > > lo standard dice che la sintassi giusta è quella
                                > > e non un'altra, non c'è nessuna teoria dietro
                                > che
                                > > te lo possa
                                > > spiegare.
                                >
                                >
                                > cmq per la cronaca il programma mi funziona con
                                > typedef struct Point { float x, y; } Punto,
                                > Matrice[N][N];

                                funziona, ma è uno stile che fa cagare!
                                • Avatar
                                  Scritto da
                                  Non Autenticato
                                  il 2008-02-17 16:03:00.0 alle 2008-02-17 16:03:00.0
                                  Re: qual è il senso di questo codice?

                                  - Scritto da:
                                  >
                                  > - Scritto da:
                                  > >
                                  > > - Scritto da:
                                  > > >
                                  > > > - Scritto da:
                                  > > > > mai letto il kernigam, basta leggere un
                                  > libro
                                  > > > che
                                  > > > > spieghi la teoria dei linguaggi di
                                  > > > > programmazione, e nessun linguaggio
                                  > > (imperativo)
                                  > > > > può darti
                                  > > > > intoppi.
                                  > > >
                                  > > > La sintassi prescinde dalla teoria dei
                                  > linguaggi
                                  > > > di programmazione. Posso pur crederti se tu mi
                                  > > > dici di averla appresa a prove ed errori, ma
                                  > se
                                  > > > lo standard dice che la sintassi giusta è
                                  > quella
                                  > > > e non un'altra, non c'è nessuna teoria dietro
                                  > > che
                                  > > > te lo possa
                                  > > > spiegare.
                                  > >
                                  > >
                                  > > cmq per la cronaca il programma mi funziona con
                                  > > typedef struct Point { float x, y; } Punto,
                                  > > Matrice[N][N];
                                  >
                                  > funziona, ma è uno stile che fa cagare!

                                  eh sono d'accordo con te!
                            • Avatar
                              Scritto da
                              Non Autenticato
                              il 2008-02-17 15:56:00.0 alle 2008-02-17 15:56:00.0
                              Re: qual è il senso di questo codice?

                              - Scritto da:
                              >
                              > - Scritto da:
                              > > mai letto il kernigam, basta leggere un libro
                              > che
                              > > spieghi la teoria dei linguaggi di
                              > > programmazione, e nessun linguaggio (imperativo)
                              > > può darti
                              > > intoppi.
                              >
                              > La sintassi prescinde dalla teoria dei linguaggi
                              > di programmazione. Posso pur crederti se tu mi
                              > dici di averla appresa a prove ed errori, ma se
                              > lo standard dice che la sintassi giusta è quella
                              > e non un'altra, non c'è nessuna teoria dietro che
                              > te lo possa
                              > spiegare.

                              Scommetto che non sai cosa è uno stack di attivazione.
        • Avatar
          ☺
          Scritto da
          avvelentani
          Cubicolario
          il 2008-02-17 15:36:00.0 alle 2008-02-17 15:36:00.0
          Trollate totali: 18184
          Re: qual è il senso di questo codice?

          - Scritto da:
          >
          > - Scritto da:
          > >
          > > - Scritto da:
          > > >     typedef struct Point { float x, y; }
          > Punto;
          >
          > > >     typedef Punto Matrice[N][N];
          > > >
          > > >
          > > > perché chiamare la struttura sia Point sia
          > > Punto?
          > >
          > > perché chi l'ha scritto ignora la grammatica
          > del
          > C
          >
          >
          > Non credo, il codice funziona e ha un senso,
          > ovvero di dichiarare la struttura Point anche col
          > nome
          > Punto.
          >
          > Il problema è che siccome nelle dispense ho
          > trovato più volte questa sintassi dichiarativa,
          > ho l'impressione che il prof l'abbia imparata
          > così com'è, e non si sia mai posto il problema di
          > domandarsene il
          > senso.
          >
          > Forse avrebbe avuto più senso la seguente:
          >     typedef struct Punto {float x,y}
          > Matrice[N][N];

          Devi togliere il typedef.
          Il motivo del codice all'inizio e` una faccenda di namespaces e di compatibilita` con il C++. Ma sinceramente fa piuttosto schifo.
          I think happiness is love
          - Vladimir Putin
          • Avatar
            Scritto da
            Non Autenticato
            il 2008-02-17 15:46:00.0 alle 2008-02-17 15:46:00.0
            Re: qual è il senso di questo codice?

            - Scritto da: avvelentani
            >
            > - Scritto da:
            > >
            > > - Scritto da:
            > > >
            > > > - Scritto da:
            > > > >     typedef struct Point { float x, y; }
            > > Punto;
            > >
            > > > >     typedef Punto Matrice[N][N];
            > > > >
            > > > >
            > > > > perché chiamare la struttura sia Point sia
            > > > Punto?
            > > >
            > > > perché chi l'ha scritto ignora la grammatica
            > > del
            > > C
            > >
            > >
            > > Non credo, il codice funziona e ha un senso,
            > > ovvero di dichiarare la struttura Point anche
            > col
            > > nome
            > > Punto.
            > >
            > > Il problema è che siccome nelle dispense ho
            > > trovato più volte questa sintassi dichiarativa,
            > > ho l'impressione che il prof l'abbia imparata
            > > così com'è, e non si sia mai posto il problema
            > di
            > > domandarsene il
            > > senso.
            > >
            > > Forse avrebbe avuto più senso la seguente:
            > >     typedef struct Punto {float x,y}
            > > Matrice[N][N];
            >
            > Devi togliere il typedef.
            > Il motivo del codice all'inizio e` una faccenda
            > di namespaces e di compatibilita` con il C++. Ma
            > sinceramente fa piuttosto
            > schifo.

            Va bene, l'importante è che abbia un senso.
            E cmq non è la prima volta che la compatibilità è cagione di schifezze, né sarà l'ultima.
          • Avatar
            Scritto da
            Non Autenticato
            il 2008-02-17 15:47:00.0 alle 2008-02-17 15:47:00.0
            Re: qual è il senso di questo codice?

            - Scritto da: avvelentani
            >
            > - Scritto da:
            > >
            > > - Scritto da:
            > > >
            > > > - Scritto da:
            > > > >     typedef struct Point { float x, y; }
            > > Punto;
            > >
            > > > >     typedef Punto Matrice[N][N];
            > > > >
            > > > >
            > > > > perché chiamare la struttura sia Point sia
            > > > Punto?
            > > >
            > > > perché chi l'ha scritto ignora la grammatica
            > > del
            > > C
            > >
            > >
            > > Non credo, il codice funziona e ha un senso,
            > > ovvero di dichiarare la struttura Point anche
            > col
            > > nome
            > > Punto.
            > >
            > > Il problema è che siccome nelle dispense ho
            > > trovato più volte questa sintassi dichiarativa,
            > > ho l'impressione che il prof l'abbia imparata
            > > così com'è, e non si sia mai posto il problema
            > di
            > > domandarsene il
            > > senso.
            > >
            > > Forse avrebbe avuto più senso la seguente:
            > >     typedef struct Punto {float x,y}
            > > Matrice[N][N];
            >
            > Devi togliere il typedef.

            Senza typedef non funziona.
<softv>

Pagina generata in 155 millisecondi

Utenti attivi: 14 nell'ultimo minuto, 35 negli ultimi cinque minuti, 82 negli ultimi 15 minuti