{"id":24170,"date":"2024-03-16T02:42:37","date_gmt":"2024-03-16T02:42:37","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/"},"modified":"2024-03-22T03:03:04","modified_gmt":"2024-03-22T03:03:04","slug":"what-is-the-method-for-declaring-and-defining-extern-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/","title":{"rendered":"What is the method for declaring and defining extern in C++?"},"content":{"rendered":"<p>In C++, the extern keyword is used to reference global variables, functions, or objects defined in another file. By using the extern keyword, the compiler is informed that the definition of the variable, function, or object is in a different file rather than the current one.<\/p>\n<p>There are two ways to declare extern.<\/p>\n<ol>\n<li>Declare a variable: Declare a global variable in one file where its definition is in another file. For example:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">extern<\/span> <span class=\"hljs-type\">int<\/span> globalVariable; <span class=\"hljs-comment\">\/\/ \u58f0\u660e\u4e00\u4e2a\u5168\u5c40\u53d8\u91cf\uff0c\u5b9a\u4e49\u5728\u5176\u4ed6\u6587\u4ef6\u4e2d<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Reference a function or object: Declare a function or object in one file, with its definition in another file. For example:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-function\"><span class=\"hljs-keyword\">extern<\/span> <span class=\"hljs-type\">void<\/span> <span class=\"hljs-title\">function<\/span><span class=\"hljs-params\">()<\/span><\/span>; <span class=\"hljs-comment\">\/\/ \u58f0\u660e\u4e00\u4e2a\u51fd\u6570\uff0c\u5b9a\u4e49\u5728\u5176\u4ed6\u6587\u4ef6\u4e2d<\/span>\r\n\r\n<span class=\"hljs-keyword\">extern<\/span> MyClass object; <span class=\"hljs-comment\">\/\/ \u58f0\u660e\u4e00\u4e2a\u5bf9\u8c61\uff0c\u5b9a\u4e49\u5728\u5176\u4ed6\u6587\u4ef6\u4e2d<\/span>\r\n<\/code><\/pre>\n<p>The correct way to use the extern declaration is to declare in one file and define in another. For example, if a global variable is declared in one file, it should be defined in another file.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ File1.cpp<\/span>\r\n<span class=\"hljs-keyword\">extern<\/span> <span class=\"hljs-type\">int<\/span> globalVariable; <span class=\"hljs-comment\">\/\/ \u58f0\u660e\u5168\u5c40\u53d8\u91cf<\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ File2.cpp<\/span>\r\n<span class=\"hljs-type\">int<\/span> globalVariable = <span class=\"hljs-number\">10<\/span>; <span class=\"hljs-comment\">\/\/ \u5b9a\u4e49\u5168\u5c40\u53d8\u91cf<\/span>\r\n<\/code><\/pre>\n<p>Note: The extern keyword simply indicates that the variable, function, or object is defined in another file, and it is not necessary to use the extern keyword for declaration. Sometimes in C++, it is possible to define directly in a file without the need for the extern keyword for declaration. In this case, the compiler will consider the variable, function, or object definition as global.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C++, the extern keyword is used to reference global variables, functions, or objects defined in another file. By using the extern keyword, the compiler is informed that the definition of the variable, function, or object is in a different file rather than the current one. There are two ways to declare extern. Declare a [&hellip;]<\/p>\n","protected":false},"author":9,"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-24170","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 method for declaring and defining extern 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-method-for-declaring-and-defining-extern-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the method for declaring and defining extern in C++?\" \/>\n<meta property=\"og:description\" content=\"In C++, the extern keyword is used to reference global variables, functions, or objects defined in another file. By using the extern keyword, the compiler is informed that the definition of the variable, function, or object is in a different file rather than the current one. There are two ways to declare extern. Declare a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/\" \/>\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-16T02:42:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T03:03:04+00:00\" \/>\n<meta name=\"author\" content=\"Ava Mitchell\" \/>\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=\"Ava Mitchell\" \/>\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-method-for-declaring-and-defining-extern-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/\"},\"author\":{\"name\":\"Ava Mitchell\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\"},\"headline\":\"What is the method for declaring and defining extern in C++?\",\"datePublished\":\"2024-03-16T02:42:37+00:00\",\"dateModified\":\"2024-03-22T03:03:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/\"},\"wordCount\":205,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/\",\"name\":\"What is the method for declaring and defining extern in C++? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T02:42:37+00:00\",\"dateModified\":\"2024-03-22T03:03:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the method for declaring and defining extern 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\/a3e2658c2cb9fb2be95ae0a8861f4a64\",\"name\":\"Ava Mitchell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"caption\":\"Ava Mitchell\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the method for declaring and defining extern 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-method-for-declaring-and-defining-extern-in-c\/","og_locale":"en_US","og_type":"article","og_title":"What is the method for declaring and defining extern in C++?","og_description":"In C++, the extern keyword is used to reference global variables, functions, or objects defined in another file. By using the extern keyword, the compiler is informed that the definition of the variable, function, or object is in a different file rather than the current one. There are two ways to declare extern. Declare a [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T02:42:37+00:00","article_modified_time":"2024-03-22T03:03:04+00:00","author":"Ava Mitchell","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Ava Mitchell","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/"},"author":{"name":"Ava Mitchell","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64"},"headline":"What is the method for declaring and defining extern in C++?","datePublished":"2024-03-16T02:42:37+00:00","dateModified":"2024-03-22T03:03:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/"},"wordCount":205,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/","name":"What is the method for declaring and defining extern in C++? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T02:42:37+00:00","dateModified":"2024-03-22T03:03:04+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-declaring-and-defining-extern-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the method for declaring and defining extern 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\/a3e2658c2cb9fb2be95ae0a8861f4a64","name":"Ava Mitchell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","caption":"Ava Mitchell"},"url":"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/24170","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=24170"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/24170\/revisions"}],"predecessor-version":[{"id":58188,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/24170\/revisions\/58188"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=24170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=24170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=24170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}