Kuidas kontrollida nulli C -s: 7 sammu (piltidega)

Sisukord:

Kuidas kontrollida nulli C -s: 7 sammu (piltidega)
Kuidas kontrollida nulli C -s: 7 sammu (piltidega)

Video: Kuidas kontrollida nulli C -s: 7 sammu (piltidega)

Video: Kuidas kontrollida nulli C -s: 7 sammu (piltidega)
Video: Objekte & Personen entfernen | Photoshop Tutorial Deutsch 2024, Aprill
Anonim

C -s on NULL sümboolne konstant, mis osutab alati mälus olematule punktile. Kuigi paljud programmeerijad peavad seda võrdseks nulliga, võib see lihtsustada teid hiljem. Parim on kontrollida oma näpunäiteid otse NULL -i vastu ja kasutada 0 -d teistes kontekstides. See hoiab teie koodi puhtana ja kergesti arusaadavana, kuna teate, et töötate kursoritega iga kord, kui näete NULL -i.

Sammud

Osa 1: Nullkontrolli läbiviimine

Kontrollige nulli C etapis 1
Kontrollige nulli C etapis 1

Samm 1. Kasutage standardset nullkontrolli koodi

Järgmine on kõige ilmsem viis nullšeki kirjutamiseks. Me kasutame ptr selles artiklis kontrollitava kursori nimena.

  • kui (ptr == NULL)

    {

    // kood, kui osuti on NULL

    } muud {

    // kood, kui mitte NULL

    }

Kontrollige nullpunkti C etapis 2
Kontrollige nullpunkti C etapis 2

Samm 2. Kontrollige mis tahes väärtust peale NULL

Mõnikord on mugavam hoopis ebavõrdsust testida. Siin pole üllatusi:

  • kui (ptr! = NULL) {

    // kood, kui mitte NULL

    }

Kontrollige nullpunkti C etapis 3
Kontrollige nullpunkti C etapis 3

Samm 3. Vigade vältimiseks kirjutage kõigepealt NULL (valikuline)

PTR == NULL meetodi peamine puudus on võimalus, et sisestate kogemata ptr = NULL, määrates sellele kursorile väärtuse NULL. See võib põhjustada tõsist peavalu. Kuna (mitte) võrdsuse testimine käsitleb operande sümmeetriliselt, saate kirjutades täpselt sama tulemuse kui (NULL == ptr) selle asemel. See on kirjavigade suhtes vastupidavam, kuna juhuslik NULL = ptr tekitab lihtsa kompileerimisvea.

Mõne programmeerija jaoks tundub see pisut ebamugav, kuid see on täiesti kehtiv. Millist lähenemisviisi kasutate, sõltub ainult isiklikest eelistustest ja sellest, kui hea on teie kompilaator vea if (ptr = NULL) tuvastamisel

Kontrollige nulli C etapis 4
Kontrollige nulli C etapis 4

Samm 4. Kontrollige, kas muutuja on tõene

Lihtne kui (ptr) testib, kas ptr on tõene. See tagastab väärtuse VÄÄR, kui ptr on NULL või kui ptr on 0. Paljudel juhtudel pole sellel vahet, kuid pidage meeles, et need pole kõikides arhitektuurides identsed.

Selle vastupidi on kui (! ptr), mis tagastab tõese, kui ptr on VÄÄR.

Osa 2: Vigade vältimine

Kontrollige nullpunkti C etapis 5
Kontrollige nullpunkti C etapis 5

Samm 1. Enne NULL -i kontrollimist seadke kursor

Üks levinud viga on eeldada, et äsja loodud kursoril on NULL väärtus. See ei ole tõsi. Määramata kursor osutab endiselt mäluaadressile, mitte ainult teie määratud aadressile. See on tavaline tava, et äsja loodud või äsja vabastatud näpunäidete väärtuseks määratakse NULL, veendumaks, et te ei kasuta juhuslikult seda kasutut aadressi.

  • Vältige seda viga:

    char *ptr;

    kui (ptr == NULL)

    {

    // See tagastab vale. Kursorile on määratud kehtiv väärtus.

    }

  • Selle asemel kirjutage:

    char *ptr = NULL; // See määrab kursori väärtuseks NULL

    kui (ptr == NULL)

    {

    // See tagastab tõe, kui kursorit pole uuesti määratud.

    }

Kontrollige nulli C etapis 6
Kontrollige nulli C etapis 6

Samm 2. Pöörake tähelepanu funktsioonidele, mis võivad NULL -i taastada

Kui funktsioon saab NULL -i tagastada, mõelge, kas see on võimalus ja kas see võib teie koodis hiljem probleeme tekitada. Siin on näide nullkontrolli kasutavast malloc -funktsioonist (kui (ptr)), et see töötaks ainult kehtivate väärtustega näpunäiteid:

  • int * ptr = malloc (N * sizeof (int));

    kui (ptr) {

    int i;

    jaoks (i = 0; i <N; ++ i)

    ptr = i;

    }

Kontrollige nullpunkti C etapis 7
Kontrollige nullpunkti C etapis 7

Samm 3. Mõistke, et NULL on 0, kuid näpunäidetega töötades peaksite selguse huvides alati kasutama 0 asemel NULL -i

Ajalooliselt tähistas C NULL -i numbrina 0 (st 0x00). Tänapäeval võib see muutuda mõnevõrra keerukamaks ja varieeruda sõltuvalt opsüsteemist. Tavaliselt saate NULL -i kontrollida, kasutades ptr == 0, kuid on juhtumeid, kus see võib põhjustada probleeme. Võib -olla veelgi olulisem on see, et NULL -i kasutamine näitab, et töötate teiste teie koodi lugevate inimeste näpunäidetega.

Näpunäiteid

Saate seda registreerimist kasutada silmuste ajal nagu iga teinegi: samas (NULL == ptr) {

Soovitan: