[1] I compilatori Borland e Zortech, ad esempio, soddisfano detto requisito, ma, in alcune situazioni, la struttura delle librerie, ove differente da quella implementata da Microsoft, può essere causa di problemi. 

[2] Come al solito, occorre fare attenzione. E' vero che le librerie Clipper sono scritte in Microsoft C, ma va precisato che si tratta della versione 5.1. Non è un particolare irrilevante, perché, pur utilizzando il compilatore Microsoft per scrivere funzioni C da interfacciare a Clipper, possono sorgere strani problemi se la versione usata non è, anch'essa, la 5.1. In alcuni casi è possibile utilizzare la GRAPHICS.LIB del Microsoft C 6.0 con la LLIBCA.LIB del Microsoft C 5.1, ma si tratta comunque di un pasticcio pericoloso. 

[3] Con il Microsoft C viene perciò impiegata la libreria LLIBCA.LIB, mentre con il Borland la libreria usata è la CL.LIB

[4] Si presti però attenzione al fatto che Clipper è un linguaggio case­insensitive: ciò non pone problemi, a patto di non differenziare mai nomi nei sorgenti C solamente in base alle maiuscole/minuscole. 

[5] In Clipper gli elementi dell'array sono numerati a partire da 1 e non da 0 come in C. Inoltre, ogni elemento di un array può appartenere ad un tipo differente da quello degli altri. 

[6] L'extend system implementato dal Clipper 5 include alcune macro, dichiarate in EXTEND.H, utilizzabili, in luogo di _parinfo() e _parinfa(), per il controllo dei parametri passati alla funzione: la macro 
PCOUNT
restituisce il numero di parametri che la funzione C ha ricevuto. La macro 
ALENGTH(int parmno)
accetta il numero d'ordine del parametro ricevuto dalla funzione C e, se questo è un array, restituisce il numero di elementi che lo costituiscono. Infine, le macro elencate di seguito sono concepite per controllare il tipo del parametro la cui posizione è loro passata in input: 
ISARRAY(int parmno);    // restituisce non-zero se il parametro parmno e' un array
ISBYREF(int parmno);    // restit. non-zero se parametro parmno e' passato per reference
ISCHAR(int parmno);     // restituisce non-zero se il parametro parmno e' una stringa
ISDATE(int parmno);     // restituisce non-zero se il parametro parmno e' una data
ISLOG(int parmno);      // restituisce non-zero se il parametro parmno e' un campo logico
ISMEMO(int parmno);     // restituisce non-zero se il parametro parmno e' un campo memo
ISNUM(int parmno);      // restituisce non-zero se il parametro parmno e' un numerico
Il valore minimo che il parametro parmno può assumere è 1 e indica il primo parametro passato alla funzione C. 

[7] Utile quando non si tratti di una vera e propria stringa (terminata da NULL), ma di una sequenza di caratteri qualsiasi, da gestire in modo binario. 

[8] Forse non guasta ricordare che si tratta per default di un puntatore far, dal momento che il modello di memoria utilizzato è sempre il large model. Identica considerazione vale per tutti i puntatori a stringa (char *) utilizzati da alcune delle funzioni _par...() e ret...()

[9] Una funzione C dedicata allo svuotamento del buffer di tastiera è presentata in un paragrafo dedicato

[10] E' sufficiente dichiararli come parametri in testa al programma.