Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

struktura kao argument funkcije

[es] :: C/C++ programiranje :: struktura kao argument funkcije

[ Pregleda: 2371 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

damir0205

Član broj: 22726
Poruke: 107
*.adsl.net.t-com.hr.



Profil

icon struktura kao argument funkcije21.01.2009. u 18:58 - pre 184 meseci
Da li mi netko moze reci kako da deklariram navedenu funkciju u .h datoteci, ako se definicija strukture "struct _PROGRAM {....}" nalazi u nekoj drugoj izvornoj datoteci koju ne mogu ukljuciti sa #include "...", odnosno kako da definiram strukturu u datoteci u kojoj mi se nalazi deklaracija funkcije.

float *RealTimeProgramator ( char Hour, char Min, char Sec, char HSec, char Weekday, char Month, char MonthDay, int Year, struct _PROGRAM *EEProg, char *DatePeriod );
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
78.90.101.*

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: struktura kao argument funkcije21.01.2009. u 21:17 - pre 184 meseci
Možeš da izvučeš tu strukturu kao definiciju u neki *.h fajl.

Code:
// def.h
typedef struct _PROGRAM {
  // ...
}_PROGRAM;

Pa onda učitavaš to zaglavlje (*.h fajl) gde god ga koristiš. Čak i da definišeš samo jedan objekat tog tipa u nekom fajlu, potrebno je da u drugima nekako proslediš deklaraciju (tj. sam tip) kako bi taj objekat udobno koristio. Inače, i to možeš da zaobiđeš, tako što ćeš napraviti void* pokazivač na taj objekat tamo gde jeste, pa se onda svuda gde treba deklarisati external void* imePokazivaca, i igrati se poznavanja strukture tvog objekta da bi od tog pokazivača koristio šta ti treba. (jer i dalje nemaš tip)

Code:
// a.c
struct _PROGRAM {
  // ...
}myProgram;

void* pMyProgram = (void*) &myProgram;
Code:
// b.c
extern void* pMyProgram; // uzivaj, sad ovaj pokazivac imas i ovde

Dakle, najudobnije je da uradiš kako na početku piše.
Ipak se ++uje.
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



+7 Profil

icon Re: struktura kao argument funkcije23.01.2009. u 23:38 - pre 184 meseci
Ako ne mozes u include jel mozes u source fajl?
npr.
Code:

//structheader.h
typedef struct
{
    int a;
    char* b;
}_PROGRAM,*_LPPROGRAM;

Code:

//fn.h
float *RealTimeProgramator ( char Hour, char Min, char Sec,/*...*/void *EEProg, char *DatePeriod );

Code:

#include <stdio.h>

#include "fn.h"
#include "structheader.h"

//main c
float *RealTimeProgramator ( char Hour, char Min, char Sec,/*...*/void *EEProg, char *DatePeriod )
{
    _LPPROGRAM lpp = (_LPPROGRAM)EEProg;
    if(lpp)
    {
        printf("%d\n",lpp->a);
        printf(lpp->b);
    }

    // ili bez definicije strukture
    int a = *(int*)EEProg;
    char* b = (char*)EEProg + sizeof(int);
    printf("\n%d\n",a);
    printf(lpp->b);

    return 0;
}

int main()
{
    _LPPROGRAM lpp = (_LPPROGRAM) malloc(sizeof(_PROGRAM));
    if(lpp)
    {
        lpp->a = 4;
        lpp->b = malloc(10 * sizeof(char));
        if(lpp->b)
        {
            strcpy(lpp->b,"tekst");
            RealTimeProgramator(0,0,0,lpp,0);
        }
    }
    free(lpp->b);
    free(lpp);
    return 0;
}

 
Odgovor na temu

[es] :: C/C++ programiranje :: struktura kao argument funkcije

[ Pregleda: 2371 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.