Schița de curs
Introducere
- Prezentare generală a caracteristicilor și aplicațiilor limbajului C
Pregătirea mediului de dezvoltare
- Alegerea unui IDE
- Configurarea compilatorului
Scrierea unui program de probă
- Definirea problemei
- Codificarea conform cerințelor
Definirea domeniului de aplicare al variabilelor și funcțiilor
- Înțelegerea domeniului, vizibilității și duratei de viață
- Lucrul cu clase de stocare: auto, extern, register, static
Gestionarea datelor într-un program C
- Dincolo de tipurile de date primitive
- Lucrul cu tipuri de date avansate: structuri, liste înlănțuite etc.
- Stocarea diferitelor tipuri de date în aceeași locație de memorie
Modificarea proprietăților unei variabile
- Dincolo de modificatorii de tip
- Lucrul cu calificatori de tip: constant, volatile etc.
Manipularea biților în C
- Lucrul cu date mai mici decât un octet
- Lucrul cu operatori de manipulare a biților
Controlul fluxului programului tău
- Dincolo de secvențiere
- Utilizarea instrucțiunii goto
Citirea și scrierea datelor
- Recapitulare a funcțiilor de intrare/ieșire
- Îmbunătățirea lizibilității ieșirii
Dezvoltarea de cod cross-platform
- Înțelegerea directivelor compilatorului
- Compilarea condiționată a codului
Îmbunătățirea performanței programului
- Macro-uri vs funcții
- Definirea macro-urilor pentru a rula fragmente de program
Alocarea dinamică a memoriei
- Avantajul utilizării pointerilor: viteza de execuție
- Pointeri către funcții
- Accesarea memoriei și manipularea adresei
Depanarea unui program C
- Tehnici avansate pentru verificarea, detectarea și corectarea erorilor
- Lucrul cu gdb (Gnu Debugger)
Crearea unei biblioteci statice
- Cum este legată o bibliotecă statică într-un fișier executabil
- Crearea unei biblioteci statice
Crearea unei biblioteci partajate
- Biblioteci statice vs biblioteci partajate (biblioteci dinamice)
- Cum este legată și încărcată în memorie o bibliotecă partajată la runtime
- Crearea unei biblioteci partajate
Abstractizarea datelor în programul tău
- Prezentare generală a interfeței, specificațiilor și implementării
- Crearea unui tip de date abstract
- Testare de regresie a unui tip de date abstract
Căutarea și sortarea datelor
- Căutarea în tablouri folosind căutare liniară, căutare binară etc.
- Sortarea tablourilor folosind sortare prin selecție, sortare prin inserție, sortare cu bule
Comunicarea interproces și semnale
- Înțelegerea proceselor, socketurilor și semnalelor
- Implementarea IPC folosind fișiere partajate, memorie partajată, pipe-uri, cozi de mesaje, socketuri, semafoare etc.
Făcând ca programul tău C să ruleze în paralel
- Rularea diferitelor părți ale unui program concurent prin multithreading
- Scrierea unui fir de execuție
Programare avansată în rețea
- Recapitulare a protocoalelor TCP, UDP, IP și altor protocoale dominante
- Deservirea mai multor porturi, supraviețuirea întreruperilor bruște de rețea etc.
- Scrierea de API-uri de socket puternice
Către un cod de înaltă calitate
- Revizuirea codului de către colegi și programare paralelă
- Importanța codificării iterative (refactorizare)
Rezumat și concluzii
Cerințe
- Experiență în programarea C
Publicul țintă
- Programatori
- Dezvoltatori
Mărturii (2)
exercițiile și metoda
Javier MIllan Rios - si
Curs - Advanced C Programming
Tradus de catre o masina
Un scop interesant și larg
Maciej Perkowski - Nordic Semiconductor
Curs - Advanced C Programming
Tradus de catre o masina