{"id":25328,"date":"2024-03-16T04:45:03","date_gmt":"2024-03-16T04:45:03","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/"},"modified":"2024-03-22T05:54:29","modified_gmt":"2024-03-22T05:54:29","slug":"what-is-the-usage-of-the-extern-keyword-in-c-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/","title":{"rendered":"What is the usage of the &#8220;extern&#8221; keyword in C++?"},"content":{"rendered":"<p>In C++, the keyword &#8216;extern&#8217; is used to declare the existence of external variables or functions.<\/p>\n<ol>\n<li>When it comes to variables, if we define a global variable in one file and want to use it in another file, we need to declare its existence using the &#8220;extern&#8221; keyword in the other file. This way, the compiler knows that the variable is defined in another file and can link them together.<\/li>\n<\/ol>\n<p>Define global variables in a file.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ File1.cpp<\/span>\r\n<span class=\"hljs-type\">int<\/span> globalVariable = <span class=\"hljs-number\">10<\/span>;\r\n<\/code><\/pre>\n<p>Use the variable in another file.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ File2.cpp<\/span>\r\n<span class=\"hljs-keyword\">extern<\/span> <span class=\"hljs-type\">int<\/span> globalVariable; <span class=\"hljs-comment\">\/\/ \u4f7f\u7528extern\u5173\u952e\u5b57\u58f0\u660e\u5168\u5c40\u53d8\u91cf\u7684\u5b58\u5728<\/span>\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title\">someFunction<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"hljs-type\">int<\/span> localVar = globalVariable; <span class=\"hljs-comment\">\/\/ \u4f7f\u7528\u5168\u5c40\u53d8\u91cf<\/span>\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>When using the same function in multiple files, we need to declare its existence using the extern keyword so that the compiler knows the function is defined in other files and can link them together.<\/li>\n<\/ol>\n<p>Define a function in a file.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ File1.cpp<\/span>\r\n<span class=\"hljs-function\"><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title\">someFunction<\/span><span class=\"hljs-params\">()<\/span><\/span>; <span class=\"hljs-comment\">\/\/ \u51fd\u6570\u58f0\u660e<\/span>\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title\">someFunction<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"hljs-comment\">\/\/ \u51fd\u6570\u5b9a\u4e49<\/span>\r\n}\r\n<\/code><\/pre>\n<p>Use the function in another file:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ File2.cpp<\/span>\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">extern<\/span> <span class=\"hljs-type\">void<\/span> <span class=\"hljs-title\">someFunction<\/span><span class=\"hljs-params\">()<\/span><\/span>; <span class=\"hljs-comment\">\/\/ \u4f7f\u7528extern\u5173\u952e\u5b57\u58f0\u660e\u51fd\u6570\u7684\u5b58\u5728<\/span>\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title\">anotherFunction<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"hljs-built_in\">someFunction<\/span>(); <span class=\"hljs-comment\">\/\/ \u8c03\u7528\u51fd\u6570<\/span>\r\n}\r\n<\/code><\/pre>\n<p>Summary: The &#8220;extern&#8221; keyword is used to declare the existence of global variables or functions in other files. It tells the compiler to link them together during the linking phase.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C++, the keyword &#8216;extern&#8217; is used to declare the existence of external variables or functions. When it comes to variables, if we define a global variable in one file and want to use it in another file, we need to declare its existence using the &#8220;extern&#8221; keyword in the other file. This way, the [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-25328","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is the usage of the &quot;extern&quot; keyword in C++? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the usage of the &quot;extern&quot; keyword in C++?\" \/>\n<meta property=\"og:description\" content=\"In C++, the keyword &#8216;extern&#8217; is used to declare the existence of external variables or functions. When it comes to variables, if we define a global variable in one file and want to use it in another file, we need to declare its existence using the &#8220;extern&#8221; keyword in the other file. This way, the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T04:45:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T05:54:29+00:00\" \/>\n<meta name=\"author\" content=\"William Carter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"William Carter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/\"},\"author\":{\"name\":\"William Carter\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\"},\"headline\":\"What is the usage of the &#8220;extern&#8221; keyword in C++?\",\"datePublished\":\"2024-03-16T04:45:03+00:00\",\"dateModified\":\"2024-03-22T05:54:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/\"},\"wordCount\":169,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/\",\"name\":\"What is the usage of the \\\"extern\\\" keyword in C++? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T04:45:03+00:00\",\"dateModified\":\"2024-03-22T05:54:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the usage of the &#8220;extern&#8221; keyword in C++?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\",\"name\":\"William Carter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"caption\":\"William Carter\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the usage of the \"extern\" keyword in C++? - Blog - Silicon Cloud","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:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/","og_locale":"en_US","og_type":"article","og_title":"What is the usage of the \"extern\" keyword in C++?","og_description":"In C++, the keyword &#8216;extern&#8217; is used to declare the existence of external variables or functions. When it comes to variables, if we define a global variable in one file and want to use it in another file, we need to declare its existence using the &#8220;extern&#8221; keyword in the other file. This way, the [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T04:45:03+00:00","article_modified_time":"2024-03-22T05:54:29+00:00","author":"William Carter","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"William Carter","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/"},"author":{"name":"William Carter","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0"},"headline":"What is the usage of the &#8220;extern&#8221; keyword in C++?","datePublished":"2024-03-16T04:45:03+00:00","dateModified":"2024-03-22T05:54:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/"},"wordCount":169,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/","name":"What is the usage of the \"extern\" keyword in C++? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T04:45:03+00:00","dateModified":"2024-03-22T05:54:29+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-the-extern-keyword-in-c-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the usage of the &#8220;extern&#8221; keyword in C++?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0","name":"William Carter","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","caption":"William Carter"},"url":"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/25328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=25328"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/25328\/revisions"}],"predecessor-version":[{"id":59425,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/25328\/revisions\/59425"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=25328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=25328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=25328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}