| 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 "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:
|









iruzkinik ez:
Argitaratu iruzkina