c – 在循环中初始化变量
发布时间:2020-12-16 03:41:41 所属栏目:百科 来源:网络整理
导读:我试图弄清楚在初始化某些变量时最佳做法是什么…… 我的代码目前看起来像这样: int nHexCount = 0;int prevState = sc.state;bool bOnlySpaces = true;bool bIsValidLabel = true;bool bIsHotstring = false;bool bIsValidName = true;bool bIsValidExpSta
我试图弄清楚在初始化某些变量时最佳做法是什么……
我的代码目前看起来像这样: int nHexCount = 0; int prevState = sc.state; bool bOnlySpaces = true; bool bIsValidLabel = true; bool bIsHotstring = false; bool bIsValidName = true; bool bIsValidExpStart = false; bool fInExpression = false; bool fInStringBlock = (sc.state == SCE_AHKL_STRINGOPTS || sc.state == SCE_AHKL_STRINGBLOCK); for (; sc.More(); sc.Forward()) { if (sc.atLineStart) { if (!fInStringBlock && sc.state != SCE_AHKL_COMMENTBLOCK) sc.SetState(SCE_AHKL_DEFAULT); // Reset Status prevState = sc.state; bOnlySpaces = true; bIsValidLabel = true; bIsHotstring = false; bIsValidName = true; bIsValidExpStart = false; fInExpression = false; } ... 因此,每当我的程序在我正在编辑的编辑组件中找到一个新行时,您可以看到大多数这些变量都被重置… 问题是: 是否更好的编程实践声明并初始化for循环中的所有变量,或者我应该像现在这样离开它? 解决方法
您应该尽可能地减少变量的范围.这将提高代码的可维护性,并减少错误的可能性.
// bad int i,j,k; k = 0; for (i = 0; i < X,++i) { j = foo(i); k += j; } bar(k); ……对…… // better int k=0; // needs scope outside loop for (int i = 0; i < X,++i) { int j = foo(i); k += j; } bar(k); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |