{"id":416,"date":"2015-02-24T18:33:55","date_gmt":"2015-02-24T18:33:55","guid":{"rendered":"http:\/\/anthroponaute.fr\/blog-informatique\/?p=416"},"modified":"2015-05-21T10:13:05","modified_gmt":"2015-05-21T10:13:05","slug":"utilisation-du-preprocesseur","status":"publish","type":"post","link":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/?p=416","title":{"rendered":"Utilisation du pr\u00e9processeur"},"content":{"rendered":"<p><a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2015\/02\/224706.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1924\" src=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2015\/02\/224706.png\" alt=\"224706\" width=\"100\" height=\"100\" \/><\/a><\/p>\n<p><strong>Intro :<\/strong><\/p>\n<p>En C++, avant de compiler le programme, il est possible d&rsquo;effectuer certaines modifications sur le code source. Le programme effectuant ces modifications s&rsquo;appelle le pr\u00e9processeur. Les commandes destin\u00e9es au pr\u00e9processeur commencent toutes par # en d\u00e9but de ligne.<\/p>\n<p><strong>Pr\u00e9requis :<\/strong><\/p>\n<p>Savoir les rudiments du C++.<\/p>\n<p><strong>Inclusion de fichiers sources :<\/strong><\/p>\n<p>On peut inclure des fichiers .h avec la directive #include :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\n#include &quot;EventManager.h&quot;\r\n#include &lt;iostream&gt;\r\n\r\n<\/pre>\n<p>Cela a pour effet d&rsquo;inclure le code source du fichier \u00e0 l&#8217;emplacement indiqu\u00e9.<\/p>\n<p><strong>Directives du pr\u00e9processeur :<\/strong><\/p>\n<p>#define : permet de d\u00e9finir une constante globale :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\n#define CAMERA_MOVE_SPEED 2.0f\r\n\r\n<\/pre>\n<p>#ifndef : permet de tester si la variable test\u00e9e n&rsquo;est pas d\u00e9finie<\/p>\n<p>#ifdef : permet de tester si la variable test\u00e9e est d\u00e9finie<\/p>\n<p><strong>Macro pr\u00e9d\u00e9finies :<\/strong><\/p>\n<p><span id=\"mt7\" class=\"sentence SentenceHover\" data-guid=\"62af8f46d872569ddc839cd61f6e2cc5\" data-source=\"__DATE__\">__DATE__ : <span id=\"mt8\" class=\"sentence\" data-guid=\"6123a72584389012b9d444f7fc3be3a4\" data-source=\"The compilation date of the current source file.\">date de compilation du fichier source actuel<\/span><br \/>\n<\/span><\/p>\n<p><span id=\"mt11\" class=\"sentence SentenceHover\" data-guid=\"6f978bf7541aebac40a0f8f894390a2e\" data-source=\"__FILE__\">__FILE__\u00a0 : <span id=\"mt12\" class=\"sentence\" data-guid=\"b49c5fb247010d7b7f47135ffc8a5152\" data-source=\"The name of the current source file.\">nom du fichier source actuel<\/span><br \/>\n<\/span><\/p>\n<p><span id=\"mt15\" class=\"sentence\" data-guid=\"aa8dae6cf20b876a81d68f85dc1495e6\" data-source=\"__LINE__\">__LINE__ <span id=\"mt22\" class=\"sentence\" data-guid=\"ede85d95b143f297856b92d809595317\" data-source=\"__TIME__\">: n<span id=\"mt16\" class=\"sentence SentenceHover\" data-guid=\"926c98f3df028006c8a2e7344d286e38\" data-source=\"The line number in the current source file.\">um\u00e9ro de ligne dans le fichier source actuel<\/span><\/span><br \/>\n<\/span><\/p>\n<p><span id=\"mt22\" class=\"sentence\" data-guid=\"ede85d95b143f297856b92d809595317\" data-source=\"__TIME__\">__TIME__ : <span id=\"mt25\" class=\"sentence SentenceHover\" data-guid=\"16dda183d507be0492f50d88f27af9a2\" data-source=\"__TIMESTAMP__\">h<span id=\"mt23\" class=\"sentence SentenceHover\" data-guid=\"f18ed7e84f901847abcebad5f80d3167\" data-source=\"The most recent compilation time of the current source file.\">eure de compilation la plus r\u00e9cente du fichier source actuel<\/span><\/span><br \/>\n<\/span><\/p>\n<p><span id=\"mt80\" class=\"sentence SentenceHover\" data-guid=\"b268e091be5fb3f219182cfa50ce7302\" data-source=\"__FUNCTION__\">__FUNCTION__ : nom de la fonction en cours<br \/>\n<\/span><\/p>\n<p><span id=\"mt149\" class=\"sentence\" data-guid=\"ef068793fb644474b36e5963b6aefce6\" data-source=\"_WIN32\">_WIN32 : d\u00e9fini si le programme est compil\u00e9 sous Windows ou non<br \/>\n<\/span><\/p>\n<p>__VA_ARGS__ : voir <a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/?p=129\">cette article<\/a><\/p>\n<p><strong>Pragma :<\/strong><\/p>\n<p>Pour supprimer des warnings que vous jugez inutiles :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\n#pragma warning (disable : 4018 )\r\n\r\n<\/pre>\n<p>Pour sp\u00e9cifier au compilateur que le fichier ne doit \u00eatre inclu qu&rsquo;une fois :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\n#pragma once\r\n\r\n<\/pre>\n<p>Pour sp\u00e9cifier au compilateur de lier une librairie donn\u00e9e :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#pragma comment(lib, &quot;Newton.lib&quot;)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>R\u00e9sum\u00e9 :<\/strong><\/p>\n<p>Nous avons \u00e9num\u00e9r\u00e9 les principales fonctionnalit\u00e9s du pr\u00e9processeur en C++.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intro : En C++, avant de compiler le programme, il est possible d&rsquo;effectuer certaines modifications sur le code source. Le programme effectuant ces modifications s&rsquo;appelle le pr\u00e9processeur. Les commandes destin\u00e9es au pr\u00e9processeur commencent toutes par # en d\u00e9but de ligne. Pr\u00e9requis : Savoir les rudiments du C++. Inclusion de fichiers sources : On peut inclure [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/416"}],"collection":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=416"}],"version-history":[{"count":32,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/416\/revisions"}],"predecessor-version":[{"id":2583,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/416\/revisions\/2583"}],"wp:attachment":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}