2013-03-17 15 views
27

Sto cercando di utilizzare #define per definire una costante nel mio programma. Mi rendo conto che potrei usare const, ma sto cercando di capire bene lo #define. Qualcuno potrebbe spiegare perché il seguente codice non funziona, e dovrebbe invece essere fatto?Uso di #define in C Programma

#include <stdio.h> 
#define M 20; 
typedef int Marray_t[M][M]; //I can't define an M x M array 

int main() { 
    Marray_t A; 
    int i; 

    for (i = 0; i < M; ++i) { //Can't iterate up to M 
    A[i] = i; 
    } 

    return 0; 
} 

risposta

63

È necessario rimuovere ; dopo 20, come questo

#define M 20 
+1

Oh ... è stato definendolo come '20;'. Non ci ho pensato assolutamente! Grazie. –

+0

Prego e grazie :) – nabroyan

+0

Più della metà di tutta la tua reputazione deriva da questa risposta ... – theonlygusti