C kalba: Skirtumas tarp puslapio versijų

738 pridėti baitai ,  16 vasario
nėra keitimo aprašymo
 
8 eilutė: 8 eilutė:


Todėl pasiėmus C parašytą programą, visada galima ją nuosekliai išversti į [[asembleris|asemblerio]] tekstą, o paskui jau gautame asemblerio tekste turėti visiškai tiesioginį tos C programos ekvivalentą.
Todėl pasiėmus C parašytą programą, visada galima ją nuosekliai išversti į [[asembleris|asemblerio]] tekstą, o paskui jau gautame asemblerio tekste turėti visiškai tiesioginį tos C programos ekvivalentą.
Nepatyrusiems programuotojams atrodo, kad C kalba palaiko duomenų tipus, tačiau čia slypi žiauri klasta: realiai gi šita kalba tepalaiko tik tokius dalykus, kaip [[baitai]], iš jų sudaryti žodžiai (word) ar panašūs duomenys, ir rodyklės. Visa kita - tėra daugiau ar mažiau apgaulingos duomenų tipų simuliacijos, o pats [[kompiliatorius]] gali absoliučiai neskirti ir nesuprasti, kur kokių tipų duomenys yra. Ypač tai pasakytina apie klasikinį, tą gerąjį C kalbos variantą, kuris vadinamas '''Kernighan and Ritchie C''' arba tiesiog '''K&R C'''. Šitas pliusas leidžia dirbti su duomenimis kaip nori, tačiau duoda ir pasekmių.


Atitinkamai, tradiciniame C programavime galima daryti keistus dalykus, kurie atrodo ganėtinai nenormalūs. Pavyzdžiui, galima su kokiu nors [[Goto]] pereiti tiesiai į kokio nors ciklo ar funkcijos vidų. Arba galima apsibrėžti kintamąjį, kuris yra integeris, į jį įsimesti kokio nors masyvo adresą, o į tą masyvą prikaišioti pointerių į kokias nors funkcijas ir paskui kokiame nors cikle iškvietinėti kokią nors ''array[*point+x]()'' ar dar kokią nors didesnę nesąmonę.
Atitinkamai, tradiciniame C programavime galima daryti keistus dalykus, kurie atrodo ganėtinai nenormalūs. Pavyzdžiui, galima su kokiu nors [[Goto]] pereiti tiesiai į kokio nors ciklo ar funkcijos vidų. Arba galima apsibrėžti kintamąjį, kuris yra integeris, į jį įsimesti kokio nors masyvo adresą, o į tą masyvą prikaišioti pointerių į kokias nors funkcijas ir paskui kokiame nors cikle iškvietinėti kokią nors ''array[*point+x]()'' ar dar kokią nors didesnę nesąmonę.
50 eilutė: 52 eilutė:
  }
  }


Išbandykite, ir pažiūrėkite kas gausis. Išties tai gausis kompiliacijos erroras, nes surašyta tai čia klaidingai, bet linkim sėkmės išsiaiškinant.
Išbandykite, ir pažiūrėkite kas gausis. Išties tai gausis kompiliacijos erroras, nes surašyta tai čia klaidingai, bet linkim sėkmės išsiaiškinant, pataisant, o paskui prasitrinant sau iš disko visus duomenis su šita nesąmone.
 


== C kalbos programinės bibliotekos ==
== C kalbos programinės bibliotekos ==
1 637

pakeitimai