A megjegyzések a számítógépes programozásban vannak, a forráskód részei, amelyeket a fordító vagy tolmács figyelmen kívül hagy , általában emberi olvasónak szánják, és nem a program végrehajtását akarják befolyásolni.
A megjegyzéseket leggyakrabban a kód magyarázatára használják; néhány eszköz, úgynevezett dokumentációs generátorok , lehetővé teszik a megjegyzésekben elérhető információk kinyerését a programdokumentáció automatikus létrehozásához .
Néha megjegyzést használunk egy kódrész rövid ideig tartó rövidzárlatára, de megadjuk a korlátozásokat vagy tulajdonságokat is, különös tekintettel az előfeltételekre, az utófeltételekre és az invariánsokra, amint az a szerződéses programozás során történik .
A megjegyzések és a kód többi részének megkülönböztetésének módjai a használt nyelvtől függően változnak. Három fő kategória létezik, mindegyik nyelv többféle megjegyzés-kategóriát is megvalósíthat:
A teljes sort tartalmazó megjegyzés azzal kezdődik, hogy egy jelölő meghirdeti a megjegyzések sorát (vagy ha nincs olyan kód, amely a kódsorot közli). A BASIC , a Fortran és a Cobol olyan nyelvek, amelyek beépített megjegyzéseket használnak. A kód természetesen folytatódik a következő sorban.
A sor végi megjegyzés egy jelölővel kezdődik, amely bejelenti a megjegyzés kezdetét, és automatikusan a sor végén fejeződik be, anélkül, hogy végjelzőre lenne szükség. A C ++ és a Java nyelv ilyen típusú megjegyzéseket használ.
A tömeges megjegyzés a megjegyzés kezdetét jelző markerrel kezdődik, és a végét jelző jelölővel végződik. Legfőbb előnyük, hogy több sort is megjegyezhetünk anélkül, hogy mindegyiket szerkesztenénk. A Pascal és a C nyelv ilyen típusú megjegyzéseket használ.
A Pythonnak önmagában nincs tömeges megjegyzése, de az önálló utasítást alkotó karakterláncok játszhatják ezt a szerepet, esetleg docstringként szolgálhatnak: vagy""" commentaire """''' commentaire '''
A fájlvégi megjegyzés azzal kezdődik, hogy egy jelölő kijelenti, hogy mindent, ami utána következik, a fájl végéig, megjegyzésnek kell tekinteni. Az ATS egy példa az ilyen típusú megjegyzéseket használó nyelvre.
Olyan eszközök, mint Doxygen , Javadoc vagy RDoc lehetővé teszik, hogy az észrevételek szerkesztéséhez mutassa be a kódot, és hozzon létre egy teljes dokumentációt. Ez leginkább egy programozónak szól, aki könyvtárral szeretne fejlődni, de nagyon is lehetséges ezt a módszert használni a végfelhasználó dokumentációinak megírásához.
/** * Registers the text to display in a tool tip. The text * displays when the cursor lingers over the component. * * @param text the string to display. If the text is null, * the tool tip is turned off for this component. */ public void setToolTipText(String text) {( a Sun Microsystems Javadoc dokumentációjának kivonata ; a megjegyzés a javadoc processzor számára érthető formátumban van)
A megjegyzéseket gyakran használják a kódrészek gyors elrejtésére a fordító vagy tolmács elől , például alternatív megvalósítások tesztelésére vagy a funkcionalitás ideiglenes letiltására.
Ezt a deaktiválást akkor lehet a legkönnyebben végrehajtani, ha a nyelv lehetővé teszi a blokkoló megjegyzéseket. Abban az esetben azonban, ha a rejtendő kódrész már tartalmaz megjegyzéseket, a nyelv szintaxisa nem mindig teszi lehetővé ezeknek a megjegyzéseknek a beágyazását. Néhány nyelv magasabb szintű megjegyzéseket nyújt ennek kompenzálására:
#if 0 code; //commentaire encore du code; /* commentaire */ #endifA hozzászóláshoz egyszerűen távolítsa el az 1. st * -t
(kivonat fork.ca Linux kernelfájlból )
/* * Check if we are over our maximum process limit, but be sure to * exclude root. This is needed to make it possible for login and * friends to set the per-user process limit to something lower * than the amount of processes root is running. -- Rik */ if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur && !capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE)) goto bad_fork_free;( perlbug.PLa standard Perl- eloszlásból származik )
# a strange way to check whether any significant editing # have been done: check whether any new non-empty lines # have been added. Yes, the below code ignores *any* space # in *any* line. while (<REP>) { s/\s+//g; $unseen++ if $_ ne '' and not exists $REP{$_}; }(a MediaWikiből , a Wikipedia által használt szoftverből származik)
/* * Scan forwards to find beginning of another run of changes. * Also keep track of the corresponding point in the other file. * * Throughout this code, $i and $j are adjusted together so that * the first $i elements of $changed and the first $j elements * of $other_changed both contain the same number of zeros * (unchanged lines). * Furthermore, $j is always kept so that $j == $other_len or * $other_changed[$j] == false. */ while ($j < $other_len && $other_changed[$j]) $j++;