Ciao e bentornato.
In questa conferenza, voglio per parlare di altri argomenti
che puoi studiare.
Fondamentalmente stiamo concludendo la lezione.
Lo stiamo concludendo.
E così non abbiamo ottenuto per coprire tutto.
Ovviamente è una lezione per principianti.
Quindi ci sono molti avanzati argomenti che puoi
approfondire per diventare davvero, davvero fantastico alla programmazione c, e volevo solo
menzionarne un paio.
Quindi, prima di tutto, non l'abbiamo fatto entrare in typedef.
Mi sarebbe piaciuto avere ne ho parlato, ma è
più un concetto avanzato.
Abbiamo parlato di enumerazioni.
E enum è un modo di creando il tuo tipo.
Ma in particolare in c, c'è una parola chiave chiamata typedef e puoi creare i
tuoi tipi di dati.
Questo è molto utile, di più di un concetto avanzato.
Potresti sicuramente saperne di più su questo.
Ci sono molte più informazioni su preprocessore che puoi conoscere,
in particolare la concatenazione di stringhe.
Il preprocessore ricorda che viene eseguito prima del compilatore.
Abbiamo appreso di dichiarazione definita.
Abbiamo imparato un paio di altre cose qua e là, ma il
preprocessore può essere un'intera altra sezione con molte più informazioni su di esso.
Puoi usarlo fondamentalmente per ottimizzare molto del codice, in modo da poterlo eseguire
in anticipo.
Puoi eseguire funzioni inline che gira nel preprocessore, tutta una
serie di bei concetti.
C'è molto di più sulle stelle del vuoto.
Stelle vuote, ricorda, molta flessibilità.
In particolare, il malloc la funzione restituisce una stella vuota.
Potremmo creare funzioni che prendono il vuoto puntatori e passare i puntatori void in
giro per renderlo più flessibile.
C'è molto di più possiamo studiare su questo.
Librerie statiche e oggetti condivisi.
Non ne abbiamo parlato concetto di biblioteca.
Usiamo le librerie quando ci colleghiamo.
In particolare, molti dei file le
librerie sono definite nelle librerie standard c.
Ma puoi creare le tue librerie.
Abbiamo creato programmi.
I programmi sono processi che corrono nella memoria.
Ma le librerie sono in realtà altro codice che puoi riutilizzare in altri programmi.
Quindi, ad esempio, la libreria standard c.
Se hai programmato in altri file le lingue, di solito, sono API
fornite con la lingua.
Esistono due tipi di file librerie che puoi creare.
Puoi creare un'immagine statica libreria in cui compili
tutto quel codice quando colleghi.
E poi puoi anche creare un file shared oggetto dove andrai
durante l'esecuzione del programma cercare le funzioni e invocarle.
Quindi le librerie statiche di solito vengono terminate in un punto a
e vengono compilati in tempo statico o vengono compilati in quando si compila il programma.
Gli oggetti condivisi sono file punto così o sono anche che puoi pensare a loro
come dll se hai mai sentito parlare di librerie a collegamento
dinamico e visual c plus plus.
Ma gli oggetti condivisi non sono in fase di compilazione.
Ancora una volta, è un modo per riutilizzare il codice.
Potremmo studiare questi concetti e io potrebbe mostrarti come costruire librerie
statiche e oggetti condivisi.
Macro.
Non abbiamo avuto la possibilità per parlare di una macro.
Questo è un argomento avanzato.
Questo viene eseguito dal preprocessore per fare principalmente sostituzione, sostituzione
di stringhe.
Alcune delle funzioni che noi studiati sono effettivamente scritti
come macro, come la macro assert.
È possibile esplorare le macro molto più in dettaglio.
Sindacati.
Di solito i sindacati andare avanti con gli struct.
È un modo per avere più diversi tipi di dati restituiti o diversi tipi di elementi
membri all'interno di un file struct che rappresenta la stessa cosa.
Quindi potresti avere una struttura che ha un membro, ma quel membro può
essere un enter a float and useresti union per farlo.
Altri argomenti puntatori a funzione.
Abbiamo parlato di carattere puntatori principalmente, e anche puntatori interi
e doppi puntatori.
Ma puoi effettivamente avere dei suggerimenti quel punto a varie funzioni.
Quindi, mentre il tuo programma è in esecuzione, puoi eseguire una funzione.
E poi la prossima volta che viene eseguito, potrebbe eseguire una funzione
diversa in base all'input dell'utente o qualcosa di simile.
I puntatori a funzione sono un intero altro argomento.
Puntatori avanzati.
C'è molto di più nei puntatori di quello che abbiamo discusso.
Abbiamo discusso le basi di puntatori, ma potremmo parlare di puntatori
in modo molto più dettagliato.
Ci sono puntatori effettivi ai puntatori, quindi ci sono doppi puntatori, e questo è
un argomento principale più avanzato.
Argomenti variabili per le funzioni.
Questi sono indicati come funzioni variatiche.
Usiamo la funzione printf che ha un
numero variabile di argomenti, ma non l'abbiamo definito qualsiasi funzione avessimo un
numero variabile di argomenti, potremmo esplorare questo concetto molto utile.
Collegamento dinamico.
Questo è quando apri un file libreria alla volta ed è leggermente diverso da
un oggetto condiviso.
Puoi aprire biblioteche in fase di esecuzione e aumenta le prestazioni
e rende il tuo programmi eseguibili più piccoli.
Quindi dlm aperto c'è un vero file chiamata biblioteca per farlo.
Segnali, biforcazione comunicazione tra processi.
Tutto questo può essere esplorato tra i processi la comunicazione è quando hai
due programmi che vogliono comunicare.
Ci sono modi diversi che possono comunicare.
Possono comunicare tramite file.
Possono comunicare tramite qualcosa chiamato presa.
Possono comunicare utilizzando le tubazioni.
Esistono diverse tecniche lì, ma è quando due processi vogliono
parlare tra loro.
Forking è dove puoi creare un altro processo.
Ci sono biblioteche da creare altri processi nel codice.
Se dovessi crearne un altro processo nel codice,
avrebbe il proprio spazio di memoria degli indirizzi e può rendere il tuo programma un
po 'più efficiente.
E poi segnali, non siamo entrati molti, ma i segnali vengono utilizzati
per il debug nella generazione di diversi messaggi a diversi programmi.
Threading e concorrenza.
Un altro argomento avanzato che vuoi studiare.
Ciò consente l'esecuzione multipla punti all'interno del tuo programma.
Ti permette di eseguire il codice quasi contemporaneamente.
Quindi è una cosa di tipo efficiente.
Se hai un'attività da molto tempo, il file devi fare nel tuo programma
come monitorare i dati o aspettare dati o forse il tuo compito è leggere un
file enorme, puoi crearne un altro thread per farlo e quindi
eseguire ancora altre parti del programma insieme allo stesso tempo.
Prese.
I socket vengono utilizzati per il networking.
Se lo desideri, verrebbero usati i socket per connettersi a un altro computer e
ottenere dati da quell'altro computer.
Il networking è molto molto grande perché noi avere Internet e tutto il resto.
Così puoi imparare tutto su prese e vedere pure.
Ci sono due funzioni chiamato setjump e longjump.
Questo serve per ripristinare lo stato.
Potremmo studiarli in buoni dettagli in più sulla gestione e la
frammentazione della memoria.
Non si tratta solo di malloc, ma è così che puoi gestire la tua memoria
e metterla nell'heap o nello stack.
Puoi assicurarti che il tuo programma è un po 'più efficiente,
quindi non hai la stessa frammentazione.
La frammentazione è dove hai la memoria in posizioni diverse e
non è sequenziale, quindi potrebbe essere più difficile prenditi più tempo per cercare quel ricordo.
Puoi ridurre la frammentazione.
Possiamo lavorare sulla creazione del file programmi più portabili.
In generale, i programmi c sono abbastanza portatili.
Ma ci sono più tecniche che puoi utilizzarlo per assicurarti che quando scrivi una volta
il tuo programma, venga eseguito su molti sistemi operativi diversi e
non è necessario riscriverlo.
Potremmo essenzialmente usare alcuni degli standard posix disponibili
in c.
Possiamo assicurarci che a seconda su quale versione
diversa dello standard c, che loro lavorare in più standard
utilizzando determinate convenzioni.
Potremmo anche scrivere programmi che interfacciarsi direttamente con il kernel.
Ricorda, il kernel è il cervelli del sistema operativo.
Il kernel contiene tutti i driver.
Contiene tutti i tipi di chiamate per abbassare le funzioni di memoria di livello.
Fa molto informazioni diverse.
Quindi il kernel ha specifiche funzionalità in cui è possibile interfacciarsi
con esso nel programma c.
Questo sarebbe basso roba incorporata di livello.
Quindi potremmo usare le chiamate come i controlli IO.
Potremmo creare driver per parlare direttamente con l'hardware.
C'è molto di più nel compilatore e diversi flag che
puoi passare al compilatore o il linker, che ancora una volta rende il
tuo programma più efficiente.
Non ne abbiamo avuto la possibilità parlare
molto di molte bandiere diverse.
Abbiamo parlato principalmente del trattino wall e alcuni altri di base,
ma niente di più avanzato.
Abbiamo parlato del debugger e come eseguire il debug delle applicazioni.
Il debugger nei blocchi di codice era tramite l'interfaccia utente grafica.
Ma il vero vantaggio di un debugger è sotto il cofano che usa gdb.
Gdb è il debugger di GNU.
E abbiamo parlato solo di breakpoint e utilizzandolo tramite l'interfaccia utente grafica, ma puoi
farlo effettivamente fare un sacco di più con gdb.
Potremmo passare attraverso il debugger gdb dalla console emettere comandi diversi, fare molto
di più con il core file capire come leggere il
file core utilizzando gdb, un file ci sono molti bei argomenti avanzati.
Strumenti di profilazione e tracciamento.
Non siamo riusciti a parlare di alcuni analizzatori statici, alcuni strumenti che possono analizzare il
tuo codice prima di te esegui il tuo programma
per vedere se c'è qualche codice morto o se c'è eventuali cattive pratiche di programmazione.
E poi anche gli strumenti di tracciamento, s trace, d trace, g profile, questi sono
tutti strumenti importanti che puoi usa per vedere per aiutarti a eseguire
il debug e a misurare l'efficienza o quanta memoria stai utilizzando o le
prestazioni del tuo programma.
C'è altra memoria aggiuntiva strumenti di debug, come valgrind.
Questo aiuta quando ne hai voglia condizioni di gara o hai
problemi di danneggiamento della memoria.
Molte volte quando stai gestendo la tua memoria e hai buffer overflow o perdite di
memoria, è molto molto difficile da trovare quelli.
Quindi ci sono strumenti là fuori che possono farlo aiutarti a trovare quelli come valgrind.
E quindi c'è molto di diverso argomenti che puoi esplorare per
diventare un esperto in c.
Abbiamo toccato le basi.
Abbiamo toccato il davvero, davvero cose importanti per iniziare.
Ma con questi in più argomenti, puoi diventare un esperto.
Grazie.