Bonjour et bienvenue à nouveau.
Dans cette conférence, je veux pour parler d'autres sujets que
vous pouvez étudier.
Nous terminons essentiellement la classe.
Nous terminons.
Et donc nous n'avons pas eu pour tout couvrir.
De toute évidence, c'est un cours pour débutants.
Il y a donc beaucoup de sujets que vous pouvez
approfondir pour que c devienne vraiment, vraiment génial en programmation c, et je voulais
juste en mentionner quelques-uns.
Alors tout d'abord, nous n'avons pas entrer dans les typedefs.
J'aurais aimé avoir en a parlé, mais il s’agit
plutôt d’un concept avancé.
Nous avons parlé d'énumérations.
Et enum est un moyen de créer votre propre type.
Mais spécifiquement en c, il y a un mot-clé appelé typedef et vous pouvez créer
vos propres types de données.
Ceci est très utile, en plus d'un concept avancé.
Tu pourrais certainement en savoir plus à ce sujet.
Il y a beaucoup plus d'informations sur le préprocesseur sur lequel vous pouvez
vous renseigner, en particulier la concaténation de chaînes.
Le préprocesseur se souvient qui s'exécute avant le compilateur.
Nous avons appris la déclaration définie.
Nous avons appris quelques autres choses ici et là, mais le préprocesseur
peut être une toute autre section avec beaucoup plus d'informations à ce sujet.
Vous pouvez l'utiliser essentiellement pour optimisez une grande partie de votre code afin de pouvoir
l'exécuter au préalable.
Vous pouvez faire des fonctions en ligne qui fonctionnent dans le préprocesseur, tous
des tas de beaux concepts.
Il y a beaucoup plus sur les étoiles vides.
Étoiles vides, souviens-toi, beaucoup de flexibilité.
En particulier, le malloc La fonction renvoie une étoile vide.
Nous pourrions créer des fonctions vides pointeurs et passez les pointeurs vides
pour le rendre plus flexible.
Il y a beaucoup plus nous pouvons étudier cela.
Bibliothèques statiques et objets partagés.
Nous n'en avons pas parlé concept de bibliothèque.
Nous utilisons des bibliothèques lorsque nous lions.
Plus précisément, de nombreux les bibliothèques
sont définies dans les bibliothèques standard c.
Mais vous pouvez créer vos propres bibliothèques.
Nous avons créé des programmes.
Les programmes sont des processus qui fonctionnent en mémoire.
Mais les bibliothèques sont en fait un autre code que vous pouvez réutiliser dans d'autres programmes.
Ainsi, par exemple, la bibliothèque standard c.
Si vous avez programmé dans d'autres langues, généralement, ce sont des API
fournies avec la langue.
Il existe deux types de bibliothèques que vous pouvez créer.
Vous pouvez créer un statique bibliothèque où vous compilez tout ce
code lorsque vous créez un lien.
Et puis vous pouvez également créer un partage objet où lors de l'exécution
du programme, vous allez rechercher des fonctions et les invoquer.
Donc, les bibliothèques statiques sont généralement terminées dans un point a et ils
sont compilés à un moment statique ou ils sont compilés dans lorsque vous compilez le programme.
Les objets partagés sont des points, donc les fichiers ou ils sont aussi vous pouvez les considérer
comme des DLL si vous jamais entendu parler de bibliothèques de liens
dynamiques et de visual c plus plus.
Mais les objets partagés ne sont pas au moment de la compilation.
Encore une fois, c'est un moyen de réutiliser du code.
Nous pourrions étudier ces concepts et je pourrait vous montrer comment créer des bibliothèques
statiques ainsi que des objets partagés.
Macros.
Nous n'avons pas eu la chance pour parler d'une macro.
C'est un sujet avancé.
Ceci est exécuté par le préprocesseur pour faire principalement la substitution, la
substitution de chaînes.
Certaines des fonctions que nous étudiées sont en fait écrites
sous forme de macros, comme la macro assert.
Les macros peuvent être explorées plus en détail.
Les syndicats.
Les syndicats aller avec les structures.
C'est une façon d'avoir plusieurs types de données renvoyées ou différents types d'éléments membres
à l'intérieur d'un struct qui représentent la même chose.
Donc tu pourrais avoir une structure qui a un membre, mais ce membre peut
être une entrée un flotteur et vous utiliseriez l'union pour faire cela.
Autres sujets de fonction pointeurs.
Nous avons parlé de caractère pointeurs principalement, et même des pointeurs entiers
et des pointeurs doubles.
Mais vous pouvez en fait avoir des pointeurs qui pointent vers diverses fonctions.
Alors que votre programme est en cours d'exécution, vous pouvez exécuter une fonction.
Et puis la prochaine fois qu'il s'exécute, il pourrait exécuter une fonction différente
en fonction de l'entrée utilisateur ou quelque chose comme ça.
Les pointeurs de fonction sont un tout autre sujet.
Pointeurs avancés.
Il y a beaucoup plus de pointeurs que ce dont nous avons discuté.
Nous avons discuté des bases de pointeurs, mais nous pourrions parler de
pointeurs beaucoup plus en détail.
Il y a des pointeurs réels vers des pointeurs, il y a donc des pointeurs doubles,
et c'est un sujet principal plus avancé.
Arguments variables pour les fonctions.
Celles-ci sont désignées en tant que fonctions variatiques.
Nous utilisons la fonction printf qui a un
nombre variable d'arguments, mais nous n'avons pas défini toutes les fonctions dont nous avions
un nombre variable d'arguments, nous pourrions explorez ce concept très utile.
Liaison dynamique.
C'est à ce moment-là que vous ouvrez un bibliothèque à la fois et c'est un peu différent
d'un objet partagé.
Vous pouvez ouvrir des bibliothèques au moment de l'exécution et cela augmente les
performances et rend votre programmes exécutables plus petits.
Alors dlm ouvert, il y a un réel appel de la bibliothèque pour ce faire.
Signaux, fourche communication interprocessus.
Tout cela peut être exploré entre les processus la communication, c'est quand vous avez
deux programmes qu'ils veulent communiquer.
Il y a différentes manières qu'ils peuvent communiquer.
Ils peuvent communiquer via des fichiers.
Ils peuvent communiquer via quelque chose appelé une prise.
Ils peuvent communiquer en utilisant la tuyauterie.
Il y a différentes techniques là, mais c'est quand deux processus
veulent se parler.
La fourche est l'endroit où vous pouvez créer un autre processus.
Il y a des bibliothèques à créer d'autres processus dans votre code.
Si vous deviez en créer un autre processus
dans votre code, il aurait son propre espace mémoire d'adresse et cela peut rendre votre programme un
peu plus efficace.
Et puis les signaux, nous ne sommes pas entrés dans beaucoup de, mais les
signaux sont utilisés pour déboguer pour générer différents messages à différents programmes.
Threading et concurrence.
Un autre sujet avancé que vous souhaitez étudier.
Cela permet une exécution multiple points à l'intérieur de votre programme.
Il vous permet d'exécuter du code presque en même temps.
C'est donc une question de type efficacité.
Si vous avez une tâche de longue durée que vous devez faire dans votre
programme, comme surveiller les données ou attendre données ou peut-être que votre tâche est de lire
un fichier volumineux, vous pouvez en créer un autre thread pour le faire,
puis exécutez encore d'autres parties de votre programme en même temps.
Prises.
Les prises sont utilisées pour la mise en réseau.
Les prises seraient utilisées si vous vouliez pour vous connecter à un autre ordinateur et obtenir
des données de cet autre ordinateur.
Le réseautage est très très important car nous avoir Internet et tout le reste.
Pour que vous puissiez tout savoir sur prises et voir aussi.
Il y a deux fonctions appelé setjump et longjump.
C'est pour restaurer l'état.
Nous pourrions les étudier dans bons détails plus sur la gestion de la
mémoire et la fragmentation.
Il ne s'agit pas seulement de malloc, mais c'est ainsi que vous pouvez gérer votre mémoire et la
mettre sur le tas ou la pile.
Vous pouvez vous assurer que votre programme est un peu plus efficace, vous
n'avez donc pas autant de fragmentation.
La fragmentation est l'endroit où vous avez de la mémoire à différents endroits, et
ce n'est pas séquentiel, il peut donc être plus difficile de prenez plus de temps pour rechercher ce souvenir.
Vous pouvez réduire la fragmentation.
Nous pouvons travailler sur la programmes plus portables.
En général, les programmes c sont assez portables.
Mais il y a plus de techniques qui vous pouvez utiliser pour vous assurer que lorsque vous écrivez votre
programme une fois, il s'exécute sur de nombreux systèmes d'exploitation différents et vous n'avez
pas à le réécrire.
Nous pourrions essentiellement utiliser certaines des normes posix disponibles
dans c.
Nous pouvons nous assurer que selon sur quelle
version différente de la norme c, qu'ils travailler dans plusieurs normes
en utilisant certaines conventions.
Nous pourrions également écrire des programmes qui interface directement avec le noyau.
Souvenez-vous que le noyau est le cerveaux du système d'exploitation.
Le noyau contient tous les pilotes.
Il contient toutes sortes d'appels aux fonctions de mémoire de niveau inférieur.
Cela fait beaucoup de informations différentes.
Ainsi, le noyau a des fonctionnalité où vous pouvez vous connecter avec
lui dans votre programme c.
Ce serait faible niveau intégré des trucs.
Pour que nous puissions utiliser les appels comme les contrôles IO.
Nous pourrions créer des pilotes pour parler directement avec le matériel.
Il y a beaucoup plus sur le compilateur et différents indicateurs
que vous pouvez passer au compilateur ou l'éditeur de liens, ce qui rend à nouveau
votre programme plus efficace.
Nous n'avons pas eu la chance de
parle beaucoup de différents drapeaux.
Nous avons principalement parlé du tableau de bord mur et quelques autres basiques,
mais rien de plus avancé.
Nous avons parlé du débogueur et comment déboguer des applications.
Le débogueur dans les blocs de code était via l'interface utilisateur graphique.
Mais le véritable avantage d'un débogueur est sous le capot, il utilise gdb.
Gdb est le débogueur gnu.
Et nous n'avons parlé que des points d'arrêt et en l'utilisant via l'interface utilisateur graphique, mais
vous pouvez en fait une tonne de plus avec gdb.
Nous pourrions passer par le débogueur gdb à partir de la console, émettez différentes
commandes, faites beaucoup plus avec le fichier core comprendre comment lire
le fichier core en utilisant gdb, un beaucoup de beaux sujets avancés là-bas.
Outils de profilage et de traçage.
Nous n'avons pas pu en parler analyseurs statiques, quelques outils qui peuvent analyser votre code
avant vous exécutez votre programme pour voir s'il y
a du code mort ou s'il y a toute mauvaise pratique de programmation.
Et puis des outils de traçage aussi, s trace, d trace, g profile, ce sont tous des
outils importants que vous pouvez utilisez pour voir pour vous aider à déboguer
et vous aider à mesurer l'efficacité ou la quantité de mémoire que vous utilisez ou
les performances de votre programme.
Il y a une autre mémoire supplémentaire outils de débogage, tels que valgrind.
Cela aide quand vous avez comme conditions de concurrence ou vous avez des
problèmes de corruption de la mémoire.
Souvent, lorsque vous gérez votre mémoire et vous avez des dépassements de tampon ou des fuites
de mémoire, c'est très très difficile à trouver.
Il existe donc des outils qui peuvent vous aider à trouver ceux tels que valgrind.
Et donc il y a beaucoup de choses différentes sujets que vous pouvez
explorer pour devenir un expert en c.
Nous avons abordé les bases.
Nous avons abordé le vraiment, vraiment choses importantes pour commencer.
Mais avec ces supplémentaires sujets, vous pouvez devenir un expert.
Merci.