torvalds sanoi kerran

Niin, se torvalds sanoi kerran että kun se koodaa C-kielellä, että se näkee kaiken assemblerina, ikään kuin vihreetä koodia vilisee mustassa ympäristössä?
Ilmianna
Jaa

5 Vastausta



Tavallaan totta. Jos ja kun tietää miten C-koodi kääntyy assembler koodiksi, niin ymmärtää mitä tekee.

i = 5;
while(i--) { printf("moi"); }

i = 6;
while(--i) { printf("moi"); }

Molemmat koodit printtaavat 5 kertaa moi sanan, mutta generoivat erilaista assembler-koodia, ja toinen noista on nopeampi assembler-tasolla vaikka C-koodina näyttävät samalta.
Kommentoi
Ilmianna
Jaa
1 VASTAUS:
Moderni C/C -kääntäjä kylläkin osaa optimoida koodia niin ettei nopeuseroa ole. Tilapäisarvon luomisen eliminoiminen post-increment/decrement -operaatioissa, jos mitään tarvetta ei ole, on nykykääntäjille peruskauraa.
Kommentoi
Ilmianna
Jaa
+Lisää kommentti
Joo, sen ominaisuuden saa pois päältä, kun ottaa täpän pois "Disassemble" kohdasta valikosta..
Ilmianna
Jaa
Niin mutta aika rikas pitää olla jo ennalta jotta on varaa itse tehdä omaa käyttöjärjestelmää käyttäen siihen aikaa.

Minä olen yrittänyt auttaa pienempiä neuvomalla C sekä assembly -juttuja, jotta saisivat ohjelmista tehokkaampia, koska ihmisten auttaminen tekee ainakin minut iloiseksi.

C/C ovat todella lähellä toisiaan Assemblyn kanssa muistin käsittelyssä... mutta ei noille kaikkia vaikeita viitsi neuvoakaan.
Ilmianna
Jaa
Tosiaan pitää olla jo valmiiksi miljonääri jos ajatteleekin oman käyttöjärjestelmän luomista.

Itse olen yrittänyt innostaa nuorisoa tekemään C/C :lla, koska se on todellakin lähellä assemblyä muistin käsittelyn suhteen, avaa paljon uusia mahdollisuuksia.

Ja muita mahdollisuuksia jos C:tä tietää, sitten.
Ilmianna
Jaa

Vastaa alkuperäiseen viestiin

torvalds sanoi kerran

Niin, se torvalds sanoi kerran että kun se koodaa C-kielellä, että se näkee kaiken assemblerina, ikään kuin vihreetä koodia vilisee mustassa ympäristössä?

5000 merkkiä jäljellä

Peruuta