Ïåðåìåííûå æåëaòåëüíî èíèöèaëèçèðîâaòü ïðè èõ îáúяâëåíèè, a îáúяâëяòü êaê ìîæíî áëèæå ê ìåñòó èõ íåïîñðåäñòâåííîãî èñïîëüçîâaíèя. C äðóãîé ñòîðîíû, óäîáíî âñå îáúяâëåíèя ëîêaëüíûõ ïåðåìåííûõ ôóíêöèè ðañïîëaãaòü â ía÷aëå áëîêa òaê, ÷òîáû èõ áûëî ïðîñòî íaéòè. Ïðè íåáîëüøèõ ðaçìåðaõ ôóíêöèé îáa ýòè ïîæåëaíèя äîñòaòî÷íî ëåãêî ñîâìåñòèòü.
Ëînaëüíûå ïåðåìåííûå ïðåäïî÷òèòåëüíåå ãëîáaëüíûõ. Åñëè ãëîáaëüíaя ïåðåìåí- íaя âñå æå íåîáõîäèìa, ëó÷øå îáúяâèòü åå ñòaòè÷åñêîé, ÷òî îãðaíè÷èò îáëañòü åå äåéñòâèя îäíèì èñõîäíûì ôaéëîì.
Âñþ íåîáõîäèìóþ ôóínöèè èíôîðìaöèþ íóæíî ñòðåìèòüñя ïåðåäaâaòü åñ â na÷å- ñòâå ïaðaìåòðîâ, a íå ÷åðåç ãëîáaëüíûå ïåðåìåííûå, èçìåíåíèå êîòîðûõ òðóäíî îòñëåäèòü.
Âõîäíûå ïaðaìåòðû ôóínöèè, êîòîðûå íå äîëæíû â íåé èçìåíяòüñя, ñëåäóåò ïåðåäaâaòü nan nîíñòaíòíûå ññûënè, a íå ïî çía÷åíèþ. Êðîìå óëó÷øåíèя ÷èòaå- ìîñòè ïðîãðaììû è óìåíüøåíèя âîçìîæíîñòè ñëó÷aéíûõ îøèáîê, ýòîò ñïîñîá ãîðaçäî áîëåå ýôôåêòèâåí, îñîáåííî â ñëó÷aå ïåðåäa÷è ñëîæíûõ îáúåêòîâ. Èñ- êëþ÷åíèå ñîñòaâëяþò ïaðaìåòðû, ðaçìåð êîòîðûõ ìåíüøå ðaçìåða óêaçaòåëя — èõ ýôôåêòèâíåå ïåðåäaâaòü ïî çía÷åíèþ (íå çaáûâaя óêaçûâaòü COnst).
Âûõîäíûå ïaðaìåòðû ôóínöèè ïðåäïî÷òèòåëüíåå ïåðåäaâaòü ïî aäðåñó, a íå ïî ññûëêå, ÷òîáû èç ñåìaíòèêè âûçîâa ôóíêöèè ìîæíî áûëî ïîíяòü, ÷òî âíóòðè íåå ïaðaìåòð èçìåíяåòñя.
Íåëüçя âîçâðaùaòü èç ôóínöèè ññûënó ía ëînaëüíóþ ïåðåìåííóþ, ïîòîìó ÷òî îía aâòîìaòè÷åñêè óíè÷òîæaåòñя ïðè âûõîäå èç ôóíêöèè, êîòîðaя яâëяåòñя åå îáëa- ñòüþ äåéñòâèя. Íå ðåêîìåíäóåòñя âîçâðaùaòü ññûëêó ía ïåðåìåííóþ, ñîçäaííóþ âíóòðè ôóíêöèè â äèíaìè÷åñêîé îáëañòè ïaìяòè ñ ïîìîùüþ ôóíêöèè mallOC èëè îïåðaöèè new, òaê êaê ýòî ïðèâîäèò ê òðóäíî êîíòðîëèðóåìûì óòå÷êaì ïaìяòè.
Cëåäóåò èçáåãaòü èñïîëüçîâaíèя â ïðîãðaììå ÷èñåë â яâíîì âèäå. Êîíñòaíòû äîëæíû èìåòü îñìûñëåííûå èìåía, çaäaííûå ÷åðåç COnst èëè enum (ïîñëåäíåå ïðåäïî÷òèòåëüíåå, òaê êaê ïaìяòü ïîä ïåðå÷èñëåíèå íå âûäåëяåòñя). Cèìâîëè÷å- ñêîå èìя äåëaåò ïðîãðaììó áîëåå ïîíяòíîé, a êðîìå òîãî, ïðè íåîáõîäèìîñòè èç- ìåíèòü çía÷åíèå êîíñòaíòû ýòî ìîæíî ñäåëaòü âñåãî ëèøü â îäíîì ìåñòå ïðî- ãðaììû.
Äëя çaïèñè êaæäîãî ôðaãìåíòa aëãîðèòìa íåîáõîäèìî èñïîëüçîâaòü íaèáîëåå ïîäõîäяùèå ñðåäñòâa яçûna. Ëþáîé öèêë ìîæíî, â ïðèíöèïå, ðåaëèçîâaòü ñ ïî- ìîùüþ îïåðaòîðîâ gOtO è if, íî ýòî áûëî áû íåëåïî, ïîñêîëüêó ñ ïîìîùüþ îïå- ðaòîðîâ öèêëa òå æå äåéñòâèя ëåã÷å ÷èòaþòñя, a êîìïèëяòîð ãåíåðèðóåò áîëåå ýôôåêòèâíûé êîä. Âåòâëåíèå ía íåñêîëüêî íaïðaâëåíèé ïðåäïî÷òèòåëüíåå ðåa- ëèçîâûâaòü ñ ïîìîùüþ îïåðaòîða switCh, a íå íåñêîëüêèõ if, êðañèâûé ñïîñîá ïå- ðåäa÷è óïðaâëåíèя îäíîé ôóíêöèè èç ãðóïïû — ìaññèâ óêaçaòåëåé ía ôóíêöèè.
Ñëåäóåò èçáåãaòü ëèøíèõ ïðîâåðîn óñëîâèñ. Íaïðèìåð, âìåñòî îïåðaòîðîâ
if (strstr(a, b) > 0 ) { … } else if (strstr(a, b)<0){…} else if (strstr(a, b) == 0){…}
ëó÷øå íaïèñaòü
int is_equal = strstr(a, b); if (is_equal > 0){…} else if (is_equal < 0){…}
else { … } // çäåñü is_equal == 0
Åñëè ïåðâaя âåòâü îïåðaòîða if ñîäåðæèò ïåðåäa÷ó óïðaâëåíèя, èñïîëüçîâaòü
else íåò íåîáõîäèìîñòè:
if (is_equal > 0) { … break;} if (is_equal < 0) { … return;}
{ … } // çäåñü is_equal == 0
Áåññìûñëåííî èñïîëüçîâaòü ïðîâåðnó ía íåðaâåíñòâî íóëþ (èëè, ÷òî åùå õóæå, ía ðaâåíñòâî true èëè false):
bOOl is_busy;
…
if (is_busy == true){…} // ïëîõî! Ëó÷øå if (is_busy) if (is_busy == false){…} // ïëîõî! Ëó÷øå if (!is_busy) Char s[80];
while (fgets(s) != NULL){…} // ïëîõî! Ëó÷øå while (fgets(s)) while(a == 0){…} // ìîzíî while(!a)
Åñëè îäía èç âåòâåé óñëîâíîãî îïåðaòîða ãîðaçäî êîðî÷å, ÷åì äðóãaя, áîëåå nî- ðîònóþ âåòâü if ëó÷øå ïîìåñòèòü ñâåðõó, èía÷å âñя óïðaâëяþùaя ñòðóêòóða ìî- æåò íå ïîìåñòèòüñя ía ýêðaíå, ÷òî çaòðóäíèò îòëaäêó.
 íåêîòîðûõ ñëó÷aяõ óñëîâíaя îïåðaöèя ëó÷øå óñëîâíîãî îïåðaòîða:
if (z)i= j; elsei= k; // ëó÷øå òaê:i=z?j: k;
Do'stlaringiz bilan baham: |