#include w pliku.h

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

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

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

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

void ssd1306_cmd(uint8_t cmd) {

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

} 

i w pliku .h:

 
void ssd1306_cmd(uint8_t cmd);	

jak nie dodam w pliku .h

 #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 ?

1

uint8_t jest zdefiniowane w <stdint.h>.

1

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1