<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Cours #1 - Introduction au C]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;Bienvenue pour ce tout premier cours sur le <img src="https://melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=d0a000c383a" class="not-responsive emoji emoji-android emoji--smile" style="height:23px;width:auto;vertical-align:middle" title="C:" alt="😄" /> L'introduction au C.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />
Dans cette première partie, nous allons voir de quoi se compose un programme "de base" en C.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;I- Avant propos.&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;<br />
J'aimerais vous informer au niveau des cours qui vont suivre: Le but étant de travailler en étant le plus près possible du fonctionnement de la machine, les seules fonctions autorisées (et vous le verrez pendant les exercices) sont les fonctions System (Googlisez tout ça!).&lt;br/&gt;&lt;br/&gt;<br />
Donc merci de jouer le jeu jusqu'au bout, et de ne pas utiliser de fonctions "interdites" .&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;II- Notre premier programme.&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;<br />
Nous allons créer notre tout premier programme.&lt;br/&gt;&lt;br/&gt;<br />
Le but de ce programme est d'afficher une lettre.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />
Avant tout: Un programme en C est composé de fonctions, et plus particulièrement de la fonction "main" cette fonction est la fonction principale appelée lors du lancement de notre programme.&lt;br/&gt;&lt;br/&gt;<br />
Commençons donc par créer un fichier test.c qui contient notre main:&lt;br/&gt;<br />
 &lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint"&gt;<br />
int main()<br />
{</p>
<p dir="auto">}&lt;/pre&gt;<br />
&lt;p&gt;Pour compiler notre programme, nous allons utiliser GCC. Pour des raisons personnelles et utilitaires, je code sous linux, je vais donc vous proposer de suivre tout mes cours sous linux. Vous aurez donc des informations sur la compilation en ligne de commande.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />
Pour compiler notre programme grâce à GCC, il faut utiliser la commande suivante: gcc test.c -o test&lt;br/&gt;&lt;br/&gt;<br />
Un fichier "test" viens d'être créé. Vous pouvez le lancer: ./test&lt;br/&gt;&lt;br/&gt;<br />
Oh! Nous avons compiler notre premier programme en C... Qui ne fait rien (pour l'instant!).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />
Revenons donc à notre but principal: Créer un programme qui affiche une lettre.&lt;br/&gt;&lt;br/&gt;<br />
Nous allons donc avoir besoin d'une fonction système d'affichage qui s'appelle "Write" (Lisez le man de Write pour avoir plus d'informations sur cette fonction!).&lt;br/&gt;&lt;br/&gt;<br />
Créons donc une fonction "my_putchar" qui prendra en argument une variable de type char (caractère) et qui aura pour but de l'afficher:&lt;br/&gt;<br />
 &lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint"&gt;<br />
void my_putchar(char c)<br />
{<br />
write(1, &amp;c, 1);<br />
}</p>
<p dir="auto">int main()</p>
<p dir="auto">{<br />
}&lt;/pre&gt;<br />
&lt;p&gt;Voila! Nous avons notre fonction d'affichage! A present, affichons notre premier caractère!&lt;br/&gt;<br />
 &lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint"&gt;<br />
void my_putchar(char c)<br />
{<br />
write(1, &amp;c, 1);<br />
}</p>
<p dir="auto">int main()<br />
{<br />
my_putchar('A');<br />
}&lt;/pre&gt;<br />
&lt;p&gt;Compilons tout ça... Oh! Lorsqu'on lance notre programme, il affiche un A !&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />
Un autre exemple: HelloWorld.&lt;br/&gt;&lt;br/&gt;<br />
Le but de ce programme est d'afficher HelloWorld. Reprenons la base précédente:&lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint"&gt;<br />
void my_putchar(char c)<br />
{<br />
write(1, &amp;c, 1);<br />
}</p>
<p dir="auto">int main()<br />
{</p>
<p dir="auto">}&lt;/pre&gt;<br />
&lt;p&gt;Et affichons notre "HelloWorld":&lt;br/&gt;<br />
 &lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint"&gt;<br />
void my_putchar(char c)<br />
{<br />
write(1, &amp;c, 1);<br />
}</p>
<p dir="auto">int main()<br />
{<br />
my_putchar('H');<br />
my_putchar('e');<br />
my_putchar('l');<br />
my_putchar('l');<br />
my_putchar('o');<br />
my_putchar('W');<br />
my_putchar('o');<br />
my_putchar('r');<br />
my_putchar('l');<br />
my_putchar('d');<br />
}&lt;/pre&gt;<br />
&lt;p&gt;On compile tout ça, et on obtient un joli "HelloWorld"!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;III - Les variables de type char[]&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;<br />
Nous allons à présent stocker notre chaine de caractères "HelloWorld" dans un tableau de Char, puis nous allons l'afficher:&lt;br/&gt;<br />
 &lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint"&gt;<br />
