我正在處理test.c
文件並嘗試對其中的單行註釋進行計數。b = false與if(b)b = false
當我連續發現兩個/
個字符時,我將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;
這兩個代碼塊有什麼不同嗎?
我該怎麼寫?
對於第一個代碼打擾,你應該改變的評論,從'或here'東西//沒有單行註釋,因爲新行不需要一個結束。 –
唯一的區別是,如果關閉優化器,後者將生成更多代碼......行爲將會相同。這不明顯嗎?在聲明結尾處'slc'必然是錯誤的。 –
@JimBalter對我來說不是那麼明顯。我不確定哪種操作更容易:爲一個變量分配一些新的值,或者檢查一些條件。 –