Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Podział projektu na pliki nagłówkowe i źródłowe w C

Ostatnio zmodyfikowano 2018-06-18 21:38
Autor Wiadomość
paula1902
Temat założony przez niniejszego użytkownika
Podział projektu na pliki nagłówkowe i źródłowe w C
» 2018-06-18 19:34:09
Witam.
Mam problem z podziałem projektu na pliki. W plik.h umieszczam
C/C++
#ifndef PLIK_H_  //próbowałam też na #pragmaonce

#define PLIK_H_

// deklaracje wybranych funkcji: np
//void modZesp(cmplx a);

#endif

a w plik.c
C/C++
#include "plikZeStrukturamiIDefinicjami.h"
#include "plik.h"

//definicje funckji

i wywala mi dziwne błędy, bo o interpunkcję:

w miejscu deklaracji funkcji
C2059 syntac error: ';'
C2059 syntax error: ')'

Dodatkowo, jeśli w któryś funkcjach mam funkcję, która korzysta z np Flag z SDL2, muszę dodatkowo w każdym includować <SDL.h>?
Mam coś takiego:
C/C++
#ifndef USER_H_
#define USER_H_

void user_inter( SDL_Event event, VIEW * view, SDL_Renderer ** renderer );
#endif
I wywala błąd:
C2061 syntac error: identifier 'event'

Szukałam czegoś w google'ach o podziale na pliki, ale nigdzie nie było dodatkowych struktur ani bibliotek
P-171607
maly7
» 2018-06-18 20:02:59
Pokaż te przykładowe "//definicje funckji" jakie zamieszczasz w pliku c.
Jeśli używasz czegoś z jakiejś biblioteki to oczywiście musisz dołączyć (#include) tę bibliotekę.

Dodatkowo jak w pliku plik.h zaincludujesz np. SDL.h to w pliku plik.c includując plik.h nie musisz już SDL.h
P-171608
paula1902
Temat założony przez niniejszego użytkownika
» 2018-06-18 20:14:14
user.h
C/C++
#ifndef USER_H_

#define USER_H_

void user_inter( SDL_Event event, VIEW * view, SDL_Renderer ** renderer );
#endif

user.c
C/C++
#include "def.h"
#include "user.h"
#include <SDL.h>



void user_inter( SDL_Event event, VIEW * view, SDL_Renderer ** renderer ) {
    while( SDL_WaitEvent( & event ) ) {
        do {
            if( event.type == SDL_QUIT )
            {
                return 0;
            }
            else if( event.type == SDL_KEYDOWN ) {
                switch( event.key.keysym.sym ) {
                   
                case SDLK_UP: {
                        tak mam obs ł ug ę kilku klawiszy
                    }
                    break;
                   
                }
            }
        } while( SDL_PollEvent( & event ) );
       
    }
}

Czyli pózniej np. w mainie includując "user.h" i tak trzeba zaincludować <SDL.h>, bo było to zrobione w user.c? Tak?
P-171610
paula1902
Temat założony przez niniejszego użytkownika
» 2018-06-18 21:38:19
Już znalazłam błąd. Najwidoczniej nazwa user była niedozwolona, bo po zmianie na user_inter wszystko ładnie się skompilowało ;)
P-171617
« 1 »
  Strona 1 z 1