UNREFERENCED_PARAMETERi roll

Role Unreferenced_parameter



Lihtsalt liitusin tööga, vaadake üksuse koodi, ehkki see on kirjutatud C-keeles, kuid erinevad makrodefinitsioonid, erinevad #define ja #typedef, vaadake koodi, et näha, kas ma elus kahtlen. Üks levinumaid makrodefinitsioone koodis on UNREFERENCED_PARAMETER. Mida see makrodefinitsioon siis tähendab? Kuidas seda kasutatakse?

UNREFERENCED_PARAMETER on päisefailis winnt.h määratletud makro:



#define UNREFERENCED_PARAMETER(P) (P)

Pärige MSDN-i dokumentatsiooni, näete



UNREFERENCED_PARAMETER laieneb parameetri või avaldise juurde. Selle eesmärk on vältimaks kompilaatori hoiatusi viitamata parameetrite kohta. Paljudele programmeerijatele, sealhulgas ka teie, meeldib koostadakõrgeim hoiatustase, tase 4 (/ W4).4. taseme hoiatused kuuluvad kategooriasse „asjad, mida võib ohutult eirata”. Väikesed rikkumised, mis ei riku teie koodi, ehkki need võivad teid halvasti vaadata.



Teisisõnu on selle makrodefinitsiooni eesmärk vältida kompilaatori hoiatamist muutujate poolt deklareeritud muutujate eest, mida pole 4. taseme kõrgeima hoiatustaseme koostamistingimustes kunagi kasutatud - 'Funktsiooni kehas pole ametlikule parameetrile viidatud . ' nagu näiteks:

// C4100.cpp // compile with: /W4 void func(int i) { // C4100, delete the unreferenced parameter to //resolve the warning // i // or, add a reference like this } int main() { func(1) }

Ülaltoodud koodis pole funktsiooni func ametlikku parameetrit funktsiooni kehas kunagi kasutatud, seega genereeritakse hoiatus 4. taseme kompileerimise all. Sel ajal on palju lahendusi, kas kasutage seda muutujat funktsiooni kehas või kogu funktsiooni pole vaja parameetrida (see peaks olema väga haruldane), on võimalus lisada järgmine kood funktsiooni keha:

UNREFERENCED_PARAMETER(i)

Seda teeb makro definitsioon UNREFERENCED_PARAMETER.