c语言typedef

define Type_D int
typedef int
Type_T

使用上述两个类型分别定义了两个变量
Type_D a,b;
Type_T x,y;

请问 a b x y分别是什么类型,使用 #define 与 typeof的区别是什么?那个更加好?
typeof(a) = int*
typeof(b) = int

define 是字符替换
int a,b; => int a,b; *号结合性!

typeof(x) = int
typeof(y) = int

(int*) x,y;//但是语法不支持 编译不会过 C语言不可以给类型加()?
注意:(类型说明符) 这是类型强转!