[Powered by Google Translate] NATE Hardison: Nella programmazione, una biblioteca è una raccolta di
codice correlato prewritten.
Le biblioteche sono come noi, come i programmatori, le azioni ordinarie e
codice utile con l'altro, con i diversi programmi che
scrivere, e anche con i diversi processi in esecuzione
contemporaneamente sui nostri computer.
>> Analizziamo un po '.
Una delle funzioni più comuni che probabilmente avete
usato è la funzione printf.
Ora, printf non è una funzione magica che è stato
hard-coded nel computer -
piuttosto, è parte delle librerie standard di C, che sono
un insieme di funzioni che viene fornito con il
C linguaggio di programmazione.
Poiché printf non è incorporato nel computer, ciò significa che
ci fosse qualche programmatore che effettivamente è andato e ha scritto la
funzione printf e bundle con il resto della norma
librerie in modo che i futuri programmatori non avrebbe dovuto
duplicare gli sforzi.
E siamo sicuri grati che questo è il caso, perché controllare
la quantità di codice necessario per implementare effettivamente printf.
>> Le librerie standard di C, di cui una parte è printf, sono
uno degli strumenti più importanti che
hanno nella lotta CS50.
Oltre al input-output biblioteca dove
printf vita, ci sono un sacco di altre biblioteche che
probabilmente utilizzare nel corso del CS50.
Per esempio, la libreria ha funzioni di stringa
confrontare le stringhe C, ottenere la loro lunghezza, e concatenare loro.
E la libreria matematica ti dà utili
costanti, come il pi greco ed e.
Ora, rispetto alle librerie standard di programmazione altra
lingue, le librerie standard C sono davvero piccole,
ma hanno ancora una notevole quantità di roba.
E questo non vuol dire che le librerie standard sono il
C solo le librerie, ci sono molti altri là fuori nel
mondo per l'uso, tra cui la Biblioteca CS50,
biblioteche cartografia con crittografia e decrittografia
funzioni, librerie con funzioni per codificare e
riprodurre video, e così via.
>> Questo ci porta ad una parte importante.
Una delle competenze essenziali di ingegneria è conoscere la
strumenti disponibili nella cassetta degli attrezzi in modo da poter utilizzare
ed evitare di reinventare la ruota a meno che non
quello che dovete fare così.
Come i programmatori, le biblioteche sono uno dei più importanti
strumenti che abbiamo.
Quando ci si trova di fronte a un compito che sembra noioso o
banale, come trovare la lunghezza di una stringa C, si
dovrebbe chiedersi se potrebbe essere il caso che
qualcuno ha già fatto la stessa cosa prima.
Le probabilità sono che si potrebbe trovare un po '
aiuto all'interno di una libreria.
>> Quindi, in termini tecnici, una biblioteca è un file binario che
è stato prodotto mettendo in correlazione una raccolta di
file oggetto usando uno strumento chiamato, è
indovinato, il linker.
I file oggetto sono quelli. File o che si ottiene quando si
compilare il codice sorgente C.
Quando i programmatori scrivere librerie, in genere
separare il codice C in due tipi di file:
file di intestazione e file di implementazione.
Un file di intestazione per convenzione viene dato l'estensione di file. H,
e contiene un codice che dichiari la biblioteca
risorse che sono disponibili per l'uso.
Queste risorse includono funzioni, variabili, strutture,
definizioni di tipo, e così via, e insieme, sono
comunemente indicato come l'interfaccia.
In realtà, se si sta chiedendo che cosa è mai in una libreria,
i file di intestazione sono il posto dove guardare.
>> Ad esempio, è possibile tirare su usr / include / stdio.h e controllare
tutto quello che avreste sempre voluto sapere sul
la biblioteca io standard.
C'è un sacco di roba qui dentro, e si può prendere un po 'di
il tempo di guadare attraverso.
Tuttavia, con Google e le pagine man, questo è il
posto dove andare se vi state chiedendo come l'I / O standard
funzioni di libreria lavoro.
Quindi una cosa fondamentale da notare qui, però, è che i file header
in genere non includono definizioni di funzione -
cioè, le implementazioni delle funzioni effettive.
Questo è un esempio di un importante informatica
principio chiamato information hiding, anche di cui al punto
volte più incapsulamento.
>> Come l'utente o il cliente di una libreria, non c'è bisogno di
conoscere la struttura interna della biblioteca in
al fine di usarlo.
Ricordo di aver visto printf solo un po 'fa?
Avevi mai visto il codice vero e proprio prima?
Beh, suppongo che tu non hai, anche se si potrebbe
hanno usato printf tonnellate di volte.
Tutto quello che doveva sapere era il presente dichiarazione di funzione
nel file di intestazione stdio.h.
In ogni caso, il beneficio di information hiding buona è che si
ei programmi che scrivi sono isolati dalla variazione di
il codice per l'esecuzione di funzioni di libreria.
Se la realizzazione di modifiche printf, non si dispone di
di andare a cambiare tutti i programmi che utilizzano printf.
>> Allora, dove si va di attuazione?
Bene, ancora una volta, per convenzione, l'attuazione va in una
file con l'estensione di file. c.
Di solito, i file header e file di implementazione vanno di pari
in mano, quindi se hai dichiarato un gruppo di nuova stringa
funzioni in mystring.h, allora si dovrà definire tutti
tali funzioni in MyString. c.
Allora i file di intestazione e l'attuazione sono quindi
compilato, la creazione di file oggetto che vengono poi collegati
insieme per produrre il file di libreria binario.
Lo scrittore biblioteca poi spedire il file binario lungo
con i file di intestazione per i programmatori che desiderano utilizzare
la biblioteca.
A questo punto, i file di implementazione. C non sono
necessario, tranne la ricompilazione della libreria da zero, in modo da
sono spesso lasciati fuori.
>> Per utilizzare la libreria C, è necessario fare due cose.
In primo luogo, è necessario # include file di intestazione della biblioteca e dei
file di codice sorgente in cui si desidera utilizzare
della biblioteca del codice.
Questo informa il compilatore di tutte le dichiarazioni di
funzioni, variabili, strutture, eccetera, presenti nel
file di intestazione in modo che il compilatore si può, assicurare che
si sta utilizzando le risorse della biblioteca in modo corretto,
e due, generare il relativo codice assembly.
A seconda di dove i file di intestazione della biblioteca sono
trova, la sintassi # include varia.
Se i file di intestazione si trovano nella di sistema
predefinita directory include -
tipicamente, usr/include--
quindi la sintassi angolo parentesi viene utilizzato, come in # include
.
Tuttavia, se i file di intestazione si trovano nella stessa
directory come il proprio codice, la sintassi è doppio apice
usato, come in # include "mylib.h".
>> La seconda cosa che dovete fare è collegare il binario
libreria di file quando si compila il codice.
Questo è un passo super importante.
Ricordate la nostra precedente discussione su come intestazione
file non contengono codice di implementazione?
Se si dimentica questo passaggio, otterrete errori su
i simboli non definiti riferimento nel codice.
Per risolvere questo problema, utilizzare l'opzione-l seguita immediatamente
senza uno spazio dal nome della libreria.
Su molti sistemi, tra cui l 'apparecchio, lo Standard C
Le biblioteche sono automaticamente collegati per voi.
Tuttavia, la libreria matematica a volte è fornito separatamente
e potrebbe aver bisogno di essere collegato con-lm.
Su questo apparecchio, si prenderà cura di questo per voi, e abbiamo anche
linkare la libreria-CS50 con lcs50.
Potete vedere tutto questo sull'apparecchio quando si esegue fare.
>> Ora si dovrebbe avere le conoscenze necessarie per utilizzare
librerie in C. Buon divertimento esplorare.
Il mio nome è Nate Hardison, e questo è CS50.