<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Coder-Studio &#187; windows</title>
	<atom:link href="http://www.coder-studio.com/blog/tag/windows/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.coder-studio.com/blog</link>
	<description></description>
	<lastBuildDate>Wed, 31 Mar 2010 00:00:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Les Bases du langage C</title>
		<link>http://www.coder-studio.com/blog/les-bases-du-langage-c/</link>
		<comments>http://www.coder-studio.com/blog/les-bases-du-langage-c/#comments</comments>
		<pubDate>Sat, 30 Jul 2005 16:29:13 +0000</pubDate>
		<dc:creator>Funto</dc:creator>
				<category><![CDATA[C & C++]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[débutant]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://r19649.ovh.net/cs/blog/?p=15</guid>
		<description><![CDATA[Introduction
Je suppose que si vous êtes arrivé jusqu&#8217;à cette page web, soit vous vous êtes perdu soit vous voulez vraiment apprendre à programmer en langage C ^^. Si vous êtes dans ce cas, bienvenue chez les programmeurs ! Alors, qu&#8217;est-ce que le C ? Le C est un langage de programmation; on écrit un programme [...]]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: justify;">Introduction</h2>
<p style="text-align: justify;">Je suppose que si vous êtes arrivé jusqu&#8217;à cette page web, soit vous vous êtes perdu soit vous voulez vraiment apprendre à programmer en langage C ^^. Si vous êtes dans ce cas, bienvenue chez les programmeurs ! Alors, qu&#8217;est-ce que le C ? Le C est un langage de programmation; on écrit un programme dans ce langage, et ensuite le texte que vous avez tapé est converti par un &laquo;&nbsp;compilateur&nbsp;&raquo; en langage binaire 0 et 1 compréhensible par le processeur de votre ordinateur (un fichier .exe). Donc, pour commencer, il vous faut un compilateur et un éditeur (le bloc-notes peut suffire comme éditeur mais il y a beaucoup mieux <img src='http://www.coder-studio.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Un environnement qui intègre et compilateur et éditeur est appelé IDE (Integrated Development Environment). La plupart de ceux que je vais vous proposer sont des compilateurs C++. Qu&#8217;est-ce que le C++? C&#8217;est un autre langage, mais qui en réalité est compatible avec le C (un programme écrit en C peut se compiler avec un compilateur C++ mais pas l&#8217;inverse). Le C++, c&#8217;est donc tout le C, mais avec des notions supplémentaires (templates, objets, surcharge de fonctions&#8230;). Le C et le C++ sont définis par les normes ANSI/ISO (ce sont des organismes de normalisation, en gros ils donnent les règles que doit respecter un compilateur pour pouvoir être présenté comme un compilateur C ANSI ou C++ ANSI).</p>
<p style="text-align: justify;"><span id="more-15"></span>Voici donc les IDEs majeurs (sous Windows) :</p>
<p style="text-align: justify;"><strong>Visual C++ de Microsoft</strong> : il est payant, très utilisé, et est compatible avec la plupart des librairies (j&#8217;expliquerai plus tard). Il est spécialement pratique à utilisé accompagné de Visual Assist (payant). La version 6.0 est &laquo;&nbsp;indépendante&nbsp;&raquo; alors que la version 7.0 est intégrée à Visual Studio.NET (il vous faudra un PC bien puissant pour utiliser celle-ci&#8230;)</p>
<p style="text-align: justify;"><strong>Dev-C++ de Bloodshed Software</strong> : il est gratuit et sous licence GPL open source, vous pouvez le trouver sur <a href="http://www.bloodshed.net">http://www.bloodshed.net</a>. Cet IDE s&#8217;appuie sur le compilateur MinGW, qui est une version Windows du compilateur pour Linux GCC. Cet environnement est très bien aussi et est aussi compatible avec la plupart des librairies (notamment celles que nous utiliserons plus tard). Prenez la bêta 5.</p>
<p style="text-align: justify;"><strong>Borland C++Builder</strong> : il est payant (trop d&#8217;ailleurs ?) mais est fourni avec la librairie VCL, ce qui lui donne un avantage non négligeable sur les autres (en gros il permet de créer des interfaces graphiques (fenêtres, boutons&#8230; de Windows) très facilement). Cependant, Borland met à disposition de tous le compilateur de la version 5.5 de C++Builder, sans l&#8217;environnement de développement. Qu niveau des librairies, il me semble qu&#8217;il est possible d&#8217;importer celles de Visual C++.</p>
<p style="text-align: justify;">Cf <a title="http://www.borland.com/products/downloads/download_cbuilder.html" href="http://www.borland.com/products/downloads/download_cbuilder.html">http://www.borland.com/products/downloads/download_cbuilder.html</a></p>
<p style="text-align: justify;"><strong>Borland C++BuilderX </strong> : c&#8217;est le tout nouvel IDE de Borland, qui semble très prometteur. Vous pouvez l&#8217;associer à n&#8217;importe quel compilateur (MinGW, le compilateur de Borland, celui de Visual C++&#8230;)</p>
<p style="text-align: justify;"><strong>LCC-Win32</strong> : c&#8217;est un vieil IDE reposant sur le compilateur LCC; il est gratuit mais n&#8217;est plus développé et ne compile que le C (pas le C++). Pour les librairies, c&#8217;est comme pour Borland, on peut importer celles de Visual C++.</p>
<p style="text-align: justify;">Il existe encore d&#8217;autres IDEs/compilateurs C++ (Digital Mars C++, Symantec C++, Watcom C++, CodeWarrior&#8230;), mais je vous ai cité les principaux compilateurs pour Windows (Win32). Cependant, il y a aussi des compilateurs pour MS-DOS (Turbo C++, DJGPP) mais ceux-ci ne seront pas compatibles dès lors que nous voudrons utiliser des librairies pour Win32. Cependant, vous pouvez très bien les utiliser pour ce tutorial sur le langage C, vu qu&#8217;ils respectent les normes ANSI/ISO.</p>
<p style="text-align: justify;">Dans la suite de ce tutorial, je considérerai que vous utilisez Visual C++ 6.0 ou Dev-C++ 5 bêta. Pour les autres, les explications doivent être à peu près semblables.</p>
<h2 style="text-align: justify;">II) Premier programme</h2>
<p style="text-align: justify;">Bon, c&#8217;est pas tout ça, mais faudrait commencer ! <img src='http://www.coder-studio.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Ouvrez votre IDE, et créez un nouveau &laquo;&nbsp;projet&nbsp;&raquo; (un projet rassemble tout ce qui concerne la création d&#8217;un programme) (Fichier -&gt;Nouveau -&gt; Projet ou File -&gt;New -&gt;Onglet Project, enfin vous connaissez <img src='http://www.coder-studio.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Le projet sera de type Win32 Console Application sous Visual C++ 6.0 et Console Application (langage C) sous Dev-C++. Donnez-lui un nom (&laquo;&nbsp;Hello&nbsp;&raquo;) et cliquez sur OK. Sous Visual C++ 6.0, choisissez &laquo;&nbsp;An empty Project&nbsp;&raquo;.</p>
<p style="text-align: justify;">Maintenant que votre projet est créé et ouvert, vous devez y ajouter un fichier &laquo;&nbsp;hello.c&nbsp;&raquo; (sous Dev-C++ vous avez déjà un fichier main.c, faites un clic droit sur l&#8217;onglet et choisissez Fermer; n&#8217;enregistrez pas). Pour cela, sous Visual C++ 6.0 ouvrez l&#8217;onglet File View et faites File -&gt;New -&gt; Onglet Files -&gt;C++ Source File. Appelez-le hello.c. Si vous regardez dans l&#8217;arborescence de l&#8217;onglet File View vous verrez que le fichier hello.c est bien ajouté dans les Source Files. Les dossiers que vous voyez n&#8217;existent pas réellement, ils permettent de séparer les fichiers pour pouvoir mieux les repérer. Pour les utilisateurs de Dev-C++ : faites Fichier -&gt; Nouveau -&gt; Fichier Source -&gt; Ajouter au projet? Yes -&gt; enregistrez-le sous hello.c.</p>
<p>Bon, si vous avez suivi jusque là, on peut enfin commencer à coder ! Recopiez dans hello.c ceci (en respectant majuscules/minuscules !) :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p15code3'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p153"><td class="code" id="p15code3"><pre class="c" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// hello.c</span>
<span style="color: #339933;">#include &quot;stdio.h&quot;;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Hello World !&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   getchar<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p style="text-align: justify;">Bon, ne vous effrayez pas, vous comprendrez tout ça ?. Maintenant, sous Dev-C++ faites Exécuter -&gt;Compiler et exécuter. Sous Visual C++, vous devez voir dans une barre d&#8217;outils &laquo;&nbsp;Win32 Debug&nbsp;&raquo; : changez ça en &laquo;&nbsp;Win32 Release&nbsp;&raquo;; ça permettra au compilateur de ne pas inclure d&#8217;informations de débogage dans l&#8217;exécutable final : votre .exe sera moins gros. Faites Build -&gt; Build Hello.exe, puis cliquez sur le point d&#8217;exclamation rouge pour commencer l&#8217;exécution de votre programme.</p>
<p style="text-align: justify;">Que fait votre programme? Il affiche dans une console MS-DOS (bien que le programme soit un programme Win32, je le rappelle) &laquo;&nbsp;Hello World !&nbsp;&raquo; puis attend que vous appuyez sur Entrée pour quitter. Aux utilisateurs de Visual C++ : Vous verrez écrit &laquo;&nbsp;Press any key to continue&nbsp;&raquo;, ceci est dû à l&#8217;environnement, si vous exécutez votre .exe depuis l&#8217;explorateur Windows ce message ne s&#8217;affiche pas.</p>
<p style="text-align: justify;">Bon, maintenant on passe à l&#8217;explication. Avant tout, il faut savoir que l&#8217;exécution du programme est séquentielle : les lignes que vous tapez sont des instructions, et celles-ci sont exécutées les unes après les autres, dans l&#8217;ordre dans lequel vous les avez écrit.</p>
<p style="text-align: justify;">Commençons par la 1ère ligne : &laquo;&nbsp;//Hello.c&nbsp;&raquo;. Vous pouvez très bien l&#8217;enlever, le programme se compilera de la même façon : c&#8217;est un commentaire. Vous pouvez marquer ce que vous voulez à la place de &laquo;&nbsp;Hello.c&nbsp;&raquo;, je marque cela juste pour connaître le nom du fichier. En C et en C++, tout ce qui suit &laquo;&nbsp;//&nbsp;&raquo; jusqu&#8217;à la fin de la ligne est un commentaire, de même que tout ce qui est placé entre &laquo;&nbsp;/*&nbsp;&raquo; et &laquo;&nbsp;*/&nbsp;&raquo; (sans les guillemets).</p>
<p style="text-align: justify;">Voyons la 2ème ligne: &laquo;&nbsp;#include&lt;stdio.h&gt;&nbsp;&raquo;. Cette ligne n&#8217;est pas vraiment une instruction : c&#8217;est une directive du préprocesseur comme toutes celles débutant par un #. Ne vous effrayez pas ! Bon, pour simplifier, on dira que c&#8217;est elle qui vous permet d&#8217;écrire printf et getchar par la suite sans provoquer d&#8217;erreur à la compilation. Je rentrerai dans les détails plus tard, pour l&#8217;instant sachez qu&#8217;il faut la placer en début de fichier.</p>
<p style="text-align: justify;">Maintenant, la 3ème ligne : &laquo;&nbsp;int main()&nbsp;&raquo;. Celle-ci dénote le début du bloc principal : c&#8217;est là que commencera l&#8217;exécution de votre programme, tout ce qui suit main() est exécuté en 1er. Un bloc d&#8217;instructions est délimité par { et }. Notre programme ne comporte qu&#8217;un seul bloc d&#8217;instructions.</p>
<p style="text-align: justify;">&laquo;&nbsp;printf(&laquo;&nbsp;Hello World !&nbsp;&raquo;);&nbsp;&raquo; : ceci est notre 1ère instruction. printf commande l&#8217;écriture à l&#8217;écran de texte. On dit que printf est une fonction, et que la ligne &laquo;&nbsp;printf(&laquo;&nbsp;Hello World !&nbsp;&raquo;);&nbsp;&raquo; est un appel à la fonction printf. Un appel de fonction est toujours composé du nom de la fonction (printf), d&#8217;une parenthèse ouvrante, d &#8216; &laquo;&nbsp;argument(s)&nbsp;&raquo; (le &laquo;&nbsp;Hello World !&nbsp;&raquo;) et d&#8217;une parenthèse fermante. Et le point-virgule? Il délimite la fin d&#8217;une instruction. L&#8217;oubli d&#8217;un point-virgule est une erreur très fréquente en programmation en C, et elle est dure à repérer pour les débutants : faites attention !</p>
<p style="text-align: justify;">&nbsp;&raquo; getchar();&nbsp;&raquo; : ceci est un autre appel à une fonction, la fonction &laquo;&nbsp;getchar&nbsp;&raquo;. Vous remarquerez qu&#8217;on ne lui passe pas d&#8217;arguments, car elle n&#8217;en a pas besoin; c&#8217;est elle qui attend l&#8217;appui sur la touche Entrée. En effet, recompilez votre programme sans cette ligne (mettez-la en commentaire) :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p15code4'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p154"><td class="code" id="p15code4"><pre class="c" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// hello.c</span>
<span style="color: #339933;">#include &quot;stdio.h&quot;;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span>
<span style="color: #009900;">&#123;</span>
   <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Hello World !&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #666666; font-style: italic;">//  getchar();    // La ligne est mise en commentaire, elle n'est pas compilée.</span>
   <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p style="text-align: justify;">A l&#8217;exécution du programme (hors IDE, je veux dire pour les utilisateurs de VC++, ouvrez votre exécutable depuis l&#8217;explorateur Windows), le programme quitte avant que vous ayez pu lire quoi que ce soit ! Voilà pourquoi il vous faut rajouter l&#8217;appel à la fonction getchar().</p>
<p style="text-align: justify;">Enfin, le &laquo;&nbsp;return 0;&nbsp;&raquo;, placé dans le bloc main(), indique la sortie du programme (il quitte). Si vous le placez avant getchar() par exemple, getchar() ne sera pas exécuté car le programme aura quitté avant. Le } délimite la fin du bloc main (principal).</p>
<p style="text-align: justify;">Ouf ! Voilà, vous avez terminé le 1er tutorial sur la programmation en C, maintenant essayez de changer l&#8217;ordre des lignes, de rajouter des appels à printf avec un texte différent (à oui, au fait, j&#8217;ai oublié pour les guillemets dans printf : ils montrent que l&#8217;argument passé à printf est une chaîne de caractères, un texte quoi, vous verrez ça plus en détail + tard, encore une fois <img src='http://www.coder-studio.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<p style="text-align: justify;">Pour toute remarque, conseil, correction : funto66 at gmail.com <img src='http://www.coder-studio.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<blockquote>
<p style="text-align: justify;">Cet article provient du tutorial publié par Funto le 30/07/2005 sur l&#8217;ancien site de Coder-Studio.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.coder-studio.com/blog/les-bases-du-langage-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
