{"id":1233,"date":"2025-08-24T01:25:42","date_gmt":"2025-08-23T23:25:42","guid":{"rendered":"https:\/\/dyb.fr\/?p=1233"},"modified":"2025-08-24T01:25:42","modified_gmt":"2025-08-23T23:25:42","slug":"snippet-vscode-generer-automatiquement-vos-ifndef-en-c-c","status":"publish","type":"post","link":"https:\/\/dyb.eu\/blog\/snippet-vscode-generer-automatiquement-vos-ifndef-en-c-c\/","title":{"rendered":"Snippet VSCode : G\u00e9n\u00e9rer automatiquement vos #ifndef en C\/C++"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Pourquoi perdre du temps \u00e0 r\u00e9\u00e9crire des garde-fous de header ?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quand on code en C ou C++, chaque fichier <code>.h<\/code> doit \u00eatre prot\u00e9g\u00e9 avec un <strong>header guard<\/strong> (<code>#ifndef<\/code>, <code>#define<\/code>, <code>#endif<\/code>) pour \u00e9viter les inclusions multiples.<br>On a tous d\u00e9j\u00e0 fait du <strong>copier-coller<\/strong> un peu m\u00e9canique\u2026 mais VSCode permet d\u2019automatiser \u00e7a en <strong>un snippet ultra simple<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le snippet magique<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Voici un exemple de snippet \u00e0 ajouter dans vos <strong>User Snippets<\/strong> VSCode (menu <em>Preferences > User Snippets<\/em> \u2192 choisir <code>cpp.json<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"C C++ Header\": {\n    \"scope\": \"c, cpp\",\n    \"prefix\": \"header\",\n    \"description\": \"Add #ifndef, #define and #endif\",\n\n    \"body\": &#91;\n        \"#ifndef ${TM_FILENAME_BASE\/(.*)\/${1:\/upcase}\/}_H\",\n        \"#define ${TM_FILENAME_BASE\/(.*)\/${1:\/upcase}\/}_H\",\n        \"\",\n        \"$0\",\n        \"\",\n        \"#endif\"\n    ]\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Comment \u00e7a marche ?<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tapez simplement <code>header<\/code> dans un fichier <code>.h<\/code><\/li>\n\n\n\n<li>Appuyez sur <code>Tab<\/code> \u2192 VSCode g\u00e9n\u00e8re automatiquement :<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#ifndef MONFICHIER_H\n#define MONFICHIER_H\n\n\/\/ Votre code ici\n\n#endif\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Le nom du fichier est repris automatiquement et converti en majuscules. \ud83d\ude80<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gain de temps &amp; de rigueur<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Plus besoin d\u2019\u00e9crire les guards \u00e0 la main<\/li>\n\n\n\n<li>Uniformit\u00e9 garantie sur tous vos headers<\/li>\n\n\n\n<li>Moins d\u2019erreurs d\u2019inclusion multiple<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Un petit snippet, un <strong>gros confort au quotidien<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pourquoi perdre du temps \u00e0 r\u00e9\u00e9crire des garde-fous de header ? Quand on code en C ou C++, chaque fichier .h doit \u00eatre prot\u00e9g\u00e9 avec un header guard (#ifndef, #define, #endif) pour \u00e9viter les inclusions multiples.On a tous d\u00e9j\u00e0 fait du copier-coller un peu m\u00e9canique\u2026 mais VSCode permet d\u2019automatiser \u00e7a en un snippet ultra simple. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,30],"tags":[33,35],"class_list":["post-1233","post","type-post","status-publish","format-standard","hentry","category-dev","category-quicktip","tag-dev","tag-vscode"],"_links":{"self":[{"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/posts\/1233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/comments?post=1233"}],"version-history":[{"count":0,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/posts\/1233\/revisions"}],"wp:attachment":[{"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/media?parent=1233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/categories?post=1233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/tags?post=1233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}