我正在处理test.c文件,并尝试计算其中的单行注释。

当发现两个连续的/字符时,将slc触发器设置为true

当我到达行尾时,我需要将slc触发器设置为false

当然,\n字符清楚地指示单行注释的结尾。

switch (character)
{
    case '\n':
        slc = false; // single-line comment ended
        break;


但是,当找到\n字符时,slc可以是truefalse

switch (character)
{
    case '\n':
        if (slc) slc = false; // single-line comment ended
        break;


这两个代码块之间有什么区别吗?

我应该怎么写?

最佳答案

使用第一种形式。添加额外的if检查不会影响代码的功能,仅影响其可读性,这是不好的做法。您应该始终以最简洁的方式编写代码,以免混淆代码的意图。由于在这种情况下,您的意图始终是将变量设为false,因此只需设置slc = false

关于c - b =假vs(b)b =假,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13326666/

10-12 16:07