Endianness viittaa peräkkäiseen järjestykseen, jossa tavut järjestetään suuremmiksi numeerisiksi arvoiksi, kun ne tallennetaan muistiin tai lähetyksen aikana. Kaksi pääasiallista endianisuuden tyyppiä ovat big endian ja little endian. Big endian on pienimmän osoitteen merkittävin tavu ja little endian on pienimmän osoitteen vähiten merkitsevä tavu. C-ohjelmoinnissa endiannessilla on merkitystä, kun luet binääridataa suoraan ilman erotusoperaattoreita. Tutustu ratkaisuun ja yksityiskohtaiseen ammattimaiseen erittelyyn toimitetusta koodista tunnistaaksesi järjestelmän endianness. Lisäksi opit kirjastojen ja toimintojen merkityksen tämän näennäisen monimutkaisen ongelman ratkaisemisessa.
#include<stdio.h>
int main()
{
unsigned int i = 1;
char *c = (char*)&i;
if (*c)
printf("Little endian");
else
printf("Big endian");
return 0;
}
Koodin vaiheittainen selitys
Toimitettu koodinpätkä on kirjoitettu C-kielellä, yleiskäyttöisellä, proseduurilla ohjelmointikielellä, joka määrittää järjestelmän lopullisuuden.
Analysoidaan ensin #include
Näppäintoiminto ja muuttujat
Seuraavaksi päätoiminto ilmoitetaan. Tämä on minkä tahansa C-ohjelman aloituspiste. Tässä funktiossa etumerkitön kokonaisluku i ilmoitetaan ja alustetaan 1:ksi ja merkkiosoitin 'c' ilmoitetaan ja alustetaan i:n osoitteeseen.
Seuraava ehdollinen lause tarkistaa, onko 'c':n osoittaman charin ensimmäinen tavu 1 vai 0. Jos se on 1, järjestelmä on pieni endian, muuten se on iso endian.
Tämä ehdollinen tarkistus muodostaa ohjelman ytimen ja on logiikka, jota käytämme havaitaksemme järjestelmän endiannessa.
Printf-funktiota käytetään joko "Little endian" tai "Big endian" näyttämiseen ehdollisen tarkistuksen tuloksen perusteella. Se kuuluu stdio.h-kirjastoon ja sitä käytetään tulosteen muotoiluun.
Kirjastojen ymmärtäminen
Stdio.h on C-ohjelmoinnin vakiokirjasto, joka sisältää määritelmiä tyypeistä, makroista ja funktioista, kuten syöttö/tulostustoiminnot, tiedostojen käyttö, merkkijonojen käsittely jne. Sillä on tärkeä rooli tulosteen näyttämisessä näytölle.
Tietotyyppien ja osoittimien ymmärtäminen
C-ohjelmoinnissa osoittimet ovat muuttujia, jotka tallentavat muiden muuttujien osoitteet. Tässä 'char *c' on osoitin merkkiin.
Bittikohtaista operaattoria '&' käytetään 'i'n osoitteen saamiseen ja sen määrittämiseen c:lle. Tämän toiminnon tarkoituksena on saada kokonaislukumuuttujan 'i' tavutason esitys sen endianness tarkistamiseksi.
Yhteenvetona voidaan todeta, että järjestelmän endiaalisuuden havaitseminen on ratkaisevan tärkeää tietyissä matalan tason ohjelmointitehtävissä, ja tämä koodi tarjoaa yksinkertaisen menetelmän tarkistaa endiusaisuus C-ohjelmointikielellä. Lisäksi tässä koodikappaleessa käytettyjen kirjastojen, toimintojen, tietotyyppien ja osoittimien ymmärtäminen luo vahvan perustan matkallesi C-ohjelmointiin.