Page
Stránky / Arduino / C++ pre Arduino / Učebnica C++ /
Keď napíšete program, obvykle pár dni rozumiete tomu, čo ste napísali. Po mesiaci sa k programu vrátite a nechápete, čo ste ktorým riadkom mysleli. Aby ste sa tomu chaosu vyhli a pomohli najmä sebe, používajte komentáre. To sú kúsky textu, ktoré kompilátor ignoruje, ale čitateľovi hovoria, na čo je ktorá časť programu určená.
Jazyk C++ používa dva typy komentárov:
Vybral som niečo z existujúceho projektu. Nie je podstatné, čo ten kód robí, zamerajte sa len na komentáre. Najprv dve lomítka.
///
/// Naklonuje kopiu povodnej tabulky
///
TADODataSet* Clone(TDataSet *src, bool clonedata, TADODataSetDef *def, int size)
{
TADODataSet *ads=new TADODataSet(0);
for(int i=0;i<src->FieldDefList->Count;i++)
{
TFieldDef *fd,*fds;
fds=src->FieldDefList->operator [](i);
fd=ads->FieldDefs->AddFieldDef();
fd->Assign(fds);
}
if(def) // pridam si nove fieldy
CreateFields(ads,def,size);
ads->CreateDataSet();
if(clonedata)
Copy(src,ads,0,true); // uplne vsetky polia aj riadky
return ads;
}
A ešte lomítko a hviezdička.
TADODataSet* CreateDataSet(TADODataSetDef *def, int size);
void CreateFields(TADODataSet *ads, TADODataSetDef *def, int size);
/*TFieldDef* CreateStringField(TADODataSet *ads, const AnsiString fieldname, int size);
TFieldDef* CreateMemoField(TADODataSet *ads, const AnsiString fieldname);
TFieldDef* CreateIntField(TADODataSet *ads, const AnsiString fieldname);
TFieldDef* CreateBoolField(TADODataSet *ads, const AnsiString fieldname);
TFieldDef* CreateFloatField(TADODataSet *ads, const AnsiString fieldname);
TFieldDef* CreateDateTimeField(TADODataSet *ads, const AnsiString fieldname);*/
int Copy(TDataSet *src, TDataSet *dst, int from=0, bool frombeg=true);
void CopyRowFields(TDataSet *src, TDataSet *dst, int from=0);
int UpdateRow(TDataSet *src, TDataSet *dst, int from=0);
Rozdiel je viditeľný na prvý pohľad. Kým dve lomky sa obvykle využijú na zapísanie nejakej poznámky, lomítko a hviezdička slúžia na vypoznámkovanie väčších blokov.
Nemá zmysel komentovať zjavné veci. Treba sa zamerať na dôležité miesta, kde sa deje niečo dôležitého. Napríklad v triedach je rozumné popísať každú internú premennú v hlavičkových súboroch a podľa uváženia aj dôležité funkcie. Ak sú funkcie dlhšie a dajú sa v nich vysledovať menšie logické celky, treba popísať aj tie.
Pri programovaní Arduina sa to môže zdať zbytočné, pretože píšete iba pár desiatok riadkov. Stále ale platí pravidlo, že po mesiaci aj tak nebude rozumieť vlastnému napísanému kódu a je úplne jedno, aký je ten kód dlhý.
04.07.2016