I am trying to use #define
to define a constant in my program. I realize I could use const
, but I am trying to get a good understanding of #define
. Could someone please explain why the following code does not work, and should be done instead?
#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;
}
Brian Tompsett - 汤莱恩
5,92972 gold badges63 silver badges135 bronze badges
asked Mar 17, 2013 at 18:39
1 Answer 1
You must remove ;
after20
, like this
#define M 20
ThiefMaster
320k85 gold badges607 silver badges648 bronze badges
answered Mar 17, 2013 at 18:40
-
1Oh... it was defining it as
20;
. I totally didn't think of that! Thank you.Oliver Spryn– Oliver Spryn2013年03月17日 18:41:07 +00:00Commented Mar 17, 2013 at 18:41 -
Also if like me you are an idiot and put = assignment in define, try removing it. This shows how much I dislike defines and how I don't use C enough any more.MrMesees– MrMesees2017年07月02日 09:09:21 +00:00Commented Jul 2, 2017 at 9:09
lang-c