Nagłówek prefiksu
W programowaniu komputerowym nagłówek prefiksu to funkcja występująca w niektórych kompilatorach C lub C++ , która zapewnia wstawienie określonego fragmentu kodu na początku każdego pliku.
Przegląd
W językach programowania C i C++ plik nagłówkowy to plik , którego tekst jest dołączany przez kompilator do innego pliku źródłowego , zwykle za pomocą dyrektyw kompilatora na początku pliku źródłowego. Nagłówek prefiksu różni się od normalnego pliku nagłówkowego tym, że jest automatycznie dołączany na początku każdego pliku źródłowego przez kompilator, bez użycia jakichkolwiek dyrektyw kompilatora.
Nagłówki prefiksów są zwykle wstępnie kompilowane w celu skrócenia czasu kompilacji. Użycie nagłówków prefiksów poza tym celem może utrudnić utrzymanie kodu i zmniejszyć jego przydatność do ponownego użycia. Nagłówków prefiksów można również używać do obsługi wielu platform. W *NIX często plik nagłówkowy config.h jest generowany w czasie kompilacji (przez coś takiego jak autoconf ), który opisuje możliwości systemu. Jednak w przypadku korzystania z niektórych systemów kompilacji, takich jak Visual Studio lub Xcode, ten plik config.h może być niedostępny. Jedną z technik rozwiązania tego problemu jest posiadanie HAVE_CONFIG_H jako predefiniowanego makra w systemie kompilacji, które generuje config.h, aby kod wiedział, czy musi #include config.h (& jest bezpieczny w użyciu w systemach kompilacji, które to robią nie mieć). Alternatywą byłoby dodanie przez system kompilacji config.h jako nagłówka prefiksu zamiast definiowania HAVE_CONFIG_H. Oczywiście wadą jest to, że ten nagłówek zostanie dodany do każdej jednostki kompilacji, a nie tylko tych, które zawierają go jawnie.
Przykład
W systemie Mac OS X system kompilacji Xcode automatycznie generuje nagłówki prefiksów dla nowych projektów. Na przykład nowy Cocoa otrzymuje nagłówek prefiksu, który wygląda tak:
#ifdef __OBJC__ #import <Kakao/Kakao.h> #endif
W rezultacie wyraźne włączenie powyższych plików nagłówkowych do dowolnego pliku kodu Objective-C nie implikuje drugiego włączenia z powodu dyrektywy #import
Objective-C lub bardziej ogólnie z #include
z powodu użycia osłon dołączania ; w związku z tym o tych dołączeniach można zapomnieć, ale zaleca się ich jawne napisanie, aby zachować autonomię kodu źródłowego i nadawać się do wielokrotnego użytku oraz wyjaśnić zależności między bibliotekami.
Podobne nagłówki przedrostków są generowane dla innych typów projektów.