Originariamente inviato da gokan
cosa cambia?
L'uso delle parentesi graffe all'interno del main a che servono in questo caso?
In ansi C89 le variabili vanno dichiarate subito dopo l'apertura di un blocco { ... }
per cui, se si ha la necessità di dichiarare variabili dopo avere eseguito alcune istruzioni (ad esempio per risparmiare memoria sullo stack)

codice:
int main()
{
  int buffer[4096];

  /* richiama alcune funzioni */

  /* usa la variabile buffer */

  /* richiama altre funzioni */
}
in C89 si può riscrivere così
codice:
int main()
{
  /* richiama alcune funzioni */

  {
    int buffer[4096];
    /* usa la variabile buffer */
  }

  /* richiama altre funzioni */
}
ma non così (questo è valido solo per C99 e C++)
codice:
int main()
{
  /* richiama alcune funzioni */

  int buffer[4096];
  /* usa la variabile buffer */

  /* richiama altre funzioni */
}