我正在处理test.c文件,并尝试计算其中的单行注释。
当我发现两个连续的/字符时,我将slc触发器设置为true。
当我到达行尾时,我需要将slc触发器设置为false。
当然,\n字符清楚地表示单行注释的结束。
switch (character)
{
case '\n':
slc = false; // single-line comment ended
break;但是当找到\n字符时,slc可以是true或false。
switch (character)
{
case '\n':
if (slc) slc = false; // single-line comment ended
break;这两个代码块之间有什么区别吗?
我该怎么写呢?
发布于 2012-11-11 06:28:51
使用第一种形式。添加额外的if检查不会影响代码的功能,只会影响代码的可读性,这是不好的做法。你应该总是以最简洁的方式编写代码,而不是混淆代码的意图。由于在这种情况下,您的意图总是将变量设置为false,因此只需设置slc = false即可。
发布于 2012-11-11 06:30:34
Top one做到了这一点,为什么还要为if而烦恼?
https://stackoverflow.com/questions/13326666
复制相似问题