以下錯誤實例是本人在編程過程中出現的錯誤,在此我進行一下總結並提出預防此錯誤的相關措施 。
實例1:
錯誤代碼
……
for (i=count-1; i>=0; i--)
{
if ((ULong)memblock == (ULong)(pMemInfo[i].addr));
{
fprintf(pf, "nAllSize = %u\n", pMemInfo[count-1].nSizeAll);
pMemInfo[count-1].nSizeAll -= pMemInfo[i].nSize;
break;
}
……
}
……
錯誤原因:if語句後面多添加了一個分號,導致if語句下面大括號包含的語句每次都執行。
預防措施:每次寫if語句都帶上else關鍵字 ,即if……else……成對出現,這樣如果出現以上情況,則編譯的時候會出現語法錯誤,即可以避免此類錯誤的出現。
改正後代碼:
……
for (i=count-1; i>=0; i--)
{
if ((ULong)memblock == (ULong)(pMemInfo[i].addr))
{
fprintf(pf, "nAllSize = %u\n", pMemInfo[count-1].nSizeAll);
pMemInfo[count-1].nSizeAll -= pMemInfo[i].nSize;
break;
}
else
{
}
……
}