void my_putchar(char c)<br />
{<br />
write(1, &amp;c, 1);<br />
}</p>
<p dir="auto">int main()<br />
{<br />
char mon_mot[] = "HelloWorld";</p>
<p dir="auto">my_putchar(mon_mot[0]); my_putchar(mon_mot[1]); my_putchar(mon_mot[2]); my_putchar(mon_mot[3]); my_putchar(mon_mot[4]); my_putchar(mon_mot[5]); my_putchar(mon_mot[6]); my_putchar(mon_mot[7]); my_putchar(mon_mot[8]); my_putchar(mon_mot[9]);<br />
}&lt;/pre&gt;<br />
&lt;p&gt;En compilant nous obtenons exactement le même résultat de précédemment.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;IV - Les includes.&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;<br />
Avant de commencer avec les includes, sachez que tout ce qui commence par un # sera une commande interprétée par le compilateur.&lt;br/&gt;&lt;br/&gt;<br />
Les includes permettent d'inclure (logique) le contenu d'un fichier. Il est utilisé pour inclure les .h (headers) dans les fichiers.&lt;br/&gt;&lt;br/&gt;<br />
Par exemple, la fonction "write" est disponible car le système nous la propose, néanmoins, elle n'est pas déclarée (ce qui provoque un "warning" dans votre code) pour remédier au warning, il suffira d'inclure le header unistd.h. comme ceci:&lt;br/&gt;<br />
 &lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint"&gt;<br />
#include &lt;unistd.h&gt;&lt;/pre&gt;<br />
&lt;p&gt;Les includes system se font avec des &lt;&gt; alors que les includes locales se font avec des "".&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />
Ainsi ma fonction est déclarée, le compilateur sait qu'elle existe, je peux donc l'utiliser sans soucis!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;V- Allons un peux plus loin.&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />
A present, affichons notre HelloWorld avec une boucle (je vous laisse la joie de découvrir le fonctionnement de la boucle en cherchant sur le net):&lt;br/&gt;<br />
 &lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint"&gt;<br />
void my_putchar(char c)<br />
{<br />
write(1, &amp;c, 1);<br />
}</p>
<p dir="auto">int main()<br />
{<br />
char mon_mot[] = "HelloWorld";</p>
<p dir="auto">int i = 0;<br />
while(mon_mot[i] != '\0')<br />
{<br />
my_putchar(mon_mot[i]);<br />
i = i + 1;<br />
}<br />
}&lt;/pre&gt;<br />
&lt;p&gt;Voila! Nous venons de réafficher "HelloWorld". Pourquoi je vérifie la valeur de "mon_mot" dans le while? C'est très simple. Ce qui définit la fin d'une chaine de caractères, c'est le caractère '\0' qui est égal à 0. Or, si un while reçoit 0 en paramètre, il s'arrête. Le while va donc continuer, jusqu'à la fin de la chaine!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />
Voilà, je ne vous en dirrais pas plus sur ce cours, le but étant de vous donner envie d'en savoir plus par vous même.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />
A bientôt pour le prochain cours!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />
Cours écrit par AlexMog. Contact: alexmog [at] live [point] fr&lt;br/&gt;<br />
 &lt;/p&gt;</p>
]]></description><link>https://melinyel.net/topic/170/cours-1-introduction-au-c</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 04:50:30 GMT</lastBuildDate><atom:link href="https://melinyel.net/topic/170.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Mar 2014 13:10:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Cours #1 - Introduction au C on Thu, 22 May 2014 00:18:52 GMT]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;"Traduction" de my_putchar sur Windows :&lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint lang-auto"&gt;<br />
#include &lt;Windows.h&gt;<br />
 <br />
...<br />
 <br />
