Dzisiaj jest 11 lutego 2025 r.
Chcę dodać własny artykuł
Reklama

Plik nagłówkowy

Chcę dodać własny artykuł

Pliki nagłówkowe w C i C++

W języku C oraz jego pochodnych, takich jak C++, pliki nagłówkowe mają rozszerzenie „h” (w C++ często używane jest „hpp”). Zawierają one opisy interfejsów modułów, w tym deklaracje zmiennych, funkcji, klas i innych struktur danych. Ich głównym celem jest uniknięcie potrzeby rekompilacji wszystkich odwołujących się modułów przy każdej zmianie w implementacji jednego z nich. W nowszych językach, takich jak Java czy C#, pliki nagłówkowe nie są już wymagane.

Podczas kompilacji, preprocesor wstawia zawartość tych plików w miejsce instrukcji #include. Dołączenie pliku nagłówkowego z lokalnego katalogu odbywa się za pomocą podwójnych cudzysłowów, natomiast nazwy w ostrych nawiasach wskazują na standardowe pliki nagłówkowe kompilatora.

Zawartość plików nagłówkowych

Pliki nagłówkowe powinny zawierać:

  • definicje typów (klas)
  • deklaracje globalnych i statycznych zmiennych
  • definicje stałych
  • deklaracje funkcji (metod)
  • definicje funkcji inline

Definicje funkcji powinny być umieszczone w pliku o tej samej nazwie, ale z rozszerzeniem „c” lub „cpp”.

Przykład użycia pliku nagłówkowego

Przykładowe pliki:

#ifndef _RNM_HPP
#define _RNM_HPP
float Suma(float, float);
float Roznica(float, float);
#endif

Plik źródłowy:

float Suma(float x, float y) {
    return (x + y);
}
float Roznica(float x, float y) {
    return (x - y);
}

Plik główny programu:

#include "rnm.hpp"
#include 
using namespace std;

int main() {
    float a, b;
    cin >> a;
    cin >> b;
    cout << a << " + " << b << " = " << Suma(a, b) << endl;
    cout << a << " - " << b << " = " << Roznica(a, b) << endl;
    return 0;
}

Zapobieganie wielokrotnemu dołączaniu plików

Do zapobiegania wielokrotnemu dołączaniu plików używa się dyrektyw preprocesora:

#ifndef _RNM_HPP
#define _RNM_HPP
...
#endif

Alternatywnie, niektóre kompilatory, takie jak Microsoft Visual C++, umożliwiają użycie #pragma once, jednak ta instrukcja nie jest częścią standardu ISO C++.

Pliki nagłówkowe C w C++

W C++ standardowe pliki nagłówkowe z C mogą być dołączane na dwa sposoby:

#include 
#include "cNAZWAPLIKU"

Na przykład, w C używa się #include , a w C++ #include .