下列说法正确的是( )。
A. 在C语言中,变量必须先定义后使用。
B. 一条变量定义语句可定义多个同类型的变量。
C89规定所有变量必须在第一条可执行语句前定义。
D. const常量只能在定义时赋值。
E. 实型常量的默认类型是double类型。
F. 一条变量定义语句不可以同时定义多个变量。
G. 不同类型的变量分配的存储空间大小都是相同的。
H. 在C语言中,所有变量都必须在定义时进行初始化。
I. 变量在没有初始化的时候,其值都是0。
J. 宏常量有数据类型,编译器在宏替换时可以进行类型检查。