Eli tulipa tässä ongelma eteeni kun rallipeliä olen tekemässä. Nyt olen tehnyt sen kirjoitusfunktion, joka piirtää näytölle parametrina annetun merkkitaulukon. Kirjoitusfunktio on eri lähdekoodissa kuin itse rallipeli, ja nyt haluaisin yhdistää ne niin, että kummankin funktioita, yms. voisi käyttää kummastakin lähdekoodista. Olen kuullut linkittämisestä, mutta miten se tapahtuu? Entäs mikä on Dev-cpp:n add to project toiminto? Kokeilin sillä ja projektiini ilmestyi kummatkin sorsat yhtäaikaa. Tällä toiminnolla ei kuitenkaan onnistunut yhteisten muuttujien käyttö. Kielenä on siis c++.
Kaikki lähdekooditiedostot pitää lisätä projektiin. Tämän lisäksi on tehtävä erillinen otsikkotiedosto, jossa esittelet funktiot.
Tässä esimerkki jossa main.cpp.ssä on pääohjelma ja se käyttää funktiot.cpp:ssä olevaa funktiota:
// main.cpp #include "funktio.h" int main() { int n=34; Foo(n); return 0; }
// funktio.h void Foo(int &luku);
//funktio.cpp #include "funktio.h" void Foo(int &luku) { luku++; }
Projektissa pitäisi siis olla molemmat cpp-tiedostot.
#include on kiva :)
Esimerkkiä:
// Headerit.h int muuttuja; //määritellään muuttujä
// Ohjelma.cpp #include "Headerit.h" //Jos käytetään "-merkkejä kääntäjä hakee sisällytettävää tiedostoa samasta hakemistosta kuin Ohjelma.cpp on. int main() { muuttuja = 8; //annetaan arvo return 0; }
EDIT: Olinpa hidas.
Tuli virhe, että: "no newline at end of line"
Mitä se tarkoittaa?
Ja koodi on tässä:
void draw(); void write(int, int); void askwrite(char[], int[], int);
ristokor kirjoitti:
Tuli virhe, että: "no newline at end of line"
Tuo ei ole errori, vaan warningi josta ei NIIN kauheasti tarvi välittää sillä ohjelma kuitenkin toimii. Voin (vapaasti) suomentaa tuon puolestasi. :P
"Ei uutta riviä viimeisen rivin jälkeen." Eli tuo korjaantuu kun painat viimeisen rivin lopussa enter.
ristokor kirjoitti:
Tuli virhe
Varoitus
ristokor kirjoitti:
"no newline at end of line"
Iske yks entteri viimisen rivin päätteeksi.
Korjaus Heikin esimerkkiin: otsikkotiedostossa olevan määrittelyn alussa pitää olla extern. Yllättäen joku muukin on törmännyt samaan ongelmaan, https://www.ohjelmointiputka.net/keskustelu/
rndprogy kirjoitti:
Tuo ei ole errori, vaan warningi josta ei NIIN kauheasti tarvi välittää sillä ohjelma kuitenkin toimii. Voin (vapaasti) suomentaa tuon puolestasi. :P
"Ei uutta riviä viimeisen rivin jälkeen." Eli tuo korjaantuu kun painat viimeisen rivin lopussa enter.
Sen sijaan että opettelee olemaan välittämättä kääntäjän varoituksista kannattaa opetella korjaamaan koodi niin, että varoituksia ei tule.
Aihe on jo aika vanha, joten et voi enää vastata siihen.