首页 Preprocesseur

Preprocesseur

举报
开通vip

Preprocesseur Cours  APIA   Salima  Hassas   Plan   •  Retour  sur  les  bases  de  C   –  Préprocesseur   –  E/S  :  scanf  et  prin=   •  Types  complexes   –  Structures  et  unions   •  ProgrammaBon  modulaire   • ...

Preprocesseur
Cours  APIA   Salima  Hassas   Plan   •  Retour  sur  les  bases  de  C   –  Préprocesseur   –  E/S  :  scanf  et  prin=   •  Types  complexes   –  Structures  et  unions   •  ProgrammaBon  modulaire   •  AllocaBon  dynamique   –  Tableaux  et  matrices  dynamiques   •  ManipulaBon  de  chaines  de  caractères   •  Fichiers   Préprocesseur   •  Avant  la  compilaBon  proprement  dite,  le  compilateur  fait  passer  «  le   contenu  du  fichier  à  compiler  »  (Fichier  source)  par  un  programme  :  -­‐  Le   préprocesseur  –  qui  peut  transformer  le  texte,  en  interprétant  certaines   direcBves   •  Son  Rôle  :  interpréter  les  lignes  qui  commencent  par  #  en  1ère  ligne     direcBves  de  pré-­‐processing   –  Inclusion  de  fichiers      #include   –  La  subsBtuBon  :  #define   –  DéfiniBon  condiBonnelle    #ifdef,  #else,  #ifndef,  #endif     Remarque    On  peut  visualiser  la  sorBe  du  pré-­‐processeur  avant  l’étape  de  compilaBon   proprement  dite  en  uBlisant  l’opBon  -­‐E  à  la  compilaBon   Préprocesseur   •  Inclusion  de  fichier    #include   –  Permet  de  remplacer  la  ligne  contenant  le  #include  dans  le  fichier   source  par  le  contenu  du  fichier  inclus   –  UBle  dans  dans  le  cas  ou  l’on  souhaite  uBliser  dans  un  fichier,  des   déclaraBons  définies  dans  un  autre  fichier   –  Nécessaire  dans  le  cas  d’uBlisaBon    des  types  ou  foncBons  externes  au   fichier  courant     •  UBlisaBon     –  #include      si  fichier    existant  dans  une  librairie   standard  (stocké  sous  /usr/etc  ou  emplacement  donné  par  –I  à  la   compilaBon)   –  #include  «  monFichier  »  si  le  fichier  est  stocké  localement   Préprocesseur   /*  Exemple.c*/   #include     void  main()   {  int  n;        scanf(«  %d  »,  &n);        prin=  («  Coucou,  n=%d  »);   }     Préprocesseur   /*  Exemple.c*/   #include     void  main()   {  int  n;        scanf(«  %d  »,  &n);        prin=  («  Coucou,  n=%d  »);   }     Remplacé  par   Stdio.h   Déclara'on  de  :  scanf   Déclara'on  de  :  prin2     ….   Préprocesseur   •  La  subsBtuBon  symbolique    #define   –  Permet  de  remplacer  dans  le  fichier  courant  une  chaine  de  caractères   par  une  autre  chaine  de  caractères   Ex:  #define    taille  100           Remplace  dans  tout  le  fichier  la  chaine  «  taille  »    par  la  chaine  «  100  »   –  UBle  dans  dans  le  cas  ou  l’on  souhaite  définir  des  constantes  avant  la   compilaBon  (ex:  fixer  la  taille  d’un  tableau)   –  UBle  pour  pouvoir  changer  facilement  cehe  valeur  dans  le  programme    =>  changer  uniquement  la  ligne  du  #define   Préprocesseur   /*  Exemple.c*/   #define  N  10   void  main()     {  int    i,  S=0;      for  (  i=1;  i<=N;i++)      S+=i;            prin=(«  S=%d  »,  S);   }   Préprocesseur   /*  Exemple.c*/   #define  N  10   void  main()     {  int    i,  S=0;      for  (  i=1;  i<=N;i++)      S+=i;            prin=(«  S=%d  »,  S);   }   void  main()     {  int    i,  S=0;      for  (  i=1;  i<=10;i++)      S+=i;            prin=(«  S=%d  »,  S);   }   N  remplacé  par  10   Avant  la  compilaBon   AhenBon!!   void  main()     {  int    i,  S=0;      const  int  N=10;      for  (  i=1;  i<=N;i++)      S+=i;            prin=(«  S=%d  »,  S);   }   void  main()     {  int    i,  S=0;      for  (  i=1;  i<=10;i++)      S+=i;            prin=(«  S=%d  »,  S);   }   N  est  une  variable  de  valeur  constante   Ne  pas  confonde  #define      et      const   IniBalisée  à  10  à  la  compilaBon   Préprocesseur   •  Préférer  l’uBlisaBon  de  const  à  #define  pour  la  définiBon  de   constantes    Syntaxe      const  type  nom_variable=valeur            Ex:    const  int  Taille_Max=10;              const  MSG  =  «  hello  »              const  struct  date  d={12,  10,  2008}   –  Avantages   •  la  portée  est  limitée  au  bloc  où  la  constante  est  définie  :  un  bloc,  une   foncBon  ou  l’ensemble  du  programme   •  la  déclaraBon  de  type  est  contrôlée  par  le  compilateur   Préprocesseur   •  La  subsBtuBon  symbolique    #define   –  Permet  de  remplacer  dans  le  fichier  courant  une  chaine  de  caractères   par  une  autre  chaine  de  caractères   -­‐  DéfiniBon  de  macro   Syntaxe        #define    nom_macro(X,Y,..)    (code)   Ex:        #define  SOM(X,Y)  (X+Y)   –  UBle  dans  le  cas  d’un  code  de  peBte  taille  appelé  souvent   •  Min,  max,  valeur  absolue,  .etc.   –  Moins  coûteux  que  la  définiBon  d’une  foncBon   Préprocesseur   /*  Exemple.c*/   #define    MIN  (X,Y)  (X
本文档为【Preprocesseur】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_270459
暂无简介~
格式:pdf
大小:188KB
软件:PDF阅读器
页数:0
分类:工学
上传时间:2011-03-23
浏览量:13