alue 等于1.
对于字符串常量,编译器会把它转换成一个初始化了的char数组,例如
“contents of string”;
会转换成:
char s1[] = “contents of string”;
这样,编译器就可以建立一个类型列表来描述字符串常量。
Specifier最后还有一个StructDefine类型的成员,如果当前的变量是一个结构体的话,vStruct就不是null, StructDefine的具体定义,我们后面再给出。
isLong用来表示当前变量占据多大字节,默认下int类型占据2字节,long int 占据4字节,因此:
long int x;
变量x对应的Specifier类,isLong就会设置为true.由于编译器默认没有long修饰的变量都占据2字节,所以short关键字会被自动忽略。
isSigned, isStatic, isExternal 用来表明变量是否被对应的关键字所修饰,例如:
external unsigned long int y;
那么变量y对应的Specifier 中,isExternal 等于true, isSigned 等于false, isLong等于true.
类型系统是一个复杂而且繁琐的技术要点,一节不可能讲清楚,本节我们先探讨一部分,在后面的章节中,我们继续就类型系统的理论和代码实现进行深入的了解。