'h' soubory v C, k čemu slouží? Co je v nich? Jsou nutné?

Dobrý večer,

prosím vás, stále nechápu, k čemu slouží u programů, psaných v C, soubory s příponou .h?
Co je v nich zadefinováno? Jsou nutné?

Když si zkouším napsat nějaké jednoduché začátečnické programy typu blikající LED a pod., tak se mi žádné takové soubory nevytvářejí.

Kdo je tedy vytváří, kdy, proč a k čemu slouží?

Jako příklad uvádím obsah jednoho takového (Microchip, jeden z ukázkových programů pro PICDEM2 PLUS).

Díky!

Vl.

Příklad:

/**

  • @file Buttons.h
  • @brief This file contains the function prototypes for input
  •      switchs used to determine a single or multiple button push.
    
  • @defgroup Buttons Button Detection

*/

#ifndef _BUTTONS
#define _BUTTONS

typedef struct
{
unsigned char But1Pressed : 1;
unsigned char But2Pressed : 1;
unsigned char But3Pressed : 1;
unsigned char But4Pressed : 1;
unsigned char But5Pressed : 1;
unsigned char But6Pressed : 1;
unsigned char But7Pressed : 1;
unsigned char But8Pressed : 1;
} BUTMSK_T;

BUTMSK_T Buttons; // Buffer for up to 8 buttons

#define RA4_PRESSED() (Buttons.But1Pressed)
#define RB0_PRESSED() (Buttons.But2Pressed)
#define BOTH_PRESSED() ((Buttons.But1Pressed) && (Buttons.But2Pressed))
#define BUT_PRESSED() ((Buttons.But1Pressed) || (Buttons.But2Pressed) ||
(Buttons.But3Pressed) || (Buttons.But4Pressed) ||
(Buttons.But5Pressed) || (Buttons.But6Pressed) ||
(Buttons.But7Pressed) || (Buttons.But8Pressed))

#define SET_RA4() Buttons.But1Pressed = 1
#define RESET_RA4() Buttons.But1Pressed = 0
#define SET_RB0() Buttons.But2Pressed = 1
#define RESET_RB0() Buttons.But2Pressed = 0

/// @brief Index for multiple buttons or press states.
/* enum PressedButton
{ RA4_PRESSED =1 ,
RB0_PRESSED =2 ,
BOTH_PRESSED=3}; */

void CheckButtons(void); // Routine used to debounce and determine button press.
UINT8_T GetButtons(void); // Service routine returns which button has been pressed.
void ButtonsInit(void);

#endif

:arrow_right: administrator: přejmenováno z "“h” soubory v C"

builder.cz/art/cpp/prgmodul.html

Díky, Piityy …

Jak jsi to tak rychle našel? :slight_smile:)

Vl.

Celkom slusne je to popisane v Heroutovi I. diel. Teda, Herout: Ucebnica jazyka C, I.diel

je tam jedna kapitola venovana stabnej kulture.