2013-03-17 7 views
27

Próbuję użyć #define do zdefiniowania stałej w moim programie. Rozumiem, że mogę użyć const, ale staram się dobrze zrozumieć #define. Czy ktoś mógłby wyjaśnić, dlaczego poniższy kod nie działa i powinien być zrobiony zamiast tego?Używanie programu #define in C Program

#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; 
} 

Odpowiedz

63

Musisz usunąć ; po 20, jak to

#define M 20 
+1

Oh ... to było zdefiniowanie go jako '20;'. Całkowicie o tym nie myślałem! Dziękuję Ci. –

+0

Nie ma za co i dziękuję :) – nabroyan

+0

Ponad połowa całej twojej reputacji pochodzi z tej jednej odpowiedzi ... – theonlygusti