malloc 中的表达式不能用define订的值

malloc 中的表达式不能用define定的值
#include<stdlib.h>
#define Stack_Initsize 100;
typedef struct{
  char *base,
       *top;
  int stacksize;
}SqStack;
void initstack(SqStack &L){
  L.base=(char *)malloc( sizeof(char)*Stack_Initsize);
  //if(!base) 
  }
  

编译总是不通过,如果把L.base=(char *)malloc( sizeof(char)*Stack_Initsize);中的Stack_Initsize换成100就行了,不知道咋整,求大神解惑

------解决方案--------------------
#define Stack_Initsize 100
后面的分号不要
------解决方案--------------------
#define Stack_Initsize 100;

#define Stack_Initsize 100   //没有分号

------解决方案--------------------

#define Stack_Initsize 100;
//宏是全部替换的,也就是 把你代码里的
//所有出现Stack_Initsize 的地方 替换成 
// 100;

替换后
L.base=(char *)malloc( sizeof(char)*100;);
//这样肯定是编译不过的!

改成
#define Stack_Initsize 100


建议 少用宏: 不安全! 它只会替换!
------解决方案--------------------
引用:
#define Stack_Initsize 100
后面的分号不要

++