2025(e)ko martxoaren 28(a), ostirala

Liburutegiak

ZER DAKIDAN:
Orain arte, edozein proiekturen kode guztia main.c fitxategian kokatu dut. Baina baliteke proiektu baten kodea iturburu-fitxategi desberdinetan banatzea.



ZER IKASIKO DUDAN:
Orain ikasiko dut proiektu baten kodea bi fitxategietan idazten: fitxategi bat kanpoko liburutegia izango da eta bestea liburutegi horren bezero-programa.







Aurrekariak

Dakigunez programa exekutagarria eskuratzeko iturburu-programaren itzulketa bat burutu behar da, eta horretarako konpiladorearen eta estekatzailearen beharra daukagu. Biak jarraian lan egiten dutelako (lehenik konpiladorea eta ondoren estakatailea) guretzat prozesu bakarra bezala agertzen zaigu. Eskematikoki:

Adibide honetan aritm.h kanpoko liburutegi bat sortuko dugu eta bezero-programak liburutegi horren erabilpena egingo du. Adibide honek kopuru osoak landuko ditu, oinarrizko eragiketa aritmetikoak burutuz. Baina main.c bezero-programatik hasiko gara, honek main() funtzio nagusia barneratzen du.



Programa bat idatziko dugu aritm.h liburutegia erabiliko duena, proiektu honi LiburutegiAdibidea.cbp deituko diogu eta bere funtzio nagusia main() izango da, ikusi Code::Blocks ingurunean main() funtzioa:


Ikusten denez, bezero-programa deitzen den main.c programaren main() funtzio nagusian fitxategi baten sartzea egiten da #include "aritm.h" konpilazio-jarraibideren bitartez. Ondorioz, aritm.h liburutegian garatu diren funtzioak edo definitu diren konstanteak libreki erabil ditzake main.c bezero-programak.

Hauxe da main() funtzio nagusiaren kodea, non ZatiduraEtaHondarra() funtzioa, Batu() funtzioa eta Kendu() funtzioa erabiltzen diren, nahiz eta haien kodea main() funtzio nagusian ez dauden:

/* LiburutegiAdibide.cbp proiektua*/

#include <stdio.h>   // liburutegi estandarra
#include "aritm.h"   // kanpoko liburutegia sartzeko

int main()
{
    int iEragigai1, iEragigai2, iBatura, iKendura, iZatidura, iHondarra;

    printf("\n\n");
    printf("%30s", "Lehen eragigaia eman: ");
    scanf("%d", &iEragigai1);

    do
    {
        printf("%30s", "Bigarren eragigaia eman: ");
        scanf("%d", &iEragigai2);
        if (iEragigai2 == 0)
        {
            printf("%30s\n", "Datua ezin daiteke 0 izan");
        }
    } while (iEragigai2 == 0);

    // Aritmetika funtzioak erabiltzen dira
    iBatura = Batu(iEragigai1, iEragigai2);      // "aritm.h" liburutegian garatuta
    iKendura = Kendu(iEragigai1, iEragigai2);    // "aritm.h" liburutegian garatuta
    ZatiduraEtaHondarra(iEragigai1, iEragigai2,
                        &iZatidura, &iHondarra); // "aritm.h" liburutegian garatuta

    printf("\n");
    printf("%15d + %d = %d\n", iEragigai1, iEragigai2, iBatura);
    printf("%15d - %d = %d\n", iEragigai1, iEragigai2, iKendura);
    printf("%15d / %d = %d\n", iEragigai1, iEragigai2, iZatidura);
    printf("%15d %% %d = %d\n", iEragigai1, iEragigai2, iHondarra);

    printf("\n\n");
    return 0;
}

Baina ikas dezagun #include konpilazio-direktibak edo jarraibideak behar duen sintaxia:  

                #include "aritm.h"
#include aurre-prozesadorearen jarraibideari fitxategia sartzea esaten zaio eta, dakigunez, bere sintaxia #include <FitxategiIzen> da, edo bestela beste sintaxi hau onargarria da ere #include "FitxategiIzen". Sintaxi bien arteko aldea honela adierazten da:
  • #include <FitxategiIzen> erabiltzean, sartu beharreko FitxategiIzen izeneko fitxategia konpiladoreak duen karpeta batean hasiko da bilatzen
  • #include "FitxategiIzen" erabiltzean, sartu beharreko FitxategiIzen izeneko fitxategia proiektuaren karpetan hasiko da bilatzen


#include "aritm.h" liburutegia honelaxe gehitzen da proiektura. zalpenak bost urrats ditu:  

1/5

Programazio-inguruneko menuan  File > New > File...  aukera hautatu ondoren C header fitxategi-mota aukeratu

2/5

Jarraian, liburutegiaren izena eta bidea zehaztuko dira

3/5

Hurrengo leiho honen bitartez liburutegia gehituko zaio proiektuari, proiektuari dagokion bidea zehaztu

4/5

Proiektuaren Headers karpetan egongo da liburutegia, konpilazio baldintzatuaren jarraibieak kendu

5/5

Liburutegiaren kodea idatzi, bertako funtzioak eta konstanteak eskuragarri dira bezero-programarentzat

Azken urratsa liburutegiaren kodea idaztea da. Dagokigun aritm.h liburutegiaren iturburu-kodea hauxe da, non ZatiduraEtaHondarra() funtzioa, Batu() funtzioa eta Kendu() funtzioa programatu diren, eta main() funtzio nagusiak erabil ditzakeen:  

/* "aritm.h" liburutegiaren kodea */

void ZatiduraEtaHondarra(int iZbk1,
                         int iZbk2,
                         int *iZati, // irteera
                         int *iHond) // irteera
{
    *iZati = iZbk1 / iZbk2;
    *iHond = iZbk1 % iZbk2;
}

int Batu(int iZbk1, int iZbk2)
{
    return iZbk1 + iZbk2;
}

int Kendu(int iZbk1, int iZbk2)
{
    return iZbk1 - iZbk2;
}


LiburutegiAdibidea.cbp proiektua konpilatzean, main.c bezero-programaren iturburu-kodea eta aritm.h liburutegiaren iturburu-kodea konpilatzen dira, haien objektu-programak estekatu egiten dira LiburutegiAdibidea.exe programa exekutagarria eskuratzeko.

Konpilatu/Estekatu ekintzen eskema:







  • LiburutegiAdibidea.cbp | main.c                [bezero-programa]
  • LiburutegiAdibidea.cbp | aritm.h               [kanpoko liburutegia]


 

iruzkinik ez:

Argitaratu iruzkina