#include w pliku.h

#include w pliku.h
J1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 30
0

Witam,
mam taki problem ( nie wiem czy to problem ), mam dwa pliki załóżmy że abc.c i abc.h, w pliku abc.c mam funkcje, których nagłówki są wklejone do abc.h np.:

w pliku abc.c:

uint8_t funkcja1 (uint8_t i){
if (i) return 0;
else return 1;
}

w pliku abc.h dodam:

int funkcja1(uint8_t i);

//nie wiem czy to będzie działać, ale mam nadzieje że idea przekazałem : )

chodzi o to że po dodaniu takiej linijki w pliku abc.h kompilator chce abym dodał bibliotekę gdzie znajduje się zmienna uint8_t, i nie wiem czy tak powinno być że na początku pliku abc.h będę miał include, czy nie powinno się tego używać i w jakiś inny sposób doprowadzić aby program się skompilował.

Z góry dziękuję za pomoc : D

Phestek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 89
0
Kopiuj
uint8_t funkcja1 (uint8_t i){
  if (i) return 0;
  else return 1;
}
Kopiuj
int funkcja1(uint8_t i);

Twoja deklaracja i implementacja to są dwie totalnie różne funkcje zwracające różne typy.

J1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 30
0

to był przykład i nie zauważyłem że dałem różne zmienne, dokładnie w kodzie wygląda to tak:

ssd1306.c

Kopiuj
void ssd1306_cmd(uint8_t cmd) {

	CS_HI;
	DC_LO;
	CS_LO;
	SPIwrite(cmd);
	CS_HI;

} 

i w pliku .h:

Kopiuj
 
void ssd1306_cmd(uint8_t cmd);	

jak nie dodam w pliku .h

Kopiuj
 #include <avr/io.h>

to wyrzuca błąd:

unknown type name 'uint8_t' ssd1306.h

jak dodam ten plik nagłówkowy to błąd znika, ale moje pytanie brmi czy dodawanie bibliotek do plików .h jest normą, czy się ego unika ?

mwl4
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 404
1

uint8_t jest zdefiniowane w <stdint.h>.

JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 40
1

Daj include <stdint.h> do nagłówka. Pamiętaj, że nagłówki muszą mieć include guardy:
https://en.wikipedia.org/wiki/Include_guard

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.