Apprendre à programmer est une expérience cumulative. En plus d'apprendre la syntaxe du langage choisi, vous devez également apprendre les principes généraux utilisés par tous les langages de programmation.
Comprendre et apprendre la programmation en C peut être intimidant, mais il y a quelques idées de base avec lesquelles il vaut la peine de se familiariser au début. Un projet simple est un excellent moyen d'apprendre les bases du C.
Alors, par où commencer ? En disant bonjour !
La première partie de presque tous les cours de codage est le bonjour le monde programme. L'examiner en détail met en évidence certaines des différences entre le C et les autres langages. Pour commencer, ouvrez un éditeur de texte ou un IDE de votre choix et entrez ce code :
#include
/* ceci est un script Hello World en C */
int principal (vide)
{
printf("Bonjour, le monde !
");
renvoie 0 ;
}
Ce court morceau de code s'imprime sur la console avant de terminer le programme. Enregistrez-le dans un endroit facile à retenir sous hello.c . Vous devez maintenant compiler et construire votre fichier.
En règle générale, vous n'aurez pas besoin d'installer de logiciel supplémentaire sur votre ordinateur pour exécuter des scripts C. Ouvrez une fenêtre de terminal (ou une invite de commande si vous utilisez Windows) et accédez au répertoire dans lequel vous avez enregistré votre script.
La façon dont vous compilez et exécutez votre fichier varie d'un système à l'autre :
Quelle que soit la méthode que vous utilisez, l'exécution de votre script devrait vous montrer ceci :
Si cela ne fonctionne pas sous Windows, assurez-vous d'exécuter l'invite de commande en mode administrateur. Pour macOS, vous devrez peut-être installer Xcode depuis l'App Store et suivre ces étapes depuis StackOverflow.
Maintenant, regardons le programme ligne par ligne pour voir comment cela fonctionne, et l'améliorer !
Le script que vous venez de créer commence par l'inclusion d'une bibliothèque.
#include
La première ligne du script s'appelle un préprocesseur . Ceci est effectué avant que le reste du script ne soit compilé. Dans ce cas, il indique au script d'utiliser le stdio.h bibliothèque. Il existe un grand nombre de préprocesseurs disponibles pour différentes tâches.
Stdio.h s'occupe d'obtenir les entrées de l'utilisateur du programme et de leur renvoyer les informations.
/* ceci est un script Hello World en C */
Cette ligne suivante est un commentaire. La barre oblique et l'étoile indiquent au compilateur d'ignorer tout ce qui se trouve entre elle et l'étoile et la barre oblique de fermeture. Bien que cela puisse sembler inutile, être capable de laisser des notes claires à vous-même et aux autres sur ce que fait votre code est une habitude essentielle à prendre.
int main(void)
Chaque programme C doit avoir un main une fonction. Main est une fonction qui renvoie un entier, noté int . Les crochets après main sont pour ses arguments, bien que dans ce cas, il n'en faut aucun, c'est pourquoi vous utilisez le void mot-clé.
Vous écrivez le code à exécuter entre deux accolades.
{
printf("Bonjour, le monde !
");
renvoie 0 ;
}
À l'intérieur de la fonction, vous appelez le printf() une fonction. Tout comme main() , printf est une fonction. La différence est que printf est une fonction dans le stdio bibliothèque que vous avez incluse au début.
Printf imprime tout ce qui se trouve entre crochets, entre guillemets, sur la console. Le \n est une séquence d'échappement appelée nouvelle ligne, indiquant au compilateur de passer à la ligne suivante dans la console avant de continuer.
Notez que ces lignes se terminent par des points-virgules , que le compilateur utilise pour séparer une tâche de la suivante. Portez une attention particulière à ces points-virgules ---les manquer est la cause numéro un des choses qui ne vont pas !
Enfin, la fonction revient avec le chiffre 0, mettant fin au programme. Le principal() la fonction doit toujours renvoyer un entier et return =0 ; signale à l'ordinateur que le processus a réussi.
Comprendre chaque étape de ce script est un bon début pour apprendre à la fois la syntaxe C et le fonctionnement du langage.
Vous pouvez créer vos propres fonctions personnalisées en C. Au lieu d'imprimer Hello World dans la fonction principale, créez une nouvelle fonction pour le faire pour vous.
annuler print_for_me()
{
printf("Bonjour, le monde !
");
}
Décomposons cela.
annuler est un mot-clé signifiant que la fonction suivante ne renverra rien.
print_for_me() est le nom de la fonction, et les crochets vides indiquent qu'elle ne nécessite pas d'arguments pour fonctionner. Un argument est une information à transmettre à une fonction pour la faire fonctionner --- plus tard, vous ajouterez votre propre argument pour modifier la sortie ! Remarque : Ce n'est pas la même chose que la fonction main() ci-dessus qui utilisait void. Cette fonction ne peut pas prendre d'arguments, alors que celle-ci peut (mais dans ce cas, n'est pas obligée).
Le bloc de code devrait vous être familier --- il s'agit simplement de l'instruction d'impression de la fonction principale d'origine.
Maintenant, vous pouvez appeler cette fonction depuis votre fonction principale.
int main(void)
{
print_for_me();
print_for_me();
renvoie 0 ;
}
Vous pouvez voir ici un avantage à utiliser votre propre fonction. Plutôt que de taper printf("Hello, World ! \n") à chaque fois, vous pouvez appeler la fonction deux fois.
Pour le moment, cela peut ne pas sembler si important, mais si votre fonction print_for_me contenait beaucoup de lignes de code, pouvoir l'appeler si facilement est un gain de temps considérable !
C'est une idée fondamentale de la programmation que vous rencontrerez tout au long de votre formation. Écrivez votre propre fonction une seule fois, plutôt que d'écrire les mêmes gros morceaux de code encore et encore.
Les prototypes sont l'une des principales différences entre le débutant C et les autres langages. En bref, un prototype est comme un aperçu d'une fonction définie plus tard. Si vous écrivez la fonction print_for_me() après la fonction main, vous pouvez recevoir un avertissement lors de la compilation :
Le message d'avertissement vous indique que le compilateur a rencontré la fonction print_for_me avant qu'elle ne soit déclarée, il ne pouvait donc pas être sûr qu'il fonctionnerait correctement lorsque le programme s'exécuterait.
Le code fonctionnerait toujours, mais l'avertissement peut être complètement évité en utilisant un prototype.
#include
annuler print_for_me();
int principal (vide)
{
print_for_me();
print_for_me();
renvoie 0 ;
}
annuler print_for_me()
{
printf("Bonjour, le monde !
");
}
En regardant le programme complet, vous pouvez voir que le prototype de print_for_me() existe au début du programme, mais ne contient rien. La fonction prototype montre au compilateur à quoi la fonction doit ressembler et si elle nécessite des arguments ou non.
Cela signifie que lorsque vous l'appelez dans la fonction main, le compilateur sait s'il est appelé correctement et peut générer un avertissement ou une erreur si nécessaire. Cela peut sembler étrange maintenant, mais les connaître maintenant aidera à l'avenir.
Ce programme fonctionne toujours sans prototype, mais il s'agit d'une bonne pratique à utiliser. La sortie semble toujours la même pour l'instant, modifions-la pour la rendre plus personnelle !
Pour cette dernière étape, vous demanderez le nom de l'utilisateur et enregistrerez sa saisie. Ensuite, vous l'utiliserez dans la fonction que vous avez créée auparavant. En C, les mots ne sont pas connus comme des chaînes comme dans d'autres langages de programmation.
Au lieu de cela, ils sont un tableau de caractères uniques. Le symbole d'un tableau est [] et le mot-clé est char . Commencez par mettre à jour votre fonction prototype au début de votre script :
#include
void print_for_me(char name[]);
Maintenant, le compilateur saura que la fonction plus loin dans le script prend un tableau de caractères appelé name . Pour l'instant, ce personnage n'existe pas. Mettez à jour votre fonction principale pour la créer et utilisez-la pour stocker l'entrée utilisateur :
int main(void)
{
nom de caractère[20] ;
printf("Entrez le nom :");
scanf("%s", nom);
print_for_me(nom);
print_for_me("Tout le monde!");
renvoie 0 ;
}
La première ligne de main crée un tableau de caractères avec 20 espaces possibles appelé name. Ensuite, l'utilisateur est invité à entrer son nom à l'aide de printf. La ligne suivante utilise une nouvelle fonction appelée scanf qui prend le prochain mot saisi par l'utilisateur.
Le "%s" indique à la fonction qu'elle doit stocker les données sous forme de chaîne et l'appeler nom .
Désormais, lorsque vous appelez print_for_me, vous pouvez inclure nom entre parenthèses. Sur la ligne suivante, vous verrez que vous pouvez également passer d'autres caractères tant qu'ils sont entre guillemets. Les deux fois, ce qui est entre parenthèses est transmis à la fonction print_for_me.
Modifiez-le maintenant pour utiliser les nouvelles informations que vous lui donnez :
void print_for_me(char name[])
{
printf("Bonjour, ");
met (nom);
}
Ici, vous pouvez voir que les crochets ont été mis à jour, tout comme le prototype au début du script. À l'intérieur, vous imprimez toujours bonjour en utilisant printf. Une nouvelle fonction ici est puts . Il s'agit d'une version plus avancée de printf.
Tout ce qui est mis entre parenthèses sera imprimé sur la console, et une nouvelle ligne (le \n que vous avez utilisé précédemment) est ajouté automatiquement.
Enregistrez et compilez votre code de la même manière que précédemment --- notez que vous pouvez nommer le programme différemment si vous ne souhaitez pas écraser votre programme précédent. J'ai nommé le mien hello2 :
Comme vous devriez le voir, le programme prend l'entrée et l'utilise dans la fonction, avant d'envoyer le message d'accueil prédéfini "Tout le monde!" donnant à nouveau deux sorties séparées à la même fonction.
Ce programme est simple, mais certains de ses concepts ne le sont pas. Le code C plus avancé doit être très bien écrit pour éviter les plantages. C'est pourquoi beaucoup pensent que c'est un excellent langage à apprendre en premier car il inculque de bonnes habitudes aux nouveaux programmeurs.
D'autres pensent qu'apprendre le C++ est une meilleure idée, car il s'appuie sur le C tout en conservant son contrôle inférieur du système. (Il y a aussi Rust à considérer --- c'est un langage de programmation passionnant qui est syntaxiquement similaire à C++.)
Une chose est sûre :les langages comme Python sont beaucoup plus conviviaux pour les débutants. Pour un ancien langage, le C est encore utilisé partout, mais Python est peut-être le langage du futur !