claudio Postat Martie 17, 2011 Partajează Postat Martie 17, 2011 Salut, Nu reusec sa apelez o functie (scrisa in main.c) dintr-un alt fisier. La compilare primesc warning-ul: "implicit declaration of function 'Functie1' main.c #include functii.hvoid Functie1(int var1);int main(void){ //...}void Functie1(int var1){ //...} functii.h void AltaFunctie(int var2); functii.c #include "functii.h"void AltaFunctie(int var2){ Functie1(var2); //-> warning!!!} Pentru editare/compilare folosesc AVRStudio4, fisierele sunt adaugate la SourceFiles & HeaderFiles. Link spre comentariu
godFather89 Postat Martie 17, 2011 Partajează Postat Martie 17, 2011 Defineste si un main.h in care bagi #ifndef __MAIN_H__#define __MAIN_H__void Functie1(int var1);#endif pe care apoi il incluzi in functii.c #include "main.h" Evident, poti declara prototipul si in functii.h sau chiar direct in functii.c, insa e recomandat ca fiecare c sa aiba h-ul lui. Ajuta mult la lizibilitatea si intretinerea codului. Link spre comentariu
claudio Postat Martie 17, 2011 Autor Partajează Postat Martie 17, 2011 A mers varianta cu declarare in main.h.Mersi.Alta problema am acum la declararea variabilelor.Sunt 2 variabile care sunt folosite si in main.c si in functii.c. Cum trebuie procedat? Link spre comentariu
godFather89 Postat Martie 17, 2011 Partajează Postat Martie 17, 2011 le declari intr-un c iar in celelalte fisiere in care le accesezi le declari la fel doar cu un extern in fata. main.c int valoare; fisier.c extern int valoare; sau la fel poti declara in main.h extern int valoare;dupa care variabila va fi accesibila in orice fisier in care este inclus headerul main.h Link spre comentariu
claudio Postat Martie 18, 2011 Autor Partajează Postat Martie 18, 2011 prefer sa le scriu in main.c; din ce am citit pe net zicea ca nu e recomandat sa definesti variabile in headerele fisierelor .care vreo legatura ca in main le definesc "extern int" iar in fisierele secundare doar "int", deoarece mi se pare mai usor de urmarit, tinand cont ca sunt definite in main, astfel stiu care sunt externe si care nu. Link spre comentariu
godFather89 Postat Martie 18, 2011 Partajează Postat Martie 18, 2011 Definirea efectiva este cea normala. Ea se face in fisierele c. Definirea cu extern in fata, specifica compilatorului ca variabila aceea nu este definita in fisierul curent, ci in altul, urmand sa fie rezolvata adresa ei in etapa urmatoare (linking). Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum