使用赋值c ++声明内联变量

时间:2012-09-10 19:18:34

标签: c++ variables syntax bitmap inline

在阅读C ++中的位图处理时,我遇到了这段代码 用于使用从位图文件中获取的数据加载调色板:

//set Number of Colors
numColors = 1 << bmih.biBitCount;

//load the palette for 8 bits per pixel
if(bmih.biBitCount == 8) {
        colours=new RGBQUAD[numColours];
        fread(colours,sizeof(RGBQUAD),numColours,in);
}

其中“bmih.biBitCount”是已具有值的预定义变量。 为什么作者声明numColors等于1然后将值bmih.biBitCount分配给同一行中的该变量?这究竟做了什么以及将变量值分配两次内联的好处是什么?

1 个答案:

答案 0 :(得分:2)

他没有,这就是使用<<作为“流媒体”操作符混淆人们的情况。

<<>>运算符传统上是位移运算符,这就是它们在这种情况下的含义。这些运算符将变量向左或向右移动了许多位置。假设我们有x = 0b00001(并且您的编译器理解这样的二进制表示法)。 x << 2会给出结果0b00100