Nomenclature
Abc.h fichier en-tête “public” contenant les aspects accessibles par les applications. Tout fichier doit contenir :
- une déclaration externe du pointeur vers la structure de classe utilisée pour la création de widgets:
- extern WidgetClass abcWidgetClass;
- une déclaration (incomplète) des types de pointeurs vers les structures d’instance, et vers la structure de classe:
typedef struct _AbcRec *AbcWidget;
typedef struct _AbcClassRec *AbcWidgetClass;
AbcP.h fichier en-tête “privé”, contenant les définitions des structures d’instance et de classe. Ce fichier fait référence à Abc.h:
- il contient la définition complète des structures (classe et instance):
typedef struct _AbcClassRec {
...
AbcClassPart abc_class;
} AbcClassRec;
- une déclaration externe de l’unique variable de structure de classe :
extern AbcClassRec abcClassRec;
Abc.c fichier qui contient la définition de la variable, et de tout le code. Notamment
AbcClassRec abcClassRec;
AbcWidgetClass abcWidgetClass = &abcClassRec;