void my_putchar(char c)<br />
{<br />
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);<br />
WriteFile(hOutput, &amp;c, 1, NULL, NULL);<br />
}<br />
&lt;/pre&gt;</p>
]]></description><link>https://melinyel.net/post/7874</link><guid isPermaLink="true">https://melinyel.net/post/7874</guid><dc:creator><![CDATA[davydavek]]></dc:creator><pubDate>Thu, 22 May 2014 00:18:52 GMT</pubDate></item><item><title><![CDATA[Reply to Cours #1 - Introduction au C on Tue, 18 Mar 2014 23:29:38 GMT]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;Excellent tutoriel, du très bon boulot d'epitechien. <img src="https://melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=d0a000c383a" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /> &lt;/p&gt;</p>
]]></description><link>https://melinyel.net/post/2518</link><guid isPermaLink="true">https://melinyel.net/post/2518</guid><dc:creator><![CDATA[Azad]]></dc:creator><pubDate>Tue, 18 Mar 2014 23:29:38 GMT</pubDate></item><item><title><![CDATA[Reply to Cours #1 - Introduction au C on Mon, 17 Mar 2014 17:41:44 GMT]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;Ah les fameux cours de Monsieur AlexMog <img src="https://melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=d0a000c383a" class="not-responsive emoji emoji-android emoji--smile" style="height:23px;width:auto;vertical-align:middle" title=":D" alt="😄" /> &lt;/p&gt;</p>
]]></description><link>https://melinyel.net/post/2275</link><guid isPermaLink="true">https://melinyel.net/post/2275</guid><dc:creator><![CDATA[Soulalex]]></dc:creator><pubDate>Mon, 17 Mar 2014 17:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to Cours #1 - Introduction au C on Sun, 16 Mar 2014 20:38:40 GMT]]></title><description><![CDATA[<p dir="auto">&lt;blockquote class="ipsQuote" data-cite="Cyrion" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="1934" data-ipsquote-contentid="170" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1394990539" data-ipsquote-username="Cyrion"&gt;&lt;div&gt;<br />
&lt;div&gt;<br />
&lt;p&gt;Nah mais, je veux dire seulement citer les équivalent sous Windows , genre unistd.h -&gt; stdio.h &lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;&lt;/blockquote&gt;</p>
]]></description><link>https://melinyel.net/post/2003</link><guid isPermaLink="true">https://melinyel.net/post/2003</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Sun, 16 Mar 2014 20:38:40 GMT</pubDate></item><item><title><![CDATA[Reply to Cours #1 - Introduction au C on Sun, 16 Mar 2014 17:22:19 GMT]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;Nah mais, je veux dire seulement citer les équivalent sous Windows , genre unistd.h -&gt; stdio.h &lt;/p&gt;</p>
]]></description><link>https://melinyel.net/post/1934</link><guid isPermaLink="true">https://melinyel.net/post/1934</guid><dc:creator><![CDATA[Cyrion]]></dc:creator><pubDate>Sun, 16 Mar 2014 17:22:19 GMT</pubDate></item><item><title><![CDATA[Reply to Cours #1 - Introduction au C on Sun, 16 Mar 2014 16:21:00 GMT]]></title><description><![CDATA[<p dir="auto">&lt;blockquote class="ipsQuote" data-cite="Cyrion" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="1887" data-ipsquote-contentid="170" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1394986623" data-ipsquote-username="Cyrion"&gt;&lt;div&gt;<br />
&lt;div&gt;<br />
&lt;p&gt;Tu pourrais aussi montrer s'que ça donne sous windows, car j'imagine que la pluspart des gens qui vont lire ce tuto vont être sur Windows. <img src="https://melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f61b.png?v=d0a000c383a" class="not-responsive emoji emoji-android emoji--stuck_out_tongue" style="height:23px;width:auto;vertical-align:middle" title=":P" alt="😛" /> &lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;&lt;/blockquote&gt;<br />
&lt;p&gt;Comme je l'ai dis sur mon cours d'introduction, je n'utiliserais que Linux pour mes exemples <img src="https://melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=d0a000c383a" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" />  A vous de faire vos tests sur Windows <img src="https://melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=d0a000c383a" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /> &lt;/p&gt;</p>
]]></description><link>https://melinyel.net/post/1892</link><guid isPermaLink="true">https://melinyel.net/post/1892</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Sun, 16 Mar 2014 16:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to Cours #1 - Introduction au C on Sun, 16 Mar 2014 16:17:03 GMT]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;Tu pourrais aussi montrer s'que ça donne sous windows, car j'imagine que la pluspart des gens qui vont lire ce tuto vont être sur Windows. <img src="https://melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f61b.png?v=d0a000c383a" class="not-responsive emoji emoji-android emoji--stuck_out_tongue" style="height:23px;width:auto;vertical-align:middle" title=":P" alt="😛" /> &lt;/p&gt;</p>
]]></description><link>https://melinyel.net/post/1887</link><guid isPermaLink="true">https://melinyel.net/post/1887</guid><dc:creator><![CDATA[Cyrion]]></dc:creator><pubDate>Sun, 16 Mar 2014 16:17:03 GMT</pubDate></item></channel></rss>