请问此处的01 02 04是代表什么呢?

来源:百度知道 编辑:UC知道 时间:2024/06/30 07:20:36
书上说:考虑编译器中符号表操作的有关细节。程序中的每个标识符都有与之相关的特定信息,例如,它是否为关键字,它是否是外部的且(或)是静态的,等等。对这些信息进行编码的最简洁的方法就是使用一个char或int对象中的位标志集合。
#define KEYWORD 01
#define EXTRENAL 02
#define STATIC 04
请问什么是char或int对象中的位标志集合。
此处的01 02 04是代表什么呢?
谢谢

关于符号表,我不是很懂

但这个位标志我倒是理解

像KEYWORD 为0001
EXTERNAL为02 ,二进制就是0010
STATIC为4,二进制就是0100

看位,从低到高,每个只有1位为1.

这样我就能将其作为标志

当做属性,判断是否某个属性存在或不存在


int a = KEYWORD | EXTRENAL ;
这样 a = 3;

此后我可以判断
if( a & KEYWORD)//这个就为真
{
//有keyword属性
}

if( a & EXTERNAL)//这个就为真
{
// 有external属性
}

if( a & STATIC)//这个为假
{
}

那是常量``