From b40e73ba5c30051f31ff4e4958587fa9d2fb11c6 Mon Sep 17 00:00:00 2001 From: tth Date: Fri, 30 Jul 2021 23:45:42 +0200 Subject: [PATCH] Hello C --- .gitignore | 3 +++ chap/C.tex | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ code/Makefile | 5 +++++ code/arguments.c | 16 ++++++++++++++ code/hello.c | 7 +++++- main.tex | 1 + 6 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 chap/C.tex create mode 100644 code/arguments.c diff --git a/.gitignore b/.gitignore index af99af9..f45c2f5 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,9 @@ code/a.out code/foo code/thread-demo code/ex_curses +code/hello +code/arguments + diff --git a/chap/C.tex b/chap/C.tex new file mode 100644 index 0000000..f542365 --- /dev/null +++ b/chap/C.tex @@ -0,0 +1,56 @@ +\chapter{Langage C} +\label{C}\index{C} + +Un chapitre un peu particulier, puisque c'est le début d'une +initiation au langage C pour les non-codeurs qui souhaitent +rentrer dans le sujet à la dure. + +% --------------------------------------------------------- + +\section{Hello World} + +Hop, on y va... + +Le tout début d'un programme en C est l'appel par +le \textsl{runtime} d'une fonction +nommée \texttt{main} qui reçoit deux paramètres +dont l'utilisation est décrite un peu plus bas. + +\lstinputlisting[language=c]{code/hello.c} + + + +Voila, c'est fait. Nous savons dire bonjour au monde. +Point suivant~: dire boujour à quelqu'un d'autre. Et pour +cela il nous fait récupérer un argument depuis la ligne +de commande. + +% --------------------------------------------------------- + +\section{Arguments} + +Expliquons maintenant les deux paramètres +\texttt{argc} et \texttt{argv}. + +Le premier est le nombre de "mots" détectés par l'interpréteur +de commande qui va lancer votre proggy, et le second est +un tableau contenant ces différents mots. + +\lstinputlisting[language=c]{code/arguments.c} + +\begin{verbatim} +$ ./arguments un deux "trois quatre" + 0 ./arguments. + 1 un. + 2 deux. + 3 trois quatre. +$ +\end{verbatim} + + +% --------------------------------------------------------- + + + + + diff --git a/code/Makefile b/code/Makefile index 73f6ff8..39a9abf 100644 --- a/code/Makefile +++ b/code/Makefile @@ -10,3 +10,8 @@ ex_curses: ex_curses.c Makefile thread-demo: thread-demo.c Makefile gcc -Wall -pthread $< -o $@ +hello: hello.c Makefile + gcc -Wall $< -o $@ + +arguments: arguments.c Makefile + gcc -Wall $< -o $@ diff --git a/code/arguments.c b/code/arguments.c new file mode 100644 index 0000000..d945920 --- /dev/null +++ b/code/arguments.c @@ -0,0 +1,16 @@ +/* + * afficher les arguments. + */ + +#include + +int main(int argc, char *argv[]) +{ +int foo; + +for (foo=0; foo + int main(int argc, char *argv[]) { -printf("Hello world.\n"); +printf("hello world.\n"); return 0; } diff --git a/main.tex b/main.tex index 640f14e..87cc4b8 100644 --- a/main.tex +++ b/main.tex @@ -118,6 +118,7 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots \input{chap/GMP} \input{chap/Python} \input{chap/dino} +\input{chap/C.tex} \input{chap/textes} \input{chap/MINITEL} \input{chap/Raspberry}