1 637
pakeitimai
Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!
| 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 == | ||
pakeitimai