<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//FR"> <!--Converted with LaTeX2HTML 97.1 (release) (July 13th, 1997)  by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan * with significant contributions from:   Jens Lippman, Marek Rouchal, Martin Wilck and others --> <HTML><BLOCKQUOTE><img src="./icons.gif/logo.gif" ALIGN=right></A>  <HEAD> <TITLE>ANSI_C</TITLE> <META NAME="description" CONTENT="ANSI_C"> <META NAME="keywords" CONTENT="Introduction_ANSI_C"> <META NAME="resource-type" CONTENT="document"> <META NAME="distribution" CONTENT="global"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso_8859_1"> <LINK REL="STYLESHEET" HREF="Introduction_ANSI_C.css"> <LINK REL="next" HREF="node1.htm"> </HEAD> <BODY BACKGROUND="./icons.gif/marge.gif" TEXT=#000000 LINK=#FF0000 VLINK=#1809BB > <!--Navigation Panel--> <A NAME="tex2html33"  HREF="node1.htm"> <IMG WIDTH="77" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"  SRC="./icons.gif/next_motif.gif"></A>  <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"  SRC="./icons.gif/up_motif_gr.gif">  <IMG WIDTH="96" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"  SRC="./icons.gif/previous_motif_gr.gif">  <A NAME="tex2html31"  HREF="node1.htm"> <IMG WIDTH="96" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"  SRC="./icons.gif/contents_motif.gif"></A>  <A NAME="tex2html32"  HREF="node174.htm"> <IMG WIDTH="59" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"  SRC="./icons.gif/index_motif.gif"></A>  <BR> <B> Suivant:</B> <A NAME="tex2html34"  HREF="node1.htm">Table des mati&egrave;res</A><HR> <BR> <BR> <!--End of Navigation Panel--> <BR> <P><BIG> <DIV ALIGN="CENTER"> Bernard Cassagne </DIV> <P> <BR> <BR> <FONT SIZE="+4"> <DIV ALIGN="CENTER"> Introduction au langage C <BR> <BR> <BR> <BIG>norme <font size=-1><small>ISO</small></font> / <font size=-1><small>ANSI</small></font></BIG> </DIV> <P> <BR> <BR> </FONT></BIG> <DIV ALIGN="CENTER"> Laboratoire <font size=-1><small>CLIPS</small></font> <BR> <BR> Universit Joseph Fourier &amp; <font size=-1><small>CNRS</small></font> <BR> <BR> Grenoble </DIV> <P>   <BR> <BR> <BR> <BR> Copyright 1997 Bernard Cassagne <BR> Ce texte est copyright et n'est pas dans le domaine public. Sa reproduction est cependant autorise  condition de respecter les conditions suivantes&nbsp;: <UL> <LI> Si ce document est reproduit pour les besoins personnels du reproducteur, toute forme de reproduction (totale ou partielle) est autorise. <LI> Si ce document est reproduit dans le but d'tre distribu  de tierces personnes&nbsp;:    <UL> <LI> il devra tre reproduit dans son intgralit sans aucune    modification. Cette notice de copyright devra donc tre prsente. <LI> il ne devra pas tre vendu.    Cependant, dans le seul cas d'un enseignement gratuit, une participation    aux frais de reproduction pourra tre demande, mais elle devra tre    infrieure au prix du papier et de l'encre composant le document.    </UL></UL> Toute reproduction sortant du cadre prcis ci-dessus est interdite sans accord pralable de l'auteur. <P> Un fichier PostScript contenant ce document est librement accessible par l'<font size=-1><small>URL</small></font>&nbsp;: <BR> <TT>ftp://ftp.imag.fr/pub/DOC.UNIX/C/Introduction_ANSI_C.ps</TT> <BR> <BR> <BR> <BR> Version de ce document&nbsp;: 2.0 de juillet 1997 <P> <BR><HR> <!--Table of Child-Links--> <A NAME="CHILD_LINKS">&#160;</A> <UL> <LI><A NAME="tex2html35"  HREF="node1.htm#SECTION00100000000000000000"> Table des mati&egrave;res</A> <LI><A NAME="tex2html36"  HREF="node2.htm#SECTION00200000000000000000"> Avant-propos</A> <UL> <LI><A NAME="tex2html37"  HREF="node3.htm#SECTION00210000000000000000"> Au sujet de l'auteur</A> <LI><A NAME="tex2html38"  HREF="node4.htm#SECTION00220000000000000000"> Au sujet de ce manuel</A> <LI><A NAME="tex2html39"  HREF="node5.htm#SECTION00230000000000000000"> Les notions supposes connues du lecteur</A> <LI><A NAME="tex2html40"  HREF="node6.htm#SECTION00240000000000000000"> Un mot sur les problmes de traduction</A> <LI><A NAME="tex2html41"  HREF="node7.htm#SECTION00250000000000000000"> Conventions syntaxiques</A> </UL> <LI><A NAME="tex2html42"  HREF="node8.htm#SECTION00300000000000000000"> Les bases</A> <UL> <LI><A NAME="tex2html43"  HREF="node9.htm#SECTION00310000000000000000"> Les versions du langage C</A> <LI><A NAME="tex2html44"  HREF="node10.htm#SECTION00320000000000000000"> Langage et bibliothque standard</A> <LI><A NAME="tex2html45"  HREF="node11.htm#SECTION00330000000000000000"> Les phases de compilation</A> <LI><A NAME="tex2html46"  HREF="node12.htm#SECTION00340000000000000000"> Les jeux de caractres</A> <LI><A NAME="tex2html47"  HREF="node13.htm#SECTION00350000000000000000"> Les units lexicales</A> <UL> <LI><A NAME="tex2html48"  HREF="node13.htm#SECTION00351000000000000000"> Les mots-cls</A> <UL> <LI><A NAME="tex2html49"  HREF="node13.htm#SECTION00351100000000000000"> Attention</A> </UL> <LI><A NAME="tex2html50"  HREF="node13.htm#SECTION00352000000000000000"> Les identificateurs</A> </UL> <LI><A NAME="tex2html51"  HREF="node14.htm#SECTION00360000000000000000"> Les commentaires</A> <UL> <LI><A NAME="tex2html52"  HREF="node14.htm#SECTION00360100000000000000"> Attention</A> </UL> <LI><A NAME="tex2html53"  HREF="node15.htm#SECTION00370000000000000000"> Les types de base</A> <UL> <LI><A NAME="tex2html54"  HREF="node15.htm#SECTION00371000000000000000"> Les caractres</A> <UL> <LI><A NAME="tex2html55"  HREF="node15.htm#SECTION00371100000000000000"> Attention</A> </UL> <LI><A NAME="tex2html56"  HREF="node15.htm#SECTION00372000000000000000"> Les entiers</A> <LI><A NAME="tex2html57"  HREF="node15.htm#SECTION00373000000000000000"> Les flottants</A> </UL> <LI><A NAME="tex2html58"  HREF="node16.htm#SECTION00380000000000000000"> Les constantes</A> <UL> <LI><A NAME="tex2html59"  HREF="node16.htm#SECTION00381000000000000000"> Les constantes entires</A> <UL> <LI><A NAME="tex2html60"  HREF="node16.htm#SECTION00381100000000000000"> Attention</A> </UL> <LI><A NAME="tex2html61"  HREF="node16.htm#SECTION00382000000000000000"> Les constantes caractres</A> <UL> <LI><A NAME="tex2html62"  HREF="node16.htm#SECTION00382100000000000000"> Les cas particuliers</A> <LI><A NAME="tex2html63"  HREF="node16.htm#SECTION00382200000000000000"> Note</A> </UL> <LI><A NAME="tex2html64"  HREF="node16.htm#SECTION00383000000000000000"> Les constantes flottantes</A> </UL> <LI><A NAME="tex2html65"  HREF="node17.htm#SECTION00390000000000000000"> Les chanes de caractres littrales</A> <LI><A NAME="tex2html66"  HREF="node18.htm#SECTION003100000000000000000"> Les constantes nommes</A> <UL> <LI><A NAME="tex2html67"  HREF="node18.htm#SECTION003101000000000000000"> Les #define</A> <UL> <LI><A NAME="tex2html68"  HREF="node18.htm#SECTION003101100000000000000"> Attention</A> </UL> <LI><A NAME="tex2html69"  HREF="node18.htm#SECTION003102000000000000000"> Les numrations</A> <LI><A NAME="tex2html70"  HREF="node18.htm#SECTION003103000000000000000"> Remarque</A> </UL> <LI><A NAME="tex2html71"  HREF="node19.htm#SECTION003110000000000000000"> Dclarations de variables ayant un type de base</A> <LI><A NAME="tex2html72"  HREF="node20.htm#SECTION003120000000000000000"> Les oprateurs les plus usuels</A> <UL> <LI><A NAME="tex2html73"  HREF="node20.htm#SECTION003121000000000000000"> L'affectation</A> <LI><A NAME="tex2html74"  HREF="node20.htm#SECTION003122000000000000000"> L'addition</A> <LI><A NAME="tex2html75"  HREF="node20.htm#SECTION003123000000000000000"> La soustraction</A> <LI><A NAME="tex2html76"  HREF="node20.htm#SECTION003124000000000000000"> La multiplication</A> <LI><A NAME="tex2html77"  HREF="node20.htm#SECTION003125000000000000000"> La division</A> <LI><A NAME="tex2html78"  HREF="node20.htm#SECTION003126000000000000000"> L'oprateur modulo</A> <LI><A NAME="tex2html79"  HREF="node20.htm#SECTION003127000000000000000"> Les oprateurs de comparaison</A> </UL> <LI><A NAME="tex2html80"  HREF="node21.htm#SECTION003130000000000000000"> Les instructions les plus usuelles</A> <UL> <LI><A NAME="tex2html81"  HREF="node21.htm#SECTION003131000000000000000"> Instruction expression</A> <UL> <LI><A NAME="tex2html82"  HREF="node21.htm#SECTION003131100000000000000"> Remarque</A> </UL> <LI><A NAME="tex2html83"  HREF="node21.htm#SECTION003132000000000000000"> Instruction compose</A> <UL> <LI><A NAME="tex2html84"  HREF="node21.htm#SECTION003132100000000000000"> Remarques sur la syntaxe</A> </UL> <LI><A NAME="tex2html85"  HREF="node21.htm#SECTION003133000000000000000"> Instruction <TT>if</TT></A> <UL> <LI><A NAME="tex2html86"  HREF="node21.htm#SECTION003133100000000000000"> Remarques sur la syntaxe</A> <LI><A NAME="tex2html87"  HREF="node21.htm#SECTION003133200000000000000"> Remarques sur la smantique</A> <LI><A NAME="tex2html88"  HREF="node21.htm#SECTION003133300000000000000"> Exemples d'instructions if</A> </UL> </UL> <LI><A NAME="tex2html89"  HREF="node22.htm#SECTION003140000000000000000"> Inclusion de source</A> <LI><A NAME="tex2html90"  HREF="node23.htm#SECTION003150000000000000000"> Les procdures et les fonctions</A> <UL> <LI><A NAME="tex2html91"  HREF="node23.htm#SECTION003151000000000000000"> Dfinition d'une fonction</A> <UL> <LI><A NAME="tex2html92"  HREF="node23.htm#SECTION003151100000000000000"> Exemple</A> <LI><A NAME="tex2html93"  HREF="node23.htm#SECTION003151200000000000000"> Instruction <TT>return</TT></A> <LI><A NAME="tex2html94"  HREF="node23.htm#SECTION003151300000000000000"> Les paramtres formels</A> <LI><A NAME="tex2html95"  HREF="node23.htm#SECTION003151400000000000000"> Attention</A> </UL> <LI><A NAME="tex2html96"  HREF="node23.htm#SECTION003152000000000000000"> Appel d'une fonction</A> <UL> <LI><A NAME="tex2html97"  HREF="node23.htm#SECTION003152100000000000000"> Attention</A> </UL> <LI><A NAME="tex2html98"  HREF="node23.htm#SECTION003153000000000000000"> Les procdures</A> <UL> <LI><A NAME="tex2html99"  HREF="node23.htm#SECTION003153100000000000000"> Exemple</A> <LI><A NAME="tex2html100"  HREF="node23.htm#SECTION003153200000000000000"> Problme de vocabulaire</A> </UL> <LI><A NAME="tex2html101"  HREF="node23.htm#SECTION003154000000000000000"> Fonctions imbriques</A> <LI><A NAME="tex2html102"  HREF="node23.htm#SECTION003155000000000000000"> Rcursivit</A> <LI><A NAME="tex2html103"  HREF="node23.htm#SECTION003156000000000000000"> Rfrence  une fonction externe</A> <LI><A NAME="tex2html104"  HREF="node23.htm#SECTION003157000000000000000"> Comprendre la documentation de la bibliothque standard</A> <LI><A NAME="tex2html105"  HREF="node23.htm#SECTION003158000000000000000"> Les fonctions dans le style K&amp;R</A> <UL> <LI><A NAME="tex2html106"  HREF="node23.htm#SECTION003158100000000000000"> Remarque</A> </UL> </UL> <LI><A NAME="tex2html107"  HREF="node24.htm#SECTION003160000000000000000"> Impression formatte</A> <UL> <LI><A NAME="tex2html108"  HREF="node24.htm#SECTION003160100000000000000"> Fichier d'include</A> </UL> <LI><A NAME="tex2html109"  HREF="node25.htm#SECTION003170000000000000000"> Structure d'un programme</A> <LI><A NAME="tex2html110"  HREF="node26.htm#SECTION003180000000000000000"> Terminaison d'un programme</A> <LI><A NAME="tex2html111"  HREF="node27.htm#SECTION003190000000000000000"> Mise en <IMG WIDTH="13" HEIGHT="8" ALIGN="BOTTOM" BORDER="0"  SRC="img9.gif"  ALT="\oe  ">uvre du compilateur C sous UNIX</A> <LI><A NAME="tex2html112"  HREF="node28.htm#SECTION003200000000000000000"> Exercice</A> <LI><A NAME="tex2html113"  HREF="node29.htm#SECTION003210000000000000000"> Rcration</A> </UL> <LI><A NAME="tex2html114"  HREF="node30.htm#SECTION00400000000000000000"> Les tableaux</A> <UL> <LI><A NAME="tex2html115"  HREF="node31.htm#SECTION00410000000000000000"> Les tableaux</A> <UL> <LI><A NAME="tex2html116"  HREF="node31.htm#SECTION00411000000000000000"> Dclaration de tableaux dont les lments ont un type de base</A> <LI><A NAME="tex2html117"  HREF="node31.htm#SECTION00412000000000000000"> Initialisation d'un tableau</A> <UL> <LI><A NAME="tex2html118"  HREF="node31.htm#SECTION00412100000000000000"> Cas particulier des tableaux de caractres</A> </UL> <LI><A NAME="tex2html119"  HREF="node31.htm#SECTION00413000000000000000"> Rfrence  un lment d'un tableau</A> <LI><A NAME="tex2html120"  HREF="node31.htm#SECTION00414000000000000000"> Chanes et tableaux de caractres</A> </UL> <LI><A NAME="tex2html121"  HREF="node32.htm#SECTION00420000000000000000"> Les instructions itratives</A> <UL> <LI><A NAME="tex2html122"  HREF="node32.htm#SECTION00421000000000000000"> Instruction <TT>for</TT></A> <UL> <LI><A NAME="tex2html123"  HREF="node32.htm#SECTION00421100000000000000"> Remarques</A> <LI><A NAME="tex2html124"  HREF="node32.htm#SECTION00421200000000000000"> Exemple de boucle <TT>for</TT></A> </UL> <LI><A NAME="tex2html125"  HREF="node32.htm#SECTION00422000000000000000"> Instruction <TT>while</TT></A> <LI><A NAME="tex2html126"  HREF="node32.htm#SECTION00423000000000000000"> Instruction <TT>do</TT></A> <LI><A NAME="tex2html127"  HREF="node32.htm#SECTION00424000000000000000"> Instruction <TT>break</TT></A> <UL> <LI><A NAME="tex2html128"  HREF="node32.htm#SECTION00424100000000000000"> Exemple</A> </UL> <LI><A NAME="tex2html129"  HREF="node32.htm#SECTION00425000000000000000"> Instruction <TT>continue</TT></A> <UL> <LI><A NAME="tex2html130"  HREF="node32.htm#SECTION00425100000000000000"> Exemple</A> </UL> </UL> <LI><A NAME="tex2html131"  HREF="node33.htm#SECTION00430000000000000000"> Les oprateurs</A> <UL> <LI><A NAME="tex2html132"  HREF="node33.htm#SECTION00431000000000000000"> Oprateur pr et postincrment</A> <UL> <LI><A NAME="tex2html133"  HREF="node33.htm#SECTION00431100000000000000"> Exemples</A> </UL> <LI><A NAME="tex2html134"  HREF="node33.htm#SECTION00432000000000000000"> Oprateur pr et postdcrment</A> <UL> <LI><A NAME="tex2html135"  HREF="node33.htm#SECTION00432100000000000000"> Exemples</A> </UL> <LI><A NAME="tex2html136"  HREF="node33.htm#SECTION00433000000000000000"> Quelques utilisations typiques de ces oprateurs</A> <UL> <LI><A NAME="tex2html137"  HREF="node33.htm#SECTION00433100000000000000"> Utilisation dans les instructions <I>expression</I></A> <LI><A NAME="tex2html138"  HREF="node33.htm#SECTION00433200000000000000"> Utilisation dans les instructions itratives</A> </UL> <LI><A NAME="tex2html139"  HREF="node33.htm#SECTION00434000000000000000"> Oprateur <I>et logique</I></A> <UL> <LI><A NAME="tex2html140"  HREF="node33.htm#SECTION00434100000000000000"> Remarque sur la smantique</A> <LI><A NAME="tex2html141"  HREF="node33.htm#SECTION00434200000000000000"> Exemples d'utilisation</A> </UL> <LI><A NAME="tex2html142"  HREF="node33.htm#SECTION00435000000000000000"> Oprateur <I>ou logique</I></A> <UL> <LI><A NAME="tex2html143"  HREF="node33.htm#SECTION00435100000000000000"> Exemples</A> </UL> <LI><A NAME="tex2html144"  HREF="node33.htm#SECTION00436000000000000000"> Oprateur <I>non logique</I></A> </UL> <LI><A NAME="tex2html145"  HREF="node34.htm#SECTION00440000000000000000"> Exercice</A> </UL> <LI><A NAME="tex2html146"  HREF="node35.htm#SECTION00500000000000000000"> Les pointeurs</A> <UL> <LI><A NAME="tex2html147"  HREF="node36.htm#SECTION00510000000000000000"> Notion de pointeur</A> <LI><A NAME="tex2html148"  HREF="node37.htm#SECTION00520000000000000000"> Dclarations de variables de type pointeur vers les types de base</A> <LI><A NAME="tex2html149"  HREF="node38.htm#SECTION00530000000000000000"> Type de pointeur gnrique</A> <UL> <LI><A NAME="tex2html150"  HREF="node38.htm#SECTION00530100000000000000"> Note</A> </UL> <LI><A NAME="tex2html151"  HREF="node39.htm#SECTION00540000000000000000"> Oprateur adresse de</A> <LI><A NAME="tex2html152"  HREF="node40.htm#SECTION00550000000000000000"> Oprateur d'indirection</A> <UL> <LI><A NAME="tex2html153"  HREF="node40.htm#SECTION00550100000000000000"> Remarque</A> <LI><A NAME="tex2html154"  HREF="node40.htm#SECTION00550200000000000000"> Devinette</A> </UL> <LI><A NAME="tex2html155"  HREF="node41.htm#SECTION00560000000000000000"> Exercice</A> <LI><A NAME="tex2html156"  HREF="node42.htm#SECTION00570000000000000000"> Pointeurs et oprateurs additifs</A> <UL> <LI><A NAME="tex2html157"  HREF="node42.htm#SECTION00571000000000000000"> Oprateurs <TT>+</TT> et <TT>-</TT></A> <LI><A NAME="tex2html158"  HREF="node42.htm#SECTION00572000000000000000"> Oprateurs <TT>++</TT> et <TT>-</TT></A> </UL> <LI><A NAME="tex2html159"  HREF="node43.htm#SECTION00580000000000000000"> Diffrence de deux pointeurs</A> <LI><A NAME="tex2html160"  HREF="node44.htm#SECTION00590000000000000000"> Exercice</A> <LI><A NAME="tex2html161"  HREF="node45.htm#SECTION005100000000000000000"> Passage de paramtres</A> <UL> <LI><A NAME="tex2html162"  HREF="node45.htm#SECTION005101000000000000000"> Les besoins du programmeur</A> <LI><A NAME="tex2html163"  HREF="node45.htm#SECTION005102000000000000000"> Comment les langages de programmation satisfont ces besoins</A> <LI><A NAME="tex2html164"  HREF="node45.htm#SECTION005103000000000000000"> La stratgie du langage C</A> </UL> <LI><A NAME="tex2html165"  HREF="node46.htm#SECTION005110000000000000000"> Discussion</A> <LI><A NAME="tex2html166"  HREF="node47.htm#SECTION005120000000000000000"> Une dernire prcision</A> <LI><A NAME="tex2html167"  HREF="node48.htm#SECTION005130000000000000000"> Exercice</A> <LI><A NAME="tex2html168"  HREF="node49.htm#SECTION005140000000000000000"> Lecture formatte</A> <UL> <LI><A NAME="tex2html169"  HREF="node49.htm#SECTION005140100000000000000"> Valeur rendue</A> <LI><A NAME="tex2html170"  HREF="node49.htm#SECTION005140200000000000000"> Attention</A> </UL> <LI><A NAME="tex2html171"  HREF="node50.htm#SECTION005150000000000000000"> Les dernires instructions</A> <UL> <LI><A NAME="tex2html172"  HREF="node50.htm#SECTION005151000000000000000"> Instruction <TT>switch</TT></A> <UL> <LI><A NAME="tex2html173"  HREF="node50.htm#SECTION005151100000000000000"> Discussion</A> <LI><A NAME="tex2html174"  HREF="node50.htm#SECTION005151200000000000000"> Remarque</A> </UL> <LI><A NAME="tex2html175"  HREF="node50.htm#SECTION005152000000000000000"> Instruction <TT>goto</TT></A> <LI><A NAME="tex2html176"  HREF="node50.htm#SECTION005153000000000000000"> Instruction nulle</A> <UL> <LI><A NAME="tex2html177"  HREF="node50.htm#SECTION005153100000000000000"> Attention</A> </UL> </UL> <LI><A NAME="tex2html178"  HREF="node51.htm#SECTION005160000000000000000"> Exercice</A> <UL> <LI><A NAME="tex2html179"  HREF="node51.htm#SECTION005161000000000000000"> Commentaire de la solution</A> </UL> <LI><A NAME="tex2html180"  HREF="node52.htm#SECTION005170000000000000000"> Rcration</A> <UL> <LI><A NAME="tex2html181"  HREF="node52.htm#SECTION005171000000000000000"> Rponse de la devinette</A> </UL> </UL> <LI><A NAME="tex2html182"  HREF="node53.htm#SECTION00600000000000000000"> Relations entre tableaux et pointeurs</A> <UL> <LI><A NAME="tex2html183"  HREF="node54.htm#SECTION00610000000000000000"> Conversion des tableaux</A> <UL> <LI><A NAME="tex2html184"  HREF="node54.htm#SECTION00610100000000000000"> Rgle&nbsp;:</A> <LI><A NAME="tex2html185"  HREF="node54.htm#SECTION00610200000000000000"> Remarques</A> </UL> <LI><A NAME="tex2html186"  HREF="node55.htm#SECTION00620000000000000000"> L'oprateur d'indexation</A> <UL> <LI><A NAME="tex2html187"  HREF="node55.htm#SECTION00620100000000000000"> consquence numro 1</A> <LI><A NAME="tex2html188"  HREF="node55.htm#SECTION00620200000000000000"> consquence numro 2</A> <LI><A NAME="tex2html189"  HREF="node55.htm#SECTION00620300000000000000"> consquence numro 3</A> </UL> <LI><A NAME="tex2html190"  HREF="node56.htm#SECTION00630000000000000000"> Passage de tableau en paramtre</A> <UL> <LI><A NAME="tex2html191"  HREF="node56.htm#SECTION00630100000000000000"> Remarque</A> </UL> <LI><A NAME="tex2html192"  HREF="node57.htm#SECTION00640000000000000000"> Modification des lments d'un tableau pass en paramtre</A> <LI><A NAME="tex2html193"  HREF="node58.htm#SECTION00650000000000000000"> Interdiction de modification des lments d'un tableau pass en paramtre</A> <LI><A NAME="tex2html194"  HREF="node59.htm#SECTION00660000000000000000"> Conversion des chanes littrales</A> <UL> <LI><A NAME="tex2html195"  HREF="node59.htm#SECTION00660100000000000000"> Rgle</A> </UL> <LI><A NAME="tex2html196"  HREF="node60.htm#SECTION00670000000000000000"> Retour sur <TT>printf</TT></A> <LI><A NAME="tex2html197"  HREF="node61.htm#SECTION00680000000000000000"> Exercice</A> <LI><A NAME="tex2html198"  HREF="node62.htm#SECTION00690000000000000000"> Tableaux multidimensionnels</A> <UL> <LI><A NAME="tex2html199"  HREF="node62.htm#SECTION00691000000000000000"> Dclarations</A> <LI><A NAME="tex2html200"  HREF="node62.htm#SECTION00692000000000000000"> Accs aux lments</A> <LI><A NAME="tex2html201"  HREF="node62.htm#SECTION00693000000000000000"> Passage en paramtre</A> </UL> <LI><A NAME="tex2html202"  HREF="node63.htm#SECTION006100000000000000000"> Initialisation</A> <LI><A NAME="tex2html203"  HREF="node64.htm#SECTION006110000000000000000"> Exercice</A> <LI><A NAME="tex2html204"  HREF="node65.htm#SECTION006120000000000000000"> Tableau de pointeurs</A> <UL> <LI><A NAME="tex2html205"  HREF="node65.htm#SECTION006121000000000000000"> Cas gnral</A> <UL> <LI><A NAME="tex2html206"  HREF="node65.htm#SECTION006121100000000000000"> Premire mthode</A> <LI><A NAME="tex2html207"  HREF="node65.htm#SECTION006121200000000000000"> Deuxime mthode</A> <LI><A NAME="tex2html208"  HREF="node65.htm#SECTION006121300000000000000"> Troisime mthode</A> </UL> <LI><A NAME="tex2html209"  HREF="node65.htm#SECTION006122000000000000000"> Tableaux de pointeurs vers des chanes</A> <LI><A NAME="tex2html210"  HREF="node65.htm#SECTION006123000000000000000"> Paramtres d'un programme</A> </UL> <LI><A NAME="tex2html211"  HREF="node66.htm#SECTION006130000000000000000"> Tableau et pointeur, c'est la mme chose&nbsp;?</A> <UL> <LI><A NAME="tex2html212"  HREF="node66.htm#SECTION006131000000000000000"> Commentaires</A> <LI><A NAME="tex2html213"  HREF="node66.htm#SECTION006132000000000000000"> Cas particulier des chanes littrales</A> </UL> <LI><A NAME="tex2html214"  HREF="node67.htm#SECTION006140000000000000000"> Rcration</A> </UL> <LI><A NAME="tex2html215"  HREF="node68.htm#SECTION00700000000000000000"> Les entres-sorties</A> <UL> <LI><A NAME="tex2html216"  HREF="node69.htm#SECTION00710000000000000000"> Pointeur invalide</A> <LI><A NAME="tex2html217"  HREF="node70.htm#SECTION00720000000000000000"> Ouverture et fermeture de fichiers</A> <UL> <LI><A NAME="tex2html218"  HREF="node70.htm#SECTION00721000000000000000"> Ouverture d'un fichier : <TT>fopen</TT></A> <UL> <LI><A NAME="tex2html219"  HREF="node70.htm#SECTION00721100000000000000"> Utilisation</A> <LI><A NAME="tex2html220"  HREF="node70.htm#SECTION00721200000000000000"> Smantique des paramtres</A> <LI><A NAME="tex2html221"  HREF="node70.htm#SECTION00721300000000000000"> Valeur rendue</A> <LI><A NAME="tex2html222"  HREF="node70.htm#SECTION00721400000000000000"> Conditions particulires et cas d'erreur</A> <LI><A NAME="tex2html223"  HREF="node70.htm#SECTION00721500000000000000"> Les voies de communication standard</A> <LI><A NAME="tex2html224"  HREF="node70.htm#SECTION00721600000000000000"> Utilisation typique de <TT>fopen</TT></A> </UL> <LI><A NAME="tex2html225"  HREF="node70.htm#SECTION00722000000000000000"> fermeture d'un fichier : <TT>fclose</TT></A> <UL> <LI><A NAME="tex2html226"  HREF="node70.htm#SECTION00722100000000000000"> Utilisation</A> <LI><A NAME="tex2html227"  HREF="node70.htm#SECTION00722200000000000000"> Smantique des paramtres</A> <LI><A NAME="tex2html228"  HREF="node70.htm#SECTION00722300000000000000"> Valeur rendue</A> <LI><A NAME="tex2html229"  HREF="node70.htm#SECTION00722400000000000000"> Utilisation typique</A> </UL> </UL> <LI><A NAME="tex2html230"  HREF="node71.htm#SECTION00730000000000000000"> Lecture et criture par caractre sur fichier</A> <UL> <LI><A NAME="tex2html231"  HREF="node71.htm#SECTION00731000000000000000"> lecture par caractre&nbsp;: <TT>fgetc</TT></A> <UL> <LI><A NAME="tex2html232"  HREF="node71.htm#SECTION00731100000000000000"> Utilisation</A> <LI><A NAME="tex2html233"  HREF="node71.htm#SECTION00731200000000000000"> Smantique des paramtres</A> <LI><A NAME="tex2html234"  HREF="node71.htm#SECTION00731300000000000000"> Description</A> <LI><A NAME="tex2html235"  HREF="node71.htm#SECTION00731400000000000000"> Valeur rendue</A> <LI><A NAME="tex2html236"  HREF="node71.htm#SECTION00731500000000000000"> Utilisation typique</A> </UL> <LI><A NAME="tex2html237"  HREF="node71.htm#SECTION00732000000000000000"> lecture par caractre&nbsp;: <TT>getc</TT></A> <LI><A NAME="tex2html238"  HREF="node71.htm#SECTION00733000000000000000"> lecture par caractre&nbsp;: <TT>getchar</TT></A> <UL> <LI><A NAME="tex2html239"  HREF="node71.htm#SECTION00733100000000000000"> Utilisation</A> <LI><A NAME="tex2html240"  HREF="node71.htm#SECTION00733200000000000000"> Description</A> </UL> <LI><A NAME="tex2html241"  HREF="node71.htm#SECTION00734000000000000000"> criture par caractre : <TT>fputc</TT></A> <UL> <LI><A NAME="tex2html242"  HREF="node71.htm#SECTION00734100000000000000"> Utilisation</A> <LI><A NAME="tex2html243"  HREF="node71.htm#SECTION00734200000000000000"> Smantique des paramtres</A> <LI><A NAME="tex2html244"  HREF="node71.htm#SECTION00734300000000000000"> Description</A> <LI><A NAME="tex2html245"  HREF="node71.htm#SECTION00734400000000000000"> Valeur rendue</A> <LI><A NAME="tex2html246"  HREF="node71.htm#SECTION00734500000000000000"> Utilisation typique</A> </UL> <LI><A NAME="tex2html247"  HREF="node71.htm#SECTION00735000000000000000"> lecture par caractre&nbsp;: <TT>putc</TT></A> <LI><A NAME="tex2html248"  HREF="node71.htm#SECTION00736000000000000000"> criture par caractre : <TT>putchar</TT></A> <UL> <LI><A NAME="tex2html249"  HREF="node71.htm#SECTION00736100000000000000"> Utilisation</A> <LI><A NAME="tex2html250"  HREF="node71.htm#SECTION00736200000000000000"> Description</A> </UL> </UL> <LI><A NAME="tex2html251"  HREF="node72.htm#SECTION00740000000000000000"> Lecture et criture par lignes sur fichier</A> <UL> <LI><A NAME="tex2html252"  HREF="node72.htm#SECTION00741000000000000000"> lecture par ligne : <TT>fgets</TT></A> <UL> <LI><A NAME="tex2html253"  HREF="node72.htm#SECTION00741100000000000000"> Utilisation</A> <LI><A NAME="tex2html254"  HREF="node72.htm#SECTION00741200000000000000"> Smantique des paramtres</A> <LI><A NAME="tex2html255"  HREF="node72.htm#SECTION00741300000000000000"> Valeur rendue</A> <LI><A NAME="tex2html256"  HREF="node72.htm#SECTION00741400000000000000"> Description</A> <LI><A NAME="tex2html257"  HREF="node72.htm#SECTION00741500000000000000"> Utilisation typique</A> </UL> <LI><A NAME="tex2html258"  HREF="node72.htm#SECTION00742000000000000000"> lecture par ligne : <TT>gets</TT></A> <UL> <LI><A NAME="tex2html259"  HREF="node72.htm#SECTION00742100000000000000"> Utilisation</A> <LI><A NAME="tex2html260"  HREF="node72.htm#SECTION00742200000000000000"> Smantique des paramtres</A> <LI><A NAME="tex2html261"  HREF="node72.htm#SECTION00742300000000000000"> Valeur rendue</A> <LI><A NAME="tex2html262"  HREF="node72.htm#SECTION00742400000000000000"> Description</A> </UL> <LI><A NAME="tex2html263"  HREF="node72.htm#SECTION00743000000000000000"> criture par chane : <TT>fputs</TT></A> <UL> <LI><A NAME="tex2html264"  HREF="node72.htm#SECTION00743100000000000000"> Utilisation</A> <LI><A NAME="tex2html265"  HREF="node72.htm#SECTION00743200000000000000"> Smantique des paramtres</A> <LI><A NAME="tex2html266"  HREF="node72.htm#SECTION00743300000000000000"> Valeur rendue</A> <LI><A NAME="tex2html267"  HREF="node72.htm#SECTION00743400000000000000"> Description</A> <LI><A NAME="tex2html268"  HREF="node72.htm#SECTION00743500000000000000"> Utilisation typique</A> </UL> <LI><A NAME="tex2html269"  HREF="node72.htm#SECTION00744000000000000000"> criture par chane : <TT>puts</TT></A> <UL> <LI><A NAME="tex2html270"  HREF="node72.htm#SECTION00744100000000000000"> Utilisation</A> <LI><A NAME="tex2html271"  HREF="node72.htm#SECTION00744200000000000000"> Smantique des paramtres</A> <LI><A NAME="tex2html272"  HREF="node72.htm#SECTION00744300000000000000"> Valeur rendue</A> <LI><A NAME="tex2html273"  HREF="node72.htm#SECTION00744400000000000000"> Description</A> </UL> </UL> <LI><A NAME="tex2html274"  HREF="node73.htm#SECTION00750000000000000000"> E/S formattes sur fichiers</A> <UL> <LI><A NAME="tex2html275"  HREF="node73.htm#SECTION00751000000000000000"> Ecriture formatte&nbsp;: <TT>fprintf</TT></A> <UL> <LI><A NAME="tex2html276"  HREF="node73.htm#SECTION00751100000000000000"> Utilisation</A> <LI><A NAME="tex2html277"  HREF="node73.htm#SECTION00751200000000000000"> Smantique des paramtres</A> <LI><A NAME="tex2html278"  HREF="node73.htm#SECTION00751300000000000000"> Valeur rendue</A> <LI><A NAME="tex2html279"  HREF="node73.htm#SECTION00751400000000000000"> Prsentation</A> <LI><A NAME="tex2html280"  HREF="node73.htm#SECTION00751500000000000000"> Les squences d'chappement</A> </UL> <LI><A NAME="tex2html281"  HREF="node73.htm#SECTION00752000000000000000"> Ecriture formatte&nbsp;: <TT>printf</TT></A> <UL> <LI><A NAME="tex2html282"  HREF="node73.htm#SECTION00752100000000000000"> Utilisation</A> <LI><A NAME="tex2html283"  HREF="node73.htm#SECTION00752200000000000000"> Description</A> </UL> <LI><A NAME="tex2html284"  HREF="node73.htm#SECTION00753000000000000000"> Ecriture formatte dans une chane : <TT>sprintf</TT></A> <UL> <LI><A NAME="tex2html285"  HREF="node73.htm#SECTION00753100000000000000"> Utilisation</A> <LI><A NAME="tex2html286"  HREF="node73.htm#SECTION00753200000000000000"> Description</A> </UL> <LI><A NAME="tex2html287"  HREF="node73.htm#SECTION00754000000000000000"> Exemples d'utilisation des formats</A> <LI><A NAME="tex2html288"  HREF="node73.htm#SECTION00755000000000000000"> Entres formattes : <TT>fscanf</TT></A> <UL> <LI><A NAME="tex2html289"  HREF="node73.htm#SECTION00755100000000000000"> Utilisation</A> <LI><A NAME="tex2html290"  HREF="node73.htm#SECTION00755200000000000000"> Smantique des paramtres</A> <LI><A NAME="tex2html291"  HREF="node73.htm#SECTION00755300000000000000"> Valeur rendue</A> <LI><A NAME="tex2html292"  HREF="node73.htm#SECTION00755400000000000000"> Description</A> <LI><A NAME="tex2html293"  HREF="node73.htm#SECTION00755500000000000000"> Quelques dfinitions</A> <LI><A NAME="tex2html294"  HREF="node73.htm#SECTION00755600000000000000"> Les squences d'chappement</A> <LI><A NAME="tex2html295"  HREF="node73.htm#SECTION00755700000000000000"> Algorithme de <TT>fscanf</TT></A> <LI><A NAME="tex2html296"  HREF="node73.htm#SECTION00755800000000000000"> Remarques sur la gestion des <I>espaces blancs</I></A> </UL> <LI><A NAME="tex2html297"  HREF="node73.htm#SECTION00756000000000000000"> Entres formattes&nbsp;: <TT>scanf</TT></A> <UL> <LI><A NAME="tex2html298"  HREF="node73.htm#SECTION00756100000000000000"> Utilisation</A> <LI><A NAME="tex2html299"  HREF="node73.htm#SECTION00756200000000000000"> Description</A> </UL> <LI><A NAME="tex2html300"  HREF="node73.htm#SECTION00757000000000000000"> Entres formattes depuis une chane : <TT>sscanf</TT></A> <UL> <LI><A NAME="tex2html301"  HREF="node73.htm#SECTION00757100000000000000"> Utilisation</A> <LI><A NAME="tex2html302"  HREF="node73.htm#SECTION00757200000000000000"> Description</A> </UL> </UL> <LI><A NAME="tex2html303"  HREF="node74.htm#SECTION00760000000000000000"> Rcration</A> <LI><A NAME="tex2html304"  HREF="node75.htm#SECTION00770000000000000000"> Exercice 1</A> <LI><A NAME="tex2html305"  HREF="node76.htm#SECTION00780000000000000000"> Exercice 2</A> </UL> <LI><A NAME="tex2html306"  HREF="node77.htm#SECTION00800000000000000000"> Structures, unions et numrations</A> <UL> <LI><A NAME="tex2html307"  HREF="node78.htm#SECTION00810000000000000000"> Notion de structure</A> <LI><A NAME="tex2html308"  HREF="node79.htm#SECTION00820000000000000000"> Dclaration de structure</A> <UL> <LI><A NAME="tex2html309"  HREF="node79.htm#SECTION00820100000000000000"> Premire mthode</A> <LI><A NAME="tex2html310"  HREF="node79.htm#SECTION00820200000000000000"> Deuxime mthode</A> <LI><A NAME="tex2html311"  HREF="node79.htm#SECTION00820300000000000000"> Troisime mthode</A> <LI><A NAME="tex2html312"  HREF="node79.htm#SECTION00821000000000000000"> Initialisation d'une structure</A> </UL> <LI><A NAME="tex2html313"  HREF="node80.htm#SECTION00830000000000000000"> Oprateurs sur les structures</A> <UL> <LI><A NAME="tex2html314"  HREF="node80.htm#SECTION00831000000000000000"> Accs aux membres des structures</A> <LI><A NAME="tex2html315"  HREF="node80.htm#SECTION00832000000000000000"> Affectation de structures</A> <LI><A NAME="tex2html316"  HREF="node80.htm#SECTION00833000000000000000"> Comparaison de structures</A> </UL> <LI><A NAME="tex2html317"  HREF="node81.htm#SECTION00840000000000000000"> Tableaux de structures</A> <LI><A NAME="tex2html318"  HREF="node82.htm#SECTION00850000000000000000"> Exercice</A> <LI><A NAME="tex2html319"  HREF="node83.htm#SECTION00860000000000000000"> Pointeurs vers une structure</A> <LI><A NAME="tex2html320"  HREF="node84.htm#SECTION00870000000000000000"> Structures dont un des membres pointe vers une structure du mme type</A> <LI><A NAME="tex2html321"  HREF="node85.htm#SECTION00880000000000000000"> Accs aux lments d'une structure pointe</A> <LI><A NAME="tex2html322"  HREF="node86.htm#SECTION00890000000000000000"> Passage de structures en paramtre</A> <UL> <LI><A NAME="tex2html323"  HREF="node86.htm#SECTION00891000000000000000"> Attention</A> </UL> <LI><A NAME="tex2html324"  HREF="node87.htm#SECTION008100000000000000000"> Dtermination de la taille alloue  un type</A> <UL> <LI><A NAME="tex2html325"  HREF="node87.htm#SECTION008101000000000000000"> Retour sur la conversion des tableaux</A> </UL> <LI><A NAME="tex2html326"  HREF="node88.htm#SECTION008110000000000000000"> Allocation et libration d'espace pour les structures</A> <UL> <LI><A NAME="tex2html327"  HREF="node88.htm#SECTION008111000000000000000"> Allocation d'espace&nbsp;: fonctions <TT>malloc</TT> et <TT>calloc</TT></A> <UL> <LI><A NAME="tex2html328"  HREF="node88.htm#SECTION008111100000000000000"> Allocation d'un lment&nbsp;: fonction <TT>malloc</TT></A> <LI><A NAME="tex2html329"  HREF="node88.htm#SECTION008111200000000000000"> Allocation d'un tableau d'lments&nbsp;: fonction <TT>calloc</TT></A> </UL> <LI><A NAME="tex2html330"  HREF="node88.htm#SECTION008112000000000000000"> Libration d'espace&nbsp;: procdure free</A> </UL> <LI><A NAME="tex2html331"  HREF="node89.htm#SECTION008120000000000000000"> Exercice</A> <LI><A NAME="tex2html332"  HREF="node90.htm#SECTION008130000000000000000"> Les champs de bits</A> <UL> <LI><A NAME="tex2html333"  HREF="node90.htm#SECTION008131000000000000000"> Gnralits</A> <LI><A NAME="tex2html334"  HREF="node90.htm#SECTION008132000000000000000"> Contraintes</A> </UL> <LI><A NAME="tex2html335"  HREF="node91.htm#SECTION008140000000000000000"> Les numrations</A> <LI><A NAME="tex2html336"  HREF="node92.htm#SECTION008150000000000000000"> Les unions</A> <LI><A NAME="tex2html337"  HREF="node93.htm#SECTION008160000000000000000"> Accs aux membres de l'union</A> <LI><A NAME="tex2html338"  HREF="node94.htm#SECTION008170000000000000000"> Utilisation pratique des unions</A> <LI><A NAME="tex2html339"  HREF="node95.htm#SECTION008180000000000000000"> Une mthode pour allger l'accs aux membres</A> </UL> <LI><A NAME="tex2html340"  HREF="node96.htm#SECTION00900000000000000000"> Les expressions</A> <UL> <LI><A NAME="tex2html341"  HREF="node97.htm#SECTION00910000000000000000"> Les conversions de types</A> <UL> <LI><A NAME="tex2html342"  HREF="node97.htm#SECTION00911000000000000000"> Utilit des conversions</A> <LI><A NAME="tex2html343"  HREF="node97.htm#SECTION00912000000000000000"> Ce qu'il y a dans une conversion</A> <LI><A NAME="tex2html344"  HREF="node97.htm#SECTION00913000000000000000"> L'ensemble des conversions possibles</A> <UL> <LI><A NAME="tex2html345"  HREF="node97.htm#SECTION00913100000000000000"> Conversions vers un type entier</A> <LI><A NAME="tex2html346"  HREF="node97.htm#SECTION00913200000000000000"> Conversions vers un type flottant</A> <LI><A NAME="tex2html347"  HREF="node97.htm#SECTION00913300000000000000"> Conversion vers un type pointeur</A> <LI><A NAME="tex2html348"  HREF="node97.htm#SECTION00913400000000000000"> Conversion vers le type void</A> </UL> <LI><A NAME="tex2html349"  HREF="node97.htm#SECTION00914000000000000000"> Les situations de conversions</A> <LI><A NAME="tex2html350"  HREF="node97.htm#SECTION00915000000000000000"> La promotion des entiers</A> <UL> <LI><A NAME="tex2html351"  HREF="node97.htm#SECTION00915100000000000000"> Domaine d'application</A> <LI><A NAME="tex2html352"  HREF="node97.htm#SECTION00915200000000000000"> La rgle</A> </UL> <LI><A NAME="tex2html353"  HREF="node97.htm#SECTION00916000000000000000"> Les conversions arithmtiques habituelles</A> <UL> <LI><A NAME="tex2html354"  HREF="node97.htm#SECTION00916100000000000000"> Domaine d'application</A> <LI><A NAME="tex2html355"  HREF="node97.htm#SECTION00916200000000000000"> La rgle</A> <LI><A NAME="tex2html356"  HREF="node97.htm#SECTION00916300000000000000"> Discussion</A> </UL> <LI><A NAME="tex2html357"  HREF="node97.htm#SECTION00917000000000000000"> Les surprises des conversions</A> <UL> <LI><A NAME="tex2html358"  HREF="node97.htm#SECTION00917100000000000000"> Recommandations</A> </UL> </UL> <LI><A NAME="tex2html359"  HREF="node98.htm#SECTION00920000000000000000"> Les oprateurs</A> <UL> <LI><A NAME="tex2html360"  HREF="node98.htm#SECTION00921000000000000000"> Oprateur <I>non bit  bit</I></A> <LI><A NAME="tex2html361"  HREF="node98.htm#SECTION00922000000000000000"> Oprateur <I>et bit  bit</I></A> <LI><A NAME="tex2html362"  HREF="node98.htm#SECTION00923000000000000000"> Oprateur <I>ou bit  bit</I></A> <LI><A NAME="tex2html363"  HREF="node98.htm#SECTION00924000000000000000"> Oprateur <I>ou exclusif bit  bit</I></A> <LI><A NAME="tex2html364"  HREF="node98.htm#SECTION00925000000000000000"> Oprateur <I>dcalage  gauche</I></A> <LI><A NAME="tex2html365"  HREF="node98.htm#SECTION00926000000000000000"> Oprateur <I>dcalage  droite</I></A> <LI><A NAME="tex2html366"  HREF="node98.htm#SECTION00927000000000000000"> Oprateur conditionnel</A> <LI><A NAME="tex2html367"  HREF="node98.htm#SECTION00928000000000000000"> Oprateur <I>virgule</I></A> <UL> <LI><A NAME="tex2html368"  HREF="node98.htm#SECTION00928100000000000000"> Remarque</A> </UL> <LI><A NAME="tex2html369"  HREF="node98.htm#SECTION00929000000000000000"> Oprateurs d'affectation compose</A> </UL> <LI><A NAME="tex2html370"  HREF="node99.htm#SECTION00930000000000000000"> Oprateur <I>conversion</I></A> <UL> <LI><A NAME="tex2html371"  HREF="node99.htm#SECTION00930100000000000000"> Note</A> <LI><A NAME="tex2html372"  HREF="node99.htm#SECTION00930200000000000000"> Exemples d'utilisation</A> </UL> <LI><A NAME="tex2html373"  HREF="node100.htm#SECTION00940000000000000000"> Smantique des expressions</A> <UL> <LI><A NAME="tex2html374"  HREF="node100.htm#SECTION00941000000000000000"> Oprateurs d'adressage</A> <LI><A NAME="tex2html375"  HREF="node100.htm#SECTION00942000000000000000"> Priorit et associativit des oprateurs</A> <UL> <LI><A NAME="tex2html376"  HREF="node100.htm#SECTION00942100000000000000"> Discussion</A> <LI><A NAME="tex2html377"  HREF="node100.htm#SECTION00942200000000000000"> Recommandation</A> </UL> <LI><A NAME="tex2html378"  HREF="node100.htm#SECTION00943000000000000000"> Ordre d'valuation des oprandes</A> </UL> <LI><A NAME="tex2html379"  HREF="node101.htm#SECTION00950000000000000000"> Rcration</A> <UL> <LI><A NAME="tex2html380"  HREF="node101.htm#SECTION00950100000000000000"> La version shell</A> <LI><A NAME="tex2html381"  HREF="node101.htm#SECTION00950200000000000000"> La version fortran</A> <LI><A NAME="tex2html382"  HREF="node101.htm#SECTION00950300000000000000"> La version C</A> </UL> </UL> <LI><A NAME="tex2html383"  HREF="node102.htm#SECTION001000000000000000000"> Le prprocesseur</A> <UL> <LI><A NAME="tex2html384"  HREF="node103.htm#SECTION001010000000000000000"> Traitement de macros</A> <UL> <LI><A NAME="tex2html385"  HREF="node103.htm#SECTION001011000000000000000"> Les macros sans paramtres</A> <UL> <LI><A NAME="tex2html386"  HREF="node103.htm#SECTION001011100000000000000"> Exemple de mauvaise utilisation</A> <LI><A NAME="tex2html387"  HREF="node103.htm#SECTION001011200000000000000"> Dfinition de macro  l'invocation du compilateur</A> </UL> <LI><A NAME="tex2html388"  HREF="node103.htm#SECTION001012000000000000000"> Macros prdfinies</A> <LI><A NAME="tex2html389"  HREF="node103.htm#SECTION001013000000000000000"> Les macros avec paramtres</A> <UL> <LI><A NAME="tex2html390"  HREF="node103.htm#SECTION001013100000000000000"> Attention</A> <LI><A NAME="tex2html391"  HREF="node103.htm#SECTION001013200000000000000"> Exemple</A> <LI><A NAME="tex2html392"  HREF="node103.htm#SECTION001013300000000000000"> Exemple de mauvaise utilisation</A> </UL> <LI><A NAME="tex2html393"  HREF="node103.htm#SECTION001014000000000000000"> Les piges des macros</A> <UL> <LI><A NAME="tex2html394"  HREF="node103.htm#SECTION001014100000000000000"> Piges des priorits d'oprateurs</A> <LI><A NAME="tex2html395"  HREF="node103.htm#SECTION001014200000000000000"> Piges des effets de bord</A> </UL> <LI><A NAME="tex2html396"  HREF="node103.htm#SECTION001015000000000000000"> Macros gnrant des instructions</A> <UL> <LI><A NAME="tex2html397"  HREF="node103.htm#SECTION001015100000000000000"> Recommandation</A> </UL> </UL> <LI><A NAME="tex2html398"  HREF="node104.htm#SECTION001020000000000000000"> Compilation conditionnelle</A> <UL> <LI><A NAME="tex2html399"  HREF="node104.htm#SECTION001021000000000000000"> Commande <TT>#if</TT></A> <UL> <LI><A NAME="tex2html400"  HREF="node104.htm#SECTION001021100000000000000"> Commande <TT>#if</TT> simple</A> <LI><A NAME="tex2html401"  HREF="node104.htm#SECTION001021200000000000000"> Commande <TT>#if</TT> avec <TT>#else</TT></A> <LI><A NAME="tex2html402"  HREF="node104.htm#SECTION001021300000000000000"> Commande <TT>#if</TT> avec <TT>#elif</TT></A> </UL> <LI><A NAME="tex2html403"  HREF="node104.htm#SECTION001022000000000000000"> Commandes <TT>#ifdef</TT> et <TT>#ifndef</TT></A> <LI><A NAME="tex2html404"  HREF="node104.htm#SECTION001023000000000000000"> L'oprateur <TT>defined</TT></A> <LI><A NAME="tex2html405"  HREF="node104.htm#SECTION001024000000000000000"> La commande <TT>#error</TT></A> <LI><A NAME="tex2html406"  HREF="node104.htm#SECTION001025000000000000000"> Usage</A> </UL> </UL> <LI><A NAME="tex2html407"  HREF="node105.htm#SECTION001100000000000000000"> Les dclarations</A> <UL> <LI><A NAME="tex2html408"  HREF="node106.htm#SECTION001110000000000000000"> Dclarations de dfinition et de rfrence</A> <UL> <LI><A NAME="tex2html409"  HREF="node106.htm#SECTION001110100000000000000"> Les dclarations de dfinition</A> <LI><A NAME="tex2html410"  HREF="node106.htm#SECTION001110200000000000000"> Les dclarations de rfrence</A> <LI><A NAME="tex2html411"  HREF="node106.htm#SECTION001111000000000000000"> Dclarations de variables</A> <LI><A NAME="tex2html412"  HREF="node106.htm#SECTION001112000000000000000"> Dclarations de fonctions</A> <LI><A NAME="tex2html413"  HREF="node106.htm#SECTION001113000000000000000"> Dclarations d'tiquettes de structures et union</A> </UL> <LI><A NAME="tex2html414"  HREF="node107.htm#SECTION001120000000000000000"> Porte des dclarations</A> <LI><A NAME="tex2html415"  HREF="node108.htm#SECTION001130000000000000000"> Visibilit des identificateurs</A> <LI><A NAME="tex2html416"  HREF="node109.htm#SECTION001140000000000000000"> Les espaces de noms</A> <UL> <LI><A NAME="tex2html417"  HREF="node109.htm#SECTION001141000000000000000"> Position du problme</A> <LI><A NAME="tex2html418"  HREF="node109.htm#SECTION001142000000000000000"> Les espaces de noms du langage C</A> <UL> <LI><A NAME="tex2html419"  HREF="node109.htm#SECTION001142100000000000000"> Remarque</A> </UL> </UL> <LI><A NAME="tex2html420"  HREF="node110.htm#SECTION001150000000000000000"> Dure de vie</A> <UL> <LI><A NAME="tex2html421"  HREF="node110.htm#SECTION001150100000000000000"> Discussion</A> </UL> <LI><A NAME="tex2html422"  HREF="node111.htm#SECTION001160000000000000000"> Classes de mmoire</A> <UL> <LI><A NAME="tex2html423"  HREF="node111.htm#SECTION001161000000000000000"> Position du problme</A> <LI><A NAME="tex2html424"  HREF="node111.htm#SECTION001162000000000000000"> Les spcificateurs de classe de mmoire</A> <UL> <LI><A NAME="tex2html425"  HREF="node111.htm#SECTION001162100000000000000"> Discussion</A> </UL> </UL> <LI><A NAME="tex2html426"  HREF="node112.htm#SECTION001170000000000000000"> La compilation spare</A> <UL> <LI><A NAME="tex2html427"  HREF="node112.htm#SECTION001171000000000000000"> Gnralits</A> <UL> <LI><A NAME="tex2html428"  HREF="node112.htm#SECTION001171100000000000000"> Mthode des rfs et des dfs</A> <LI><A NAME="tex2html429"  HREF="node112.htm#SECTION001171200000000000000"> Mthode du <I>common</I></A> </UL> <LI><A NAME="tex2html430"  HREF="node112.htm#SECTION001172000000000000000"> La mthode du langage C</A> <UL> <LI><A NAME="tex2html431"  HREF="node112.htm#SECTION001172100000000000000"> Les contraintes</A> <LI><A NAME="tex2html432"  HREF="node112.htm#SECTION001172200000000000000"> En pratique</A> <LI><A NAME="tex2html433"  HREF="node112.htm#SECTION001172300000000000000"> Le cas des fonctions</A> </UL> </UL> <LI><A NAME="tex2html434"  HREF="node113.htm#SECTION001180000000000000000"> Dfinition de types</A> <LI><A NAME="tex2html435"  HREF="node114.htm#SECTION001190000000000000000"> Utilit des <TT>typedef</TT></A> <UL> <LI><A NAME="tex2html436"  HREF="node114.htm#SECTION001191000000000000000"> Restriction d'un type de base</A> <LI><A NAME="tex2html437"  HREF="node114.htm#SECTION001192000000000000000"> Dfinition de type structure</A> <LI><A NAME="tex2html438"  HREF="node114.htm#SECTION001193000000000000000"> Dfinition de types opaques</A> </UL> <LI><A NAME="tex2html439"  HREF="node115.htm#SECTION0011100000000000000000"> Qualificatifs de type</A> <UL> <LI><A NAME="tex2html440"  HREF="node115.htm#SECTION0011100100000000000000"> Qualificatif <TT>const</TT></A> <LI><A NAME="tex2html441"  HREF="node115.htm#SECTION0011100200000000000000"> Qualificatif <TT>volatile</TT></A> </UL> <LI><A NAME="tex2html442"  HREF="node116.htm#SECTION0011110000000000000000"> Fonction  nombre variable de paramtres</A> <UL> <LI><A NAME="tex2html443"  HREF="node116.htm#SECTION0011111000000000000000"> Exemple 1</A> <LI><A NAME="tex2html444"  HREF="node116.htm#SECTION0011112000000000000000"> Exemple 2</A> </UL> <LI><A NAME="tex2html445"  HREF="node117.htm#SECTION0011120000000000000000"> Syntaxe des dclarations</A> <UL> <LI><A NAME="tex2html446"  HREF="node117.htm#SECTION0011120100000000000000"> Exemples</A> </UL> <LI><A NAME="tex2html447"  HREF="node118.htm#SECTION0011130000000000000000"> Smantique des dclarations</A> <LI><A NAME="tex2html448"  HREF="node119.htm#SECTION0011140000000000000000"> Discussion sur les dclarations</A> <LI><A NAME="tex2html449"  HREF="node120.htm#SECTION0011150000000000000000"> En pratique</A> <LI><A NAME="tex2html450"  HREF="node121.htm#SECTION0011160000000000000000"> Un outil : <TT>cdecl</TT></A> </UL> <LI><A NAME="tex2html451"  HREF="node122.htm#SECTION001200000000000000000"> La bibliothque standard</A> <UL> <LI><A NAME="tex2html452"  HREF="node123.htm#SECTION001210000000000000000"> Diagnostic</A> <LI><A NAME="tex2html453"  HREF="node124.htm#SECTION001220000000000000000"> Manipulation de caractres <TT>&lt;ctype.h&gt;</TT></A> <LI><A NAME="tex2html454"  HREF="node125.htm#SECTION001230000000000000000"> Environnement local <TT>&lt;locale.h&gt;</TT></A> <LI><A NAME="tex2html455"  HREF="node126.htm#SECTION001240000000000000000"> Mathmatiques <TT>&lt;math.h&gt;</TT></A> <UL> <LI><A NAME="tex2html456"  HREF="node126.htm#SECTION001241000000000000000"> Fonctions trigonomtriques et hyperboliques</A> <LI><A NAME="tex2html457"  HREF="node126.htm#SECTION001242000000000000000"> Fonctions exponentielles et logarithmiques</A> <LI><A NAME="tex2html458"  HREF="node126.htm#SECTION001243000000000000000"> Fonctions diverses</A> </UL> <LI><A NAME="tex2html459"  HREF="node127.htm#SECTION001250000000000000000"> Branchements non locaux <TT>&lt;setjmp.h&gt;</TT></A> <LI><A NAME="tex2html460"  HREF="node128.htm#SECTION001260000000000000000"> Manipulation des signaux <TT>&lt;signal.h&gt;</TT></A> <LI><A NAME="tex2html461"  HREF="node129.htm#SECTION001270000000000000000"> Nombre variable de paramtres <TT>&lt;stdarg.h&gt;</TT></A> <LI><A NAME="tex2html462"  HREF="node130.htm#SECTION001280000000000000000"> Entres sorties <TT>&lt;stdio.h&gt;</TT></A> <UL> <LI><A NAME="tex2html463"  HREF="node130.htm#SECTION001281000000000000000"> Oprations sur les fichiers</A> <LI><A NAME="tex2html464"  HREF="node130.htm#SECTION001282000000000000000"> Accs aux fichiers</A> <LI><A NAME="tex2html465"  HREF="node130.htm#SECTION001283000000000000000"> Entres-sorties formattes</A> <LI><A NAME="tex2html466"  HREF="node130.htm#SECTION001284000000000000000"> Entres-sorties caractres</A> <LI><A NAME="tex2html467"  HREF="node130.htm#SECTION001285000000000000000"> Entres-sorties binaires</A> <LI><A NAME="tex2html468"  HREF="node130.htm#SECTION001286000000000000000"> Position dans un fichier</A> <LI><A NAME="tex2html469"  HREF="node130.htm#SECTION001287000000000000000"> Gestion des erreurs</A> </UL> <LI><A NAME="tex2html470"  HREF="node131.htm#SECTION001290000000000000000"> Utilitaires divers <TT>&lt;stdlib.h&gt;</TT></A> <UL> <LI><A NAME="tex2html471"  HREF="node131.htm#SECTION001291000000000000000"> Conversion de nombres</A> <LI><A NAME="tex2html472"  HREF="node131.htm#SECTION001292000000000000000"> Gnration de nombres pseudo-alatoires</A> <LI><A NAME="tex2html473"  HREF="node131.htm#SECTION001293000000000000000"> gestion de la mmoire</A> <LI><A NAME="tex2html474"  HREF="node131.htm#SECTION001294000000000000000"> Communication avec l'environnement</A> <LI><A NAME="tex2html475"  HREF="node131.htm#SECTION001295000000000000000"> Recherche et tri</A> <LI><A NAME="tex2html476"  HREF="node131.htm#SECTION001296000000000000000"> Arithmtique sur les entiers</A> <LI><A NAME="tex2html477"  HREF="node131.htm#SECTION001297000000000000000"> Gestion des caractres multi-octets</A> </UL> <LI><A NAME="tex2html478"  HREF="node132.htm#SECTION0012100000000000000000"> Manipulation de chanes <TT>&lt;string.h&gt;</TT></A> <LI><A NAME="tex2html479"  HREF="node133.htm#SECTION0012110000000000000000"> Manipulation de la date et de l'heure <TT>&lt;time.h&gt;</TT></A> </UL> <LI><A NAME="tex2html480"  HREF="node134.htm#SECTION001300000000000000000"> Les jeux de caractres</A> <UL> <LI><A NAME="tex2html481"  HREF="node135.htm#SECTION001310000000000000000"> Les normes</A> <UL> <LI><A NAME="tex2html482"  HREF="node135.htm#SECTION001310100000000000000"> Pour en savoir plus</A> </UL> <LI><A NAME="tex2html483"  HREF="node136.htm#SECTION001320000000000000000"> Le code <TT>ascii</TT></A> <UL> <LI><A NAME="tex2html484"  HREF="node136.htm#SECTION001321000000000000000"> Les codes <TT>ascii </TT> en octal</A> <LI><A NAME="tex2html485"  HREF="node136.htm#SECTION001322000000000000000"> Les codes <TT>ascii</TT> en hexadcimal</A> <LI><A NAME="tex2html486"  HREF="node136.htm#SECTION001323000000000000000"> Les codes <TT>ascii</TT> en dcimal</A> </UL> <LI><A NAME="tex2html487"  HREF="node137.htm#SECTION001330000000000000000"> Les codes ISO-Latin-1</A> </UL> <LI><A NAME="tex2html488"  HREF="node138.htm#SECTION001400000000000000000"> Bibliographie</A> <LI><A NAME="tex2html489"  HREF="node139.htm#SECTION001500000000000000000"> Ressources Internet</A> <LI><A NAME="tex2html490"  HREF="node140.htm#SECTION001600000000000000000"> La grammaire</A> <UL> <LI><A NAME="tex2html491"  HREF="node141.htm#SECTION001610000000000000000"> Les units lexicales</A> <LI><A NAME="tex2html492"  HREF="node142.htm#SECTION001620000000000000000"> Les mots-cls</A> <LI><A NAME="tex2html493"  HREF="node143.htm#SECTION001630000000000000000"> Les identificateurs</A> <LI><A NAME="tex2html494"  HREF="node144.htm#SECTION001640000000000000000"> Les constantes</A> <LI><A NAME="tex2html495"  HREF="node145.htm#SECTION001650000000000000000"> Les chanes littrales</A> <LI><A NAME="tex2html496"  HREF="node146.htm#SECTION001660000000000000000"> Les oprateurs</A> <LI><A NAME="tex2html497"  HREF="node147.htm#SECTION001670000000000000000"> La ponctuation</A> <LI><A NAME="tex2html498"  HREF="node148.htm#SECTION001680000000000000000"> Nom de fichier d'inclusion</A> <LI><A NAME="tex2html499"  HREF="node149.htm#SECTION001690000000000000000"> Les nombres du prprocesseur</A> <LI><A NAME="tex2html500"  HREF="node150.htm#SECTION0016100000000000000000"> Les expressions</A> <LI><A NAME="tex2html501"  HREF="node151.htm#SECTION0016110000000000000000"> Les dclarations</A> <LI><A NAME="tex2html502"  HREF="node152.htm#SECTION0016120000000000000000"> Les instructions</A> <LI><A NAME="tex2html503"  HREF="node153.htm#SECTION0016130000000000000000"> Dfinitions externes</A> <LI><A NAME="tex2html504"  HREF="node154.htm#SECTION0016140000000000000000"> Directives du prprocesseur</A> <LI><A NAME="tex2html505"  HREF="node155.htm#SECTION0016150000000000000000"> Rfrences croises de la grammaire</A> </UL> <LI><A NAME="tex2html506"  HREF="node156.htm#SECTION001700000000000000000"> Un bestiaire de types</A> <UL> <LI><A NAME="tex2html507"  HREF="node157.htm#SECTION001710000000000000000"> Les types de base</A> <LI><A NAME="tex2html508"  HREF="node158.htm#SECTION001720000000000000000"> Les tableaux</A> <LI><A NAME="tex2html509"  HREF="node159.htm#SECTION001730000000000000000"> Les pointeurs</A> <LI><A NAME="tex2html510"  HREF="node160.htm#SECTION001740000000000000000"> Les fonctions</A> <LI><A NAME="tex2html511"  HREF="node161.htm#SECTION001750000000000000000"> Les numrations</A> <LI><A NAME="tex2html512"  HREF="node162.htm#SECTION001760000000000000000"> Les structures, unions et champs de bits</A> <LI><A NAME="tex2html513"  HREF="node163.htm#SECTION001770000000000000000"> Les qualificatifs</A> </UL> <LI><A NAME="tex2html514"  HREF="node164.htm#SECTION001800000000000000000"> Le btisier</A> <UL> <LI><A NAME="tex2html515"  HREF="node165.htm#SECTION001810000000000000000"> Erreur avec les oprateurs</A> <UL> <LI><A NAME="tex2html516"  HREF="node165.htm#SECTION001811000000000000000"> Erreur sur une comparaison</A> <UL> <LI><A NAME="tex2html517"  HREF="node165.htm#SECTION001811100000000000000"> Comment est ce possible ?</A> </UL> <LI><A NAME="tex2html518"  HREF="node165.htm#SECTION001812000000000000000"> Erreur sur l'affectation</A> <UL> <LI><A NAME="tex2html519"  HREF="node165.htm#SECTION001812100000000000000"> Comment est ce possible ?</A> </UL> </UL> <LI><A NAME="tex2html520"  HREF="node166.htm#SECTION001820000000000000000"> Erreurs avec les macros</A> <UL> <LI><A NAME="tex2html521"  HREF="node166.htm#SECTION001821000000000000000"> Un <TT>#define</TT> n'est pas une dclaration</A> <LI><A NAME="tex2html522"  HREF="node166.htm#SECTION001822000000000000000"> Un <TT>#define</TT> n'est pas une initialisation</A> <LI><A NAME="tex2html523"  HREF="node166.htm#SECTION001823000000000000000"> Erreur sur macro avec paramtres</A> <LI><A NAME="tex2html524"  HREF="node166.htm#SECTION001824000000000000000"> Erreur avec les effets de bord</A> </UL> <LI><A NAME="tex2html525"  HREF="node167.htm#SECTION001830000000000000000"> Erreurs avec l'instruction <TT>if</TT></A> <LI><A NAME="tex2html526"  HREF="node168.htm#SECTION001840000000000000000"> Erreurs avec les commentaires</A> <LI><A NAME="tex2html527"  HREF="node169.htm#SECTION001850000000000000000"> Erreurs avec les priorits des oprateurs</A> <LI><A NAME="tex2html528"  HREF="node170.htm#SECTION001860000000000000000"> Erreur avec l'instruction <TT>switch</TT></A> <UL> <LI><A NAME="tex2html529"  HREF="node170.htm#SECTION001861000000000000000"> Oubli du <TT>break</TT></A> <LI><A NAME="tex2html530"  HREF="node170.htm#SECTION001862000000000000000"> Erreur sur le <TT>default</TT></A> </UL> <LI><A NAME="tex2html531"  HREF="node171.htm#SECTION001870000000000000000"> Erreur sur les tableaux multidimensionnels</A> <LI><A NAME="tex2html532"  HREF="node172.htm#SECTION001880000000000000000"> Erreur avec la compilation spare</A> </UL> <LI><A NAME="tex2html533"  HREF="node173.htm#SECTION001900000000000000000"> Glossaire</A> <LI><A NAME="tex2html534"  HREF="node174.htm#SECTION002000000000000000000"> Index</A> <LI><A NAME="tex2html535"  HREF="node175.htm#SECTION002100000000000000000"> &Agrave; propos de ce document... </A> </UL> <!--End of Table of Child-Links--> <BR><HR> <ADDRESS> <I></I> <BR><I>30/9/1997</I> </ADDRESS> </BODY> </BLOCKQUOTE></HTML> 
