Preprocessor-direktiv
I programspråket C och C++ finns ett antal ord som kompilatorn automatiskt förstår, sk nyckelord. Alla andra ord vi använder måste "förklaras" för kompilatorn. Vissa ord finns redan färdiga "förklaringar" för, och vi behöver bara ange var "förklaringen" finns. När vi i programmets första rad skriver #include <iostream> är det en uppmaning till preprocessor att infoga (include) innehållet i filen iostream. Filen finns redan i en underkatalog till utvecklingsverktyget och innehåller en mängd definitioner för in- (i) och utmatningar (o). Denna typ av filer kallas för headerfiler.
Antag att du inte kände till detta och skriver programmet utan preprocessor-direktivet, dvs på följande sätt:
int main()
{
cout <<"Programmering A"<<endl;
cout <<"C/C++"<<endl;
cin.get();
return 0;
}


Om du nu försöker att kompilera filen erhålls ett felmeddelande som bl.a. innehåller följande:

Error: ex1.cpp(5,9):Undefined symbol 'cout'

Undefined symbol 'cout' betyder att C++ inte fattar vad cout är för något. Får man ett sådant meddelande bör man börja med att kontrollera att man stavat rätt. Om inget är felstavat är det en definition som saknas. Då återstår att titta i sin referenslitteratur eller i programmets hjälpfil efter var definitionen finns. Med tiden lär du dig flertalet av dessa utantill, t.ex. iostream som nästan alltid kommer att finnas med.

Ett exempel

Antag att du letar i ditt utvecklingsverktygs hjälpfil efter något sätt att lägga in en paus i ditt program. Till sist hittar du följande som verkar intressant

Syntax

#include <dos.h>
void sleep(unsigned seconds);

Borland C++ 5.0 Programmer's Guide

Detta säger att du i ditt program kan läga in rader som t.ex....
sleep(10);
...så stannar allt i 10 sekunder. För att detta ska fungera ska man i början av programmet skriva:
#include <dos.h>
Vi behöver alltså inte utantill kunna alla preprocessor-direktiv utan hittar dem lätt i hjälpfiler och referenslitteratur.