{"id":7613,"date":"2026-09-17T22:40:00","date_gmt":"2026-09-17T20:40:00","guid":{"rendered":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/"},"modified":"2026-09-17T22:40:00","modified_gmt":"2026-09-17T20:40:00","slug":"comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees","status":"publish","type":"post","link":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/","title":{"rendered":"Comprendre le cast en C : conversion explicite et implicite expliqu\u00e9es"},"content":{"rendered":"<h1>Le cast en C : conversion explicite et conversion implicite<\/h1>\n<div class=\"sbi-cast-wrap\">\n<p>\nEn C, une valeur change de type <strong>bien plus souvent que le programmeur ne l&rsquo;\u00e9crit<\/strong>. Le compilateur convertit tout seul dans une addition, dans un appel de fonction, dans une affectation&nbsp;; le <strong>cast<\/strong> ne fait qu&rsquo;ajouter une conversion explicite, demand\u00e9e \u00e0 la main. Comprendre le <strong>cast en C<\/strong>, c&rsquo;est donc surtout savoir quelles conversions se produisent sans qu&rsquo;on les demande, et lesquelles la norme d\u00e9finit vraiment.\n<\/p>\n<div class=\"sbi-cast-answer\">\n<div class=\"sbi-cast-kicker\">R\u00e9ponse directe<\/div>\n<div class=\"sbi-cast-txt\">Un <strong>cast<\/strong> s&rsquo;\u00e9crit <code>(type) expression<\/code> et force une conversion. Une <strong>conversion implicite<\/strong> est appliqu\u00e9e par le compilateur selon le contexte (promotions enti\u00e8res, conversions arithm\u00e9tiques usuelles, affectation, passage d&rsquo;argument). Les deux suivent <strong>les m\u00eames r\u00e8gles de conversion<\/strong> : le cast ne cr\u00e9e pas un m\u00e9canisme \u00e0 part, il d\u00e9clenche explicitement celui qui existe d\u00e9j\u00e0.<\/div>\n<\/div>\n<h2>Les fondamentaux : (type) expression et conversions implicites<\/h2>\n<p>\nLa syntaxe canonique du cast est <code>(type) expression<\/code>. Elle ne modifie pas l&rsquo;objet d&rsquo;origine : elle produit une <em>nouvelle valeur<\/em> du type demand\u00e9. Tout le reste du sujet tient dans deux familles de conversions implicites que la norme d\u00e9crit pr\u00e9cis\u00e9ment.\n<\/p>\n<p>\nLes <strong>promotions enti\u00e8res<\/strong> s&rsquo;appliquent d&rsquo;abord aux types de rang inf\u00e9rieur ou \u00e9gal \u00e0 <code>int<\/code>. La norme ISO C les formule ainsi : \u00ab&nbsp;<em>If an int can represent all values of the original type, the value is converted to an int; otherwise, it is converted to an unsigned int. These are called the integer promotions.<\/em>&nbsp;\u00bb Elle ajoute que \u00ab&nbsp;<em>the integer promotions preserve value including sign<\/em>&nbsp;\u00bb. Autrement dit, un <code>char<\/code> ou un <code>short<\/code> ne participe jamais directement \u00e0 un calcul : il est d&rsquo;abord promu.\n<\/p>\n<p>\nViennent ensuite les <strong>conversions arithm\u00e9tiques usuelles<\/strong>, qui d\u00e9terminent un type commun aux deux op\u00e9randes d&rsquo;un op\u00e9rateur arithm\u00e9tique. L&rsquo;ordre compte : si l&rsquo;un des op\u00e9randes est un <code>long double<\/code>, on converge vers <code>long double<\/code>&nbsp;; sinon vers <code>double<\/code>&nbsp;; sinon vers <code>float<\/code>. Si aucun op\u00e9rande n&rsquo;est flottant, <strong>les promotions enti\u00e8res sont appliqu\u00e9es aux deux op\u00e9randes<\/strong>, puis les r\u00e8gles de type commun entier s&rsquo;appliquent.\n<\/p>\n<p>\nC&rsquo;est ce m\u00e9canisme qui explique le pi\u00e8ge le plus classique du langage, la division enti\u00e8re :\n<\/p>\n<pre class=\"sbi-cast-code\"><code>#include &lt;stdio.h&gt;\nint main(void)\n{\n    int a = 7, b = 2;\n    printf(\"a \/ b         = %f\\n\", (double)(a \/ b));\n    printf(\"(double)a \/ b = %f\\n\", (double)a \/ b);\n    return 0;\n}<\/code><\/pre>\n<div class=\"sbi-cast-out\">\n<div class=\"sbi-cast-kicker\">Sortie<\/div>\n<div class=\"sbi-cast-txt\"><code>a \/ b         = 3.000000<\/code><br \/><code>(double)a \/ b = 3.500000<\/code><\/div>\n<\/div>\n<p>\nDans le premier cas, <code>a<\/code> et <code>b<\/code> sont deux <code>int<\/code> : la division est enti\u00e8re et le r\u00e9sultat vaut 3 <em>avant<\/em> toute conversion vers <code>double<\/code>. Dans le second, le cast fait de <code>a<\/code> un <code>double<\/code>&nbsp;; les conversions arithm\u00e9tiques usuelles alignent alors <code>b<\/code> sur <code>double<\/code>, et la division est flottante. Depuis C99, la division enti\u00e8re est <strong>tronqu\u00e9e vers z\u00e9ro<\/strong>.\n<\/p>\n<h2>Ce que la norme d\u00e9finit, et ce qu&rsquo;elle laisse ind\u00e9fini<\/h2>\n<p>\nC&rsquo;est ici que la plupart des articles sur le cast induisent en erreur. Trois expressions circulent comme si elles \u00e9taient synonymes \u2014 <em>ind\u00e9fini<\/em>, <em>non sp\u00e9cifi\u00e9<\/em>, <em>d\u00e9fini par l&rsquo;impl\u00e9mentation<\/em> \u2014 alors qu&rsquo;elles d\u00e9signent trois r\u00e9gimes distincts. Un comportement <strong>d\u00e9fini par l&rsquo;impl\u00e9mentation<\/strong> est document\u00e9 par le compilateur et reste pr\u00e9visible sur une plateforme donn\u00e9e&nbsp;; un comportement <strong>ind\u00e9fini<\/strong> ne donne aucune garantie et autorise le compilateur \u00e0 optimiser le code comme si le cas ne pouvait pas survenir.\n<\/p>\n<table class=\"sbi-cast-table\">\n<thead>\n<tr>\n<th>Conversion<\/th>\n<th>R\u00e9gime<\/th>\n<th>Ce que dit la source<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Entier &rarr; type <strong>non sign\u00e9<\/strong> trop \u00e9troit<\/td>\n<td><span class=\"sbi-cast-ok\">D\u00e9fini<\/span><\/td>\n<td>La valeur est ramen\u00e9e dans l&rsquo;intervalle du type par ajouts ou soustractions r\u00e9p\u00e9t\u00e9s de 2^N : arithm\u00e9tique modulo.<\/td>\n<\/tr>\n<tr>\n<td>Entier &rarr; type <strong>sign\u00e9<\/strong>, valeur non repr\u00e9sentable<\/td>\n<td><span class=\"sbi-cast-mid\">D\u00e9fini par l&rsquo;impl\u00e9mentation<\/span><\/td>\n<td>Le r\u00e9sultat est d\u00e9fini par l&rsquo;impl\u00e9mentation, qui peut aussi lever un signal.<\/td>\n<\/tr>\n<tr>\n<td><strong>D\u00e9passement<\/strong> en arithm\u00e9tique sign\u00e9e<\/td>\n<td><span class=\"sbi-cast-ko\">Ind\u00e9fini<\/span><\/td>\n<td>Le r\u00e9sultat peut boucler, provoquer un pi\u00e8ge, ou \u00eatre supprim\u00e9 par l&rsquo;optimiseur.<\/td>\n<\/tr>\n<tr>\n<td>Flottant &rarr; entier<\/td>\n<td><span class=\"sbi-cast-mid\">Troncature, puis ind\u00e9fini<\/span><\/td>\n<td>La partie fractionnaire est \u00e9cart\u00e9e (troncature vers z\u00e9ro)&nbsp;; si la partie enti\u00e8re n&rsquo;est pas repr\u00e9sentable, le comportement est ind\u00e9fini.<\/td>\n<\/tr>\n<tr>\n<td><code>double<\/code> &rarr; <code>float<\/code><\/td>\n<td><span class=\"sbi-cast-mid\">D\u00e9fini par l&rsquo;impl\u00e9mentation<\/span><\/td>\n<td>Valeur inchang\u00e9e si elle est repr\u00e9sentable exactement&nbsp;; sinon arrondi \u00e0 la valeur voisine, la direction d&rsquo;arrondi \u00e9tant d\u00e9finie par l&rsquo;impl\u00e9mentation.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\nLa distinction la plus utile en pratique est la premi\u00e8re ligne contre la troisi\u00e8me. <strong>Convertir<\/strong> un entier n\u00e9gatif vers un type non sign\u00e9 n&rsquo;a rien d&rsquo;accidentel : la norme ISO C pr\u00e9voit que \u00ab&nbsp;<em>the value is converted by repeatedly adding or subtracting one more than the maximum value that can be represented in the new type until the value is in the range of the new type<\/em>&nbsp;\u00bb. Le r\u00e9sultat est parfaitement d\u00e9termin\u00e9. En revanche, <strong>d\u00e9passer la capacit\u00e9 d&rsquo;un type sign\u00e9 au cours d&rsquo;un calcul<\/strong> est un comportement ind\u00e9fini \u2014 ce n&rsquo;est pas la m\u00eame op\u00e9ration, et c&rsquo;est elle qui casse les programmes.\n<\/p>\n<p>\nPour la conversion flottant vers entier, la norme est tout aussi nette : \u00ab&nbsp;<em>the fractional part is discarded (i.e., the value is truncated toward zero). If the value of the integral part cannot be represented by the integer type, the behavior is undefined.<\/em>&nbsp;\u00bb La troncature va donc vers z\u00e9ro, et non vers le bas : <code>-3.7<\/code> devient <code>-3<\/code>, pas <code>-4<\/code>.\n<\/p>\n<pre class=\"sbi-cast-code\"><code>#include &lt;stdio.h&gt;\nint main(void)\n{\n    unsigned char u = (unsigned char)-1;\n    printf(\"(unsigned char)-1 = %u\\n\", u);\n    printf(\"(int)-3.7 = %d\\n\", (int)-3.7);\n    printf(\"(int)3.7  = %d\\n\", (int)3.7);\n    return 0;\n}<\/code><\/pre>\n<div class=\"sbi-cast-out\">\n<div class=\"sbi-cast-kicker\">Sortie (octet de 8 bits)<\/div>\n<div class=\"sbi-cast-txt\"><code>(unsigned char)-1 = 255<\/code><br \/><code>(int)-3.7 = -3<\/code><br \/><code>(int)3.7  = 3<\/code><\/div>\n<\/div>\n<p>\nLa premi\u00e8re ligne m\u00e9rite une pr\u00e9cision : la valeur obtenue est <code>UCHAR_MAX<\/code>, c&rsquo;est-\u00e0-dire le modulo d\u00e9crit par la norme. Elle vaut 255 <em>lorsque l&rsquo;octet fait 8 bits<\/em>, ce qui est le cas courant mais reste une propri\u00e9t\u00e9 de l&rsquo;impl\u00e9mentation, expos\u00e9e par <code>CHAR_BIT<\/code>.\n<\/p>\n<div class=\"sbi-cast-video\">\n<div class=\"sbi-cast-vhead\">\n    <span class=\"sbi-cast-ytb\">\u25b6 YouTube<\/span><br \/>\n    <span class=\"sbi-cast-vchan\">LES TEACHERS DU NET<\/span><br \/>\n    <span class=\"sbi-cast-vviews\">11 k vues<\/span><\/div>\n<p>  <a href=\"https:\/\/www.youtube.com\/watch?v=R5-2ICcBWIE\" target=\"_blank\" rel=\"noopener nofollow\" class=\"sbi-cast-vlink\"><br \/>\n    <img decoding=\"async\" src=\"https:\/\/i.ytimg.com\/vi\/R5-2ICcBWIE\/hqdefault.jpg\" alt=\"LANGAGE C - 15 - Le casting ou transtypage\" class=\"sbi-cast-vimg\"><br \/>\n    <span class=\"sbi-cast-vplay\"><span class=\"sbi-cast-vbtn\">\u25b6<\/span><\/span><\/a><\/p>\n<div class=\"sbi-cast-vtitle\">LANGAGE C &#8211; 15 &#8211; Le casting ou transtypage<\/div>\n<\/div>\n<h2>Bonnes pratiques : largeurs de types, pointeurs, lisibilit\u00e9<\/h2>\n<p>\nLa premi\u00e8re r\u00e8gle est de <strong>ne jamais \u00e9crire une taille de type en dur<\/strong>. La norme ne fixe pas que <code>int<\/code> occupe quatre octets ni <code>long<\/code> huit : elle impose des largeurs <em>minimales<\/em> et laisse le reste \u00e0 l&rsquo;impl\u00e9mentation. Les valeurs r\u00e9elles se lisent dans <code>&lt;limits.h&gt;<\/code> et se mesurent avec <code>sizeof<\/code> :\n<\/p>\n<pre class=\"sbi-cast-code\"><code>#include &lt;stdio.h&gt;\n#include &lt;limits.h&gt;\nint main(void)\n{\n    printf(\"CHAR_BIT    = %d\\n\", CHAR_BIT);\n    printf(\"sizeof(int) = %zu\\n\", sizeof(int));\n    printf(\"INT_MAX     = %d\\n\", INT_MAX);\n    return 0;\n}<\/code><\/pre>\n<p>\nCe programme n&rsquo;a <strong>pas de sortie universelle<\/strong> : c&rsquo;est pr\u00e9cis\u00e9ment ce qu&rsquo;il d\u00e9montre. Un code portable interroge <code>&lt;limits.h&gt;<\/code> plut\u00f4t que de supposer une largeur, et raisonne sur <code>INT_MAX<\/code> plut\u00f4t que sur une constante recopi\u00e9e.\n<\/p>\n<p>\nDeuxi\u00e8me point, souvent mal compris : <strong>le cast du retour de <code>malloc<\/code> n&rsquo;est pas n\u00e9cessaire en C<\/strong>. La fonction renvoie un <code>void *<\/code>, et la norme pr\u00e9voit qu&rsquo;un pointeur vers <code>void<\/code> \u00ab&nbsp;<em>can be implicitly converted to and from any pointer to object type<\/em>&nbsp;\u00bb. L&rsquo;\u00e9criture <code>int *tab = malloc(10 * sizeof(int));<\/code> est donc correcte telle quelle. Ajouter <code>(int *)<\/code> ne renforce aucune s\u00e9curit\u00e9 m\u00e9moire&nbsp;; c&rsquo;est une habitude venue du C++, o\u00f9 la conversion implicite n&rsquo;existe pas. Ce qui compte r\u00e9ellement ici, c&rsquo;est de <strong>tester le retour<\/strong>, <code>malloc<\/code> renvoyant un pointeur nul en cas d&rsquo;\u00e9chec.\n<\/p>\n<p>\nTroisi\u00e8me point : un cast est une <strong>affirmation adress\u00e9e au compilateur<\/strong>. En \u00e9crivant <code>(short)x<\/code>, on lui demande de ne plus signaler une conversion qu&rsquo;il aurait diagnostiqu\u00e9e. C&rsquo;est utile quand la r\u00e9duction est voulue et ma\u00eetris\u00e9e&nbsp;; c&rsquo;est un moyen commode de faire taire un avertissement l\u00e9gitime dans le cas contraire. D&rsquo;o\u00f9 trois r\u00e9flexes utiles : compiler avec les avertissements activ\u00e9s, v\u00e9rifier avant le cast que la valeur tient dans le type cible, et commenter tout cast dont la raison n&rsquo;est pas \u00e9vidente \u00e0 la lecture.\n<\/p>\n<p>\nEnfin, les conversions entre types de pointeurs rel\u00e8vent d&rsquo;un r\u00e9gime encore plus strict que les conversions arithm\u00e9tiques. La norme pr\u00e9cise que la conversion d&rsquo;un pointeur vers un type entier a un r\u00e9sultat d\u00e9fini par l&rsquo;impl\u00e9mentation, et que le comportement devient ind\u00e9fini si le r\u00e9sultat n&rsquo;est pas repr\u00e9sentable dans le type entier vis\u00e9. Un cast de pointeur n&rsquo;est donc jamais anodin.\n<\/p>\n<h2>\u00c0 retenir<\/h2>\n<div class=\"sbi-cast-keep\">\n<div class=\"sbi-cast-kicker sbi-cast-kicker-light\">L&rsquo;essentiel<\/div>\n<ul>\n<li>Le cast <code>(type) expression<\/code> d\u00e9clenche explicitement une conversion que le langage applique d\u00e9j\u00e0 implicitement dans beaucoup de contextes.<\/li>\n<li>Les promotions enti\u00e8res s&rsquo;appliquent avant les conversions arithm\u00e9tiques usuelles&nbsp;; un <code>char<\/code> ou un <code>short<\/code> ne calcule jamais dans son propre type.<\/li>\n<li>Convertir vers un type <strong>non sign\u00e9<\/strong> est <strong>d\u00e9fini<\/strong> (modulo). Convertir vers un type <strong>sign\u00e9<\/strong> hors intervalle est <strong>d\u00e9fini par l&rsquo;impl\u00e9mentation<\/strong>. <strong>D\u00e9passer<\/strong> la capacit\u00e9 d&rsquo;un type sign\u00e9 dans un calcul est <strong>ind\u00e9fini<\/strong>.<\/li>\n<li>Flottant vers entier : troncature <strong>vers z\u00e9ro<\/strong>, et comportement ind\u00e9fini si la partie enti\u00e8re ne tient pas dans le type cible.<\/li>\n<li>Aucune taille de type n&rsquo;est \u00e0 \u00e9crire en dur : <code>&lt;limits.h&gt;<\/code> et <code>sizeof<\/code> font foi.<\/li>\n<\/ul>\n<\/div>\n<h3>Questions fr\u00e9quentes<\/h3>\n<div class=\"sbi-cast-faq\">\n<details>\n<summary>Cast et transtypage, est-ce la m\u00eame chose ?<\/summary>\n<div class=\"sbi-cast-txt\">Oui. \u00ab&nbsp;Transtypage&nbsp;\u00bb est le terme fran\u00e7ais correspondant au <em>type casting<\/em> anglais. Les deux d\u00e9signent la conversion explicite \u00e9crite <code>(type) expression<\/code>.<\/div>\n<\/details>\n<details>\n<summary>Le cast modifie-t-il la variable d&rsquo;origine ?<\/summary>\n<div class=\"sbi-cast-txt\">Non. Il produit une valeur temporaire du type demand\u00e9. La variable cast\u00e9e conserve son type et sa valeur&nbsp;; seule une affectation la modifierait.<\/div>\n<\/details>\n<details>\n<summary>Pourquoi 7 \/ 2 donne-t-il 3 et non 3.5 ?<\/summary>\n<div class=\"sbi-cast-txt\">Parce que les deux op\u00e9randes sont entiers : la division est enti\u00e8re et le quotient est tronqu\u00e9 vers z\u00e9ro. Convertir un seul op\u00e9rande en <code>double<\/code> suffit \u00e0 rendre l&rsquo;op\u00e9ration flottante, les conversions arithm\u00e9tiques usuelles alignant l&rsquo;autre op\u00e9rande.<\/div>\n<\/details>\n<details>\n<summary>Convertir un nombre n\u00e9gatif en type non sign\u00e9 est-il un bug ?<\/summary>\n<div class=\"sbi-cast-txt\">C&rsquo;est une op\u00e9ration parfaitement d\u00e9finie par la norme, au r\u00e9sultat calculable modulo 2^N. Elle devient un d\u00e9faut seulement si elle n&rsquo;\u00e9tait pas voulue \u2014 typiquement lors d&rsquo;une comparaison entre un entier sign\u00e9 et un entier non sign\u00e9, o\u00f9 la conversion a lieu sans \u00eatre \u00e9crite.<\/div>\n<\/details>\n<details>\n<summary>Faut-il caster le retour de malloc ?<\/summary>\n<div class=\"sbi-cast-txt\">Non, pas en C : <code>void *<\/code> se convertit implicitement vers tout pointeur d&rsquo;objet. Le cast est seulement n\u00e9cessaire si le m\u00eame code doit \u00eatre compil\u00e9 en C++.<\/div>\n<\/details>\n<\/div>\n<div class=\"sbi-cast-src\">\n<div class=\"sbi-cast-kicker\">Sources<\/div>\n<ul>\n<li><a href=\"https:\/\/www.open-std.org\/jtc1\/sc22\/wg14\/www\/standards\" target=\"_blank\" rel=\"nofollow noopener\">ISO\/IEC JTC1\/SC22\/WG14 \u2014 C: Approved standards<\/a> : la norme du langage est ISO\/IEC 9899&nbsp;; le brouillon public N1570 (12 avril 2011) correspond \u00e0 C11 et contient les clauses de conversion cit\u00e9es ici.<\/li>\n<li><a href=\"https:\/\/en.cppreference.com\/w\/c\/language\/conversion\" target=\"_blank\" rel=\"nofollow noopener\">Implicit conversions \u2014 cppreference.com<\/a> : promotions enti\u00e8res, conversions arithm\u00e9tiques usuelles, conversions entre entiers, flottants et pointeurs.<\/li>\n<li><a href=\"https:\/\/gcc.gnu.org\/onlinedocs\/gcc\/Integers-implementation.html\" target=\"_blank\" rel=\"nofollow noopener\">Integers implementation \u2014 Using the GNU Compiler Collection (GCC)<\/a> : le choix document\u00e9 par GCC pour les conversions vers un type sign\u00e9 hors intervalle \u2014 r\u00e9duction modulo 2^N, sans signal lev\u00e9.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<hr>\n<div class=\"articles-lies\">\n<h3>\u00c0 lire aussi<\/h3>\n<ul>\n<li><a href=\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversions-de-type-explicites-et-applications\/\">Comprendre le cast en C : conversions de type explicites et applications<\/a><\/li>\n<li><a href=\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/aide-au-codage-cim-10-comprendre-la-classification-et-ses-applications\/\">Aide au codage CIM 10 : Comprendre la classification et ses applications<\/a><\/li>\n<li><a href=\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comparer-les-methodes-natives-de-java-pour-la-comparaison-de-strings\/\">Comparer les m\u00e9thodes natives de Java pour la comparaison de strings<\/a><\/li>\n<li><a href=\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/logitech-bcc950-drivers-fonctionnement-et-optimisation-pour-la-visio-conference\/\">Logitech BCC950 Drivers : Fonctionnement et Optimisation pour la Visio Conf\u00e9rence<\/a><\/li>\n<\/ul>\n<\/div>\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Space+Grotesk:wght@600;700&#038;family=Inter:wght@400;500;600&#038;family=JetBrains+Mono:wght@500&#038;display=swap\">\n<style>\n.sbi-cast-wrap{font-family:\"Inter\",Helvetica,Arial,sans-serif;font-size:17px;line-height:1.65;color:#131a2b}\n.sbi-cast-wrap h2{font-family:\"Space Grotesk\",\"Inter\",Helvetica,sans-serif;font-weight:700;font-size:clamp(23px,3.1vw,31px);letter-spacing:-.015em;line-height:1.25;margin:48px 0 16px;color:#131a2b}\n.sbi-cast-wrap h3{font-family:\"Space Grotesk\",\"Inter\",Helvetica,sans-serif;font-weight:700;font-size:clamp(19px,2.3vw,23px);letter-spacing:-.01em;margin:40px 0 14px;color:#131a2b}\n.sbi-cast-wrap p{margin:0 0 18px}\n.sbi-cast-wrap code{font-family:\"JetBrains Mono\",ui-monospace,Consolas,monospace;font-weight:500;font-size:.9em;font-variant-ligatures:none;background:#eef1fb;color:#26308f;padding:1px 6px;border-radius:5px}\n.sbi-cast-kicker{font-family:\"Space Grotesk\",\"Inter\",sans-serif;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#3b4fd8;margin-bottom:8px}\n.sbi-cast-kicker-light{color:#9fb4ff}\n.sbi-cast-txt{font-size:16.5px;line-height:1.62}\n.sbi-cast-answer{background:#f3f5ff;border-left:5px solid #3b4fd8;border-radius:0 12px 12px 0;padding:22px 26px;margin:28px 0;box-shadow:0 1px 2px rgba(16,24,40,.05),0 12px 28px -18px rgba(16,24,40,.22)}\n.sbi-cast-code{background:#131a2b;color:#e6ecff;border-radius:12px;padding:20px 22px;margin:22px 0;overflow-x:auto;border-top:3px solid #3b4fd8;font-variant-ligatures:none}\n.sbi-cast-code code{background:transparent;color:#e6ecff;padding:0;font-size:14.5px;line-height:1.6;font-variant-ligatures:none}\n.sbi-cast-out{border:1px solid #dfe3f3;border-top:3px solid #3b4fd8;border-radius:10px;padding:16px 20px;margin:0 0 24px;background:#fbfcff;transition:.25s ease}\n.sbi-cast-out:hover{transform:translateY(-3px);box-shadow:0 1px 2px rgba(16,24,40,.05),0 14px 30px -18px rgba(16,24,40,.28)}\n.sbi-cast-out code{background:#eef1fb}\n.sbi-cast-table{width:100%;border-collapse:collapse;margin:26px 0;font-size:15.5px;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.06),0 14px 30px -20px rgba(16,24,40,.25)}\n.sbi-cast-table th{background:#eaeeff;font-family:\"Space Grotesk\",\"Inter\",sans-serif;font-weight:700;text-align:left;padding:13px 15px;color:#26308f;border-bottom:2px solid #3b4fd8}\n.sbi-cast-table td{padding:13px 15px;border-bottom:1px solid #e8ebf5;vertical-align:top}\n.sbi-cast-table tr:nth-child(even) td{background:#fafbff}\n.sbi-cast-ok{display:inline-block;font-weight:600;font-size:13.5px;color:#0b6b3f;background:#dcf5e8;padding:3px 10px;border-radius:20px}\n.sbi-cast-mid{display:inline-block;font-weight:600;font-size:13.5px;color:#8a5200;background:#fdeed4;padding:3px 10px;border-radius:20px}\n.sbi-cast-ko{display:inline-block;font-weight:600;font-size:13.5px;color:#9b1c1c;background:#fde0e0;padding:3px 10px;border-radius:20px}\n.sbi-cast-video{border:1px solid #dfe3f3;border-radius:14px;padding:16px 18px;margin:30px 0;background:#fbfcff;transition:.25s ease}\n.sbi-cast-video:hover{transform:translateY(-3px);box-shadow:0 1px 2px rgba(16,24,40,.05),0 14px 30px -18px rgba(16,24,40,.28)}\n.sbi-cast-vhead{display:flex;align-items:center;gap:9px;margin-bottom:11px;flex-wrap:wrap}\n.sbi-cast-ytb{font-size:11px;font-weight:700;letter-spacing:.06em;color:#fff;background:#f00;padding:3px 9px;border-radius:6px}\n.sbi-cast-vchan{font-size:13px;color:#5b6478;font-weight:600}\n.sbi-cast-vviews{margin-left:auto;font-size:13px;color:#5b6478}\n.sbi-cast-vlink{display:block;position:relative;border-radius:10px;overflow:hidden}\n.sbi-cast-vimg{width:100%;display:block}\n.sbi-cast-vplay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.18)}\n.sbi-cast-vbtn{width:62px;height:62px;border-radius:50%;background:rgba(255,0,0,.92);color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center}\n.sbi-cast-vtitle{font-size:14px;color:#131a2b;font-weight:600;margin-top:11px}\n.sbi-cast-keep{background:#131a2b;color:#eef3f9;border-radius:14px;padding:26px 28px;margin:28px 0;border-left:5px solid #3b4fd8;box-shadow:0 1px 2px rgba(16,24,40,.06),0 16px 34px -20px rgba(16,24,40,.45)}\n.sbi-cast-keep ul{margin:0;padding-left:20px}\n.sbi-cast-keep li{color:#eef3f9!important;margin:0 0 11px;font-size:16.5px;line-height:1.6}\n.sbi-cast-keep strong{color:#ffffff!important}\n.sbi-cast-keep em{color:#eef3f9!important}\n.sbi-cast-keep span{color:#eef3f9!important}\n.sbi-cast-keep code{background:#26308f!important;color:#dfe6ff!important}\n.sbi-cast-faq{margin:24px 0}\n.sbi-cast-faq details{border:1px solid #dfe3f3;border-radius:10px;padding:14px 18px;margin:0 0 11px;background:#fbfcff;transition:.25s ease}\n.sbi-cast-faq details:hover{transform:translateY(-3px);box-shadow:0 1px 2px rgba(16,24,40,.05),0 12px 26px -18px rgba(16,24,40,.26)}\n.sbi-cast-faq summary{cursor:pointer;font-family:\"Space Grotesk\",\"Inter\",sans-serif;font-weight:700;font-size:16.5px;color:#131a2b;list-style:none}\n.sbi-cast-faq summary::-webkit-details-marker{display:none}\n.sbi-cast-faq summary::before{content:\"\u2192\";color:#3b4fd8;font-weight:700;margin-right:10px;display:inline-block;transition:.25s ease}\n.sbi-cast-faq details[open] summary::before{transform:rotate(90deg)}\n.sbi-cast-faq details .sbi-cast-txt{margin-top:11px;color:#3d4657}\n.sbi-cast-src{border:1px solid #dfe3f3;border-top:3px solid #3b4fd8;border-radius:12px;padding:20px 24px;margin:32px 0;background:#fbfcff}\n.sbi-cast-src ul{margin:0;padding-left:20px}\n.sbi-cast-src li{margin:0 0 10px;font-size:15.5px;line-height:1.58}\n.sbi-cast-src a{color:#26308f;font-weight:600;text-decoration:underline;text-decoration-color:#a9b6f5;text-underline-offset:3px}\n.sbi-cast-src a:hover{text-decoration-color:#3b4fd8}\n@media(max-width:640px){.sbi-cast-table{font-size:14px}.sbi-cast-table th,.sbi-cast-table td{padding:10px}.sbi-cast-answer,.sbi-cast-keep{padding:18px 20px}}\n<\/style>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":34,"featured_media":7639,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"manual_indexmenow":false,"indexmenow_id_project":0,"footnotes":""},"categories":[4523],"tags":[4677,4678,4679],"class_list":["post-7613","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-securite-et-resilience-des-reseaux","tag-cast-c","tag-conversion-types","tag-programmation-c","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-25"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.3 (Yoast SEO v26.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comprendre le cast en C : conversion explicite et implicite<\/title>\n<meta name=\"description\" content=\"Cast en C : ce que la norme d\u00e9finit vraiment. Promotions enti\u00e8res, conversions implicites, sign\u00e9 vers non sign\u00e9, flottant vers entier, exemples compil\u00e9s.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comprendre le cast en C : conversion explicite et implicite\" \/>\n<meta property=\"og:description\" content=\"Cast en C : ce que la norme d\u00e9finit vraiment. Promotions enti\u00e8res, conversions implicites, sign\u00e9 vers non sign\u00e9, flottant vers entier, exemples compil\u00e9s.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/\" \/>\n<meta property=\"og:site_name\" content=\"sbi29\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2025\/08\/sdxl-bf209e59289147990d4d1e633aa242ee-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hugo Lambrecht\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/\"},\"author\":{\"name\":\"Hugo Lambrecht\",\"@id\":\"https:\/\/sbi29.fr\/blog\/#\/schema\/person\/3c864cdc320801e3db34b663e7e3f816\"},\"headline\":\"Comprendre le cast en C : conversion explicite et implicite expliqu\u00e9es\",\"datePublished\":\"2026-09-17T20:40:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/\"},\"wordCount\":1754,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/sbi29.fr\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2025\/08\/sdxl-bf209e59289147990d4d1e633aa242ee-scaled.png\",\"keywords\":[\"cast c\",\"conversion types\",\"programmation c\"],\"articleSection\":[\"S\u00e9curit\u00e9 et R\u00e9silience des R\u00e9seaux\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/\",\"url\":\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/\",\"name\":\"Comprendre le cast en C : conversion explicite et implicite\",\"isPartOf\":{\"@id\":\"https:\/\/sbi29.fr\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2025\/08\/sdxl-bf209e59289147990d4d1e633aa242ee-scaled.png\",\"datePublished\":\"2026-09-17T20:40:00+00:00\",\"description\":\"Cast en C : ce que la norme d\u00e9finit vraiment. Promotions enti\u00e8res, conversions implicites, sign\u00e9 vers non sign\u00e9, flottant vers entier, exemples compil\u00e9s.\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#primaryimage\",\"url\":\"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2025\/08\/sdxl-bf209e59289147990d4d1e633aa242ee-scaled.png\",\"contentUrl\":\"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2025\/08\/sdxl-bf209e59289147990d4d1e633aa242ee-scaled.png\",\"width\":1200,\"height\":500},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sbi29.fr\/blog\/#website\",\"url\":\"https:\/\/sbi29.fr\/blog\/\",\"name\":\"sbi29.fr\",\"description\":\"SBI29, l&#039;innovation digitale \u00e0 votre service\",\"publisher\":{\"@id\":\"https:\/\/sbi29.fr\/blog\/#organization\"},\"alternateName\":\"SBI29, l'innovation digitale \u00e0 votre service\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sbi29.fr\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sbi29.fr\/blog\/#organization\",\"name\":\"Foretsensations.fr\",\"url\":\"https:\/\/sbi29.fr\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/sbi29.fr\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2024\/12\/SBI29.png\",\"contentUrl\":\"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2024\/12\/SBI29.png\",\"width\":500,\"height\":500,\"caption\":\"Foretsensations.fr\"},\"image\":{\"@id\":\"https:\/\/sbi29.fr\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/sbi29.fr\/blog\/#\/schema\/person\/3c864cdc320801e3db34b663e7e3f816\",\"name\":\"Hugo Lambrecht\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/sbi29.fr\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2026\/06\/persona_hugo-l-96x96.jpg\",\"contentUrl\":\"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2026\/06\/persona_hugo-l-96x96.jpg\",\"caption\":\"Hugo Lambrecht\"},\"description\":\"Geek assum\u00e9 et veilleur tech depuis plus de dix ans, je passe mes journ\u00e9es \u00e0 tester, comparer et expliquer le num\u00e9rique. Mes terrains favoris : les astuces high-tech du quotidien, la s\u00e9curit\u00e9 en ligne et les outils web, des VPN aux logiciels qui simplifient la vie. J'aime prendre un sujet r\u00e9put\u00e9 compliqu\u00e9 et le rendre limpide pour quelqu'un qui n'est pas d\u00e9veloppeur. Avant de recommander un produit ou un service, je le mets r\u00e9ellement \u00e0 l'\u00e9preuve, je v\u00e9rifie les versions et les tarifs en vigueur, et je signale les limites autant que les atouts. Je me m\u00e9fie des classements de complaisance : un comparatif n'a de valeur que si la m\u00e9thode est transparente. Mon fil rouge, c'est l'utilit\u00e9 concr\u00e8te : aider le lecteur \u00e0 mieux choisir, mieux configurer et mieux se prot\u00e9ger, sans tomber dans le jargon.\",\"sameAs\":[\"https:\/\/hugolambrecht.fr\/\"],\"url\":\"https:\/\/sbi29.fr\/blog\/auteur\/hugo-lambrecht\/\",\"jobTitle\":\"R\u00e9dacteur en chef \u00b7 Tech & High-tech\",\"knowsAbout\":[\"Tech\",\"Web\",\"High-tech\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comprendre le cast en C : conversion explicite et implicite","description":"Cast en C : ce que la norme d\u00e9finit vraiment. Promotions enti\u00e8res, conversions implicites, sign\u00e9 vers non sign\u00e9, flottant vers entier, exemples compil\u00e9s.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/","og_locale":"fr_FR","og_type":"article","og_title":"Comprendre le cast en C : conversion explicite et implicite","og_description":"Cast en C : ce que la norme d\u00e9finit vraiment. Promotions enti\u00e8res, conversions implicites, sign\u00e9 vers non sign\u00e9, flottant vers entier, exemples compil\u00e9s.","og_url":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/","og_site_name":"sbi29","og_image":[{"width":1200,"height":500,"url":"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2025\/08\/sdxl-bf209e59289147990d4d1e633aa242ee-scaled.png","type":"image\/png"}],"author":"Hugo Lambrecht","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#article","isPartOf":{"@id":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/"},"author":{"name":"Hugo Lambrecht","@id":"https:\/\/sbi29.fr\/blog\/#\/schema\/person\/3c864cdc320801e3db34b663e7e3f816"},"headline":"Comprendre le cast en C : conversion explicite et implicite expliqu\u00e9es","datePublished":"2026-09-17T20:40:00+00:00","mainEntityOfPage":{"@id":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/"},"wordCount":1754,"commentCount":0,"publisher":{"@id":"https:\/\/sbi29.fr\/blog\/#organization"},"image":{"@id":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#primaryimage"},"thumbnailUrl":"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2025\/08\/sdxl-bf209e59289147990d4d1e633aa242ee-scaled.png","keywords":["cast c","conversion types","programmation c"],"articleSection":["S\u00e9curit\u00e9 et R\u00e9silience des R\u00e9seaux"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/","url":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/","name":"Comprendre le cast en C : conversion explicite et implicite","isPartOf":{"@id":"https:\/\/sbi29.fr\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#primaryimage"},"image":{"@id":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#primaryimage"},"thumbnailUrl":"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2025\/08\/sdxl-bf209e59289147990d4d1e633aa242ee-scaled.png","datePublished":"2026-09-17T20:40:00+00:00","description":"Cast en C : ce que la norme d\u00e9finit vraiment. Promotions enti\u00e8res, conversions implicites, sign\u00e9 vers non sign\u00e9, flottant vers entier, exemples compil\u00e9s.","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/sbi29.fr\/blog\/securite-et-resilience-des-reseaux\/comprendre-le-cast-en-c-conversion-explicite-et-implicite-expliquees\/#primaryimage","url":"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2025\/08\/sdxl-bf209e59289147990d4d1e633aa242ee-scaled.png","contentUrl":"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2025\/08\/sdxl-bf209e59289147990d4d1e633aa242ee-scaled.png","width":1200,"height":500},{"@type":"WebSite","@id":"https:\/\/sbi29.fr\/blog\/#website","url":"https:\/\/sbi29.fr\/blog\/","name":"sbi29.fr","description":"SBI29, l&#039;innovation digitale \u00e0 votre service","publisher":{"@id":"https:\/\/sbi29.fr\/blog\/#organization"},"alternateName":"SBI29, l'innovation digitale \u00e0 votre service","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sbi29.fr\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/sbi29.fr\/blog\/#organization","name":"Foretsensations.fr","url":"https:\/\/sbi29.fr\/blog\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/sbi29.fr\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2024\/12\/SBI29.png","contentUrl":"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2024\/12\/SBI29.png","width":500,"height":500,"caption":"Foretsensations.fr"},"image":{"@id":"https:\/\/sbi29.fr\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/sbi29.fr\/blog\/#\/schema\/person\/3c864cdc320801e3db34b663e7e3f816","name":"Hugo Lambrecht","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/sbi29.fr\/blog\/#\/schema\/person\/image\/","url":"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2026\/06\/persona_hugo-l-96x96.jpg","contentUrl":"https:\/\/sbi29.fr\/blog\/wp-content\/uploads\/2026\/06\/persona_hugo-l-96x96.jpg","caption":"Hugo Lambrecht"},"description":"Geek assum\u00e9 et veilleur tech depuis plus de dix ans, je passe mes journ\u00e9es \u00e0 tester, comparer et expliquer le num\u00e9rique. Mes terrains favoris : les astuces high-tech du quotidien, la s\u00e9curit\u00e9 en ligne et les outils web, des VPN aux logiciels qui simplifient la vie. J'aime prendre un sujet r\u00e9put\u00e9 compliqu\u00e9 et le rendre limpide pour quelqu'un qui n'est pas d\u00e9veloppeur. Avant de recommander un produit ou un service, je le mets r\u00e9ellement \u00e0 l'\u00e9preuve, je v\u00e9rifie les versions et les tarifs en vigueur, et je signale les limites autant que les atouts. Je me m\u00e9fie des classements de complaisance : un comparatif n'a de valeur que si la m\u00e9thode est transparente. Mon fil rouge, c'est l'utilit\u00e9 concr\u00e8te : aider le lecteur \u00e0 mieux choisir, mieux configurer et mieux se prot\u00e9ger, sans tomber dans le jargon.","sameAs":["https:\/\/hugolambrecht.fr\/"],"url":"https:\/\/sbi29.fr\/blog\/auteur\/hugo-lambrecht\/","jobTitle":"R\u00e9dacteur en chef \u00b7 Tech & High-tech","knowsAbout":["Tech","Web","High-tech"]}]}},"_links":{"self":[{"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/posts\/7613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/comments?post=7613"}],"version-history":[{"count":2,"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/posts\/7613\/revisions"}],"predecessor-version":[{"id":8163,"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/posts\/7613\/revisions\/8163"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/media\/7639"}],"wp:attachment":[{"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/media?parent=7613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/categories?post=7613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sbi29.fr\/blog\/wp-json\/wp\/v2\/tags?post=7613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}