C语言增量(我想)

时间:2013-11-30 19:16:52

标签: c increment decrement

我首先要说这是一个家庭作业,但它与我学习C无关。 我们的任务是使用信号量和优先级实现Reader / Writer冲突的解决方案。在Java中为类完成。

我们正在使用的这本书使用C(我认为)来处理他们的代码示例。我对标准C并不熟悉,我无法弄清楚如何搜索现有文献以寻找我所寻求的答案。

在代码中:

semaphore x=1,wsem=1;
int readcount;

void reader()
{
    While (true){
    semWait(x);
    readCount++;
    if(readcount==1)
    {
        semWait(wsem);
    }
    semSignal(x);
    READUNIT();
    semWait(x);
    readcount; /* <--- the questionable command */
    if(readcount==0)
    {
        semSignal(wsem)
    }
    semSignal(x);
    }
}

我已经“加星标”的这条线没有任何明显的意义。我似乎只是在说明或声明变量的名称。这是我从未见过的某种形式的减量,还是这样做呢?看起来我可以在某个C-guide中找到它,但我不知道它在做什么,所以我真的不知道如何询问它正在做什么。

1 个答案:

答案 0 :(得分:2)

变量名后跟分号是C中的完整法律声明,但它什么都不做。尽管在某些编译器中抑制未使用变量警告可能很有用,但很少使用该表单。

从上下文来看,它应该是readcount--;。这是C减量运算符,撤消上面的readcount++

您的来源是否也有(错误的)大写字母W Whilereadcount的拼写不一致?如果是这样,在一个简短的例子中就是几个不好的拼写错误,你应该怀疑书中的其他一切。