<!DOCTYPE html>
<html lang="en" dir="ltr" class="client-nojs">

<!-- Mirrored from en.cppreference.com/w/c/language/storage_class_specifiers by HTTrack Website Copier/3.x [XR&CO'2013], Sat, 08 Feb 2014 15:07:12 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8" /><!-- /Added by HTTrack -->
<head>
<title>Storage-class specifiers - cppreference.com</title>
<meta charset="UTF-8" />
<meta name="generator" content="MediaWiki 1.21.2" />
<link rel="alternate" type="application/x-wiki" title="Edit" href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;action=edit" />
<link rel="edit" title="Edit" href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;action=edit" />
<link rel="shortcut icon" href="../../../favicon.ico" />
<link rel="search" type="application/opensearchdescription+xml" href="../../../mwiki/opensearch_desc.php" title="cppreference.com (en)" />
<link rel="EditURI" type="application/rsd+xml" href="http://en.cppreference.com/mwiki/api.php?action=rsd" />
<link rel="alternate" type="application/atom+xml" title="cppreference.com Atom feed" href="http://en.cppreference.com/mwiki/index.php?title=Special:RecentChanges&amp;feed=atom" />
<link rel="stylesheet" href="../../../mwiki/loadfe52.css?debug=false&amp;lang=en&amp;modules=ext.gadget.ColiruCompiler%7Cext.rtlcite%7Cmediawiki.legacy.commonPrint%2Cshared%7Cskins.cppreference2&amp;only=styles&amp;skin=cppreference2&amp;*" />
<meta name="ResourceLoaderDynamicStyles" content="" />
<link rel="stylesheet" href="../../../mwiki/load7fe1.css?debug=false&amp;lang=en&amp;modules=site&amp;only=styles&amp;skin=cppreference2&amp;*" />
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}#toc{display:none}.editsection{display:none}
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-css:7:472787eddcf4605d11de8c7ef047234f */</style>

<script src="../../../mwiki/load404e.php?debug=false&amp;lang=en&amp;modules=startup&amp;only=scripts&amp;skin=cppreference2&amp;*"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"c/language/storage_class_specifiers","wgTitle":"c/language/storage class specifiers","wgCurRevisionId":62428,"wgArticleId":9550,"wgIsArticle":true,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Todo without reason"],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"c/language/storage_class_specifiers","wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function(){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":0,"showtoolbar":1,"skin":"cppreference2","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":0,
"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"en","language":"en","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"gadget-ColiruCompiler":1});;},{},{});mw.loader.implement("user.tokens",function(){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});;},{},{});
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-js:7:ca03345b1e2c4d90a25d968753a73b92 */
}</script>
<script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script>
<!--[if lt IE 7]><style type="text/css">body{behavior:url("/mwiki/skins/cppreference2/csshover.min.htc")}</style><![endif]--></head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-c_language_storage_class_specifiers skin-cppreference2 action-view cpp-navbar">
        <!-- header -->
        <div id="mw-head" class="noprint">
            <div id="cpp-head-first-base">
                <div id="cpp-head-first">
                    <h5><a href="../../../index.html">cppreference.com</a></h5>
                    <div id="cpp-head-search">
                        
<!-- 0 -->
<div id="p-search">
	<h5><label for="searchInput">Search</label></h5>
	<form action="http://en.cppreference.com/mwiki/index.php" id="searchform">
		<input type='hidden' name="title" value="Special:Search"/>
				<div id="simpleSearch">
						<input name="search" title="Search cppreference.com [f]" accesskey="f" id="searchInput" />						<button type="submit" name="button" title="Search the pages for this text" id="searchButton"><img src="../../../mwiki/skins/cppreference2/images/search-ltr11b9.png?303" alt="Search" /></button>					</div>
			</form>
</div>

<!-- /0 -->
                    </div>
                    <div id="cpp-head-personal">
                        
<!-- 0 -->
<div id="p-personal" class="">
<span id="pt-createaccount"><a href="http://en.cppreference.com/mwiki/index.php?title=Special:UserLogin&amp;returnto=c%2Flanguage%2Fstorage+class+specifiers&amp;type=signup">Create account</a></span>	<div class="menu">
        <ul>
<li id="pt-login"><a href="http://en.cppreference.com/mwiki/index.php?title=Special:UserLogin&amp;returnto=c%2Flanguage%2Fstorage+class+specifiers" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li>        </ul>
    </div>
</div>

<!-- /0 -->
                    </div>

                </div>
            </div>
            <div id="cpp-head-second-base">
                <div id="cpp-head-second">
                    <div id="cpp-head-tools-left">
                        
<!-- 0 -->
<div id="p-namespaces" class="vectorTabs">
	<h5>Namespaces</h5>
	<ul>
					<li  id="ca-nstab-main" class="selected"><span><a href="storage_class_specifiers"  title="View the content page [c]" accesskey="c">Page</a></span></li>
					<li  id="ca-talk" class="new"><span><a href="http://en.cppreference.com/mwiki/index.php?title=Talk:c/language/storage_class_specifiers&amp;action=edit&amp;redlink=1"  title="Discussion about the content page [t]" accesskey="t">Discussion</a></span></li>
			</ul>
</div>

<!-- /0 -->

<!-- 1 -->
<div id="p-variants" class="vectorMenu emptyPortlet">
		<h5><span>Variants</span><a href="#"></a></h5>
	<div class="menu">
		<ul>
					</ul>
	</div>
</div>

<!-- /1 -->
                    </div>
                    <div id="cpp-head-tools-right">
                        
<!-- 0 -->
<div id="p-views" class="vectorTabs">
	<h5>Views</h5>
	<ul>
					<li id="ca-view" class="selected"><span><a href="storage_class_specifiers" >View</a></span></li>
					<li id="ca-edit"><span><a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;action=edit"  title="You can edit this page. Please use the preview button before saving [e]" accesskey="e">Edit</a></span></li>
					<li id="ca-history" class="collapsible"><span><a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;action=history"  title="Past revisions of this page [h]" accesskey="h">History</a></span></li>
			</ul>
</div>

<!-- /0 -->

<!-- 1 -->
<div id="p-cactions" class="vectorMenu emptyPortlet">
	<h5><span>Actions</span><a href="#"></a></h5>
	<div class="menu">
		<ul>
					</ul>
	</div>
</div>

<!-- /1 -->
                    </div>
                </div>
            </div>
        </div>
        <!-- /header -->
        <!-- content -->
        <div id="cpp-content-base">
            <div id="content">
                <a id="top"></a>
                <div id="mw-js-message" style="display:none;"></div>
                                <!-- firstHeading -->
                <h1 id="firstHeading" class="firstHeading">Storage-class specifiers</h1>
                <!-- /firstHeading -->
                <!-- bodyContent -->
                <div id="bodyContent">
                                        <!-- tagline -->
                    <div id="siteSub">From cppreference.com</div>
                    <!-- /tagline -->
                                        <!-- subtitle -->
                    <div id="contentSub"><span class="subpages">&lt; <a href="../../c.html" title="c">c</a>&lrm; | <a href="../language.html" title="c/language">language</a></span></div>
                    <!-- /subtitle -->
                                                            <!-- bodycontent -->
                    <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="t-navbar" style=""><div class="t-navbar-sep">&#160;</div><div class="t-navbar-head"><a href="../../c.html" title="c"> C</a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em;">
<tr class="t-nv"><td colspan="5"> <a href="../language.html" title="c/language"> Language</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../header.html" title="c/header"> Standard Library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../types.html" title="c/types"> Type support</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../memory.html" title="c/memory"> Dynamic memory management</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../error.html" title="c/error"> Error handling</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../program.html" title="c/program"> Program utilities</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../chrono.html" title="c/chrono"> Date and time utilities</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../string.html" title="c/string"> Strings library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../algorithm.html" title="c/algorithm"> Algorithms</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../numeric" title="c/numeric"> Numerics</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../io" title="c/io"> Input/output support</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../locale.html" title="c/locale"> Localization support</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../thread.html" title="c/thread"> Thread support</a> <span class="t-mark-rev t-since-c11">(C11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../atomic.html" title="c/atomic"> Atomic operations</a> <span class="t-mark-rev t-since-c11">(C11)</span> </td></tr>
</table></div><div><span class="editsection noprint plainlinks" title="Edit this template"><a rel="nofollow" class="external text" href="http://en.cppreference.com/mwiki/index.php?title=Template:c/navbar_content&amp;action=edit">&#91;edit&#93;</a></span></div></div></div></div><div class="t-navbar-sep">&#160;</div><div class="t-navbar-head"><a href="../language.html" title="c/language"> C language</a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv-h1"><td colspan="5"> General topics</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../preprocessor.html" title="c/preprocessor"> Preprocessor</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/comments&amp;action=edit&amp;redlink=1" class="new" title="c/comments (page does not exist)"> Comments</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../keyword.html" title="c/keyword"> Keywords</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="ascii.html" title="c/language/ascii"> ASCII chart</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/escape&amp;action=edit&amp;redlink=1" class="new" title="c/language/escape (page does not exist)"> Escape sequences</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="history.html" title="c/language/history"> History of C</a></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Flow control</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Conditional execution statements</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="if.html" title="c/language/if"> <code>if</code> statement</a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="switch.html" title="c/language/switch"> <code>switch</code> statement</a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> Iteration statements</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="for.html" title="c/language/for"> <code>for</code> loop</a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="while.html" title="c/language/while"> <code>while</code> loop</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="do.html" title="c/language/do"> <code>do-while</code> loop</a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> Jump statements </td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="continue.html" title="c/language/continue"> <code>continue</code> statement</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="break.html" title="c/language/break"> <code>break</code> statement</a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="goto.html" title="c/language/goto"> <code>goto</code> statement</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="return.html" title="c/language/return"> <code>return</code> statement</a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Functions</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/function&amp;action=edit&amp;redlink=1" class="new" title="c/language/function (page does not exist)"> function declaration</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/inline&amp;action=edit&amp;redlink=1" class="new" title="c/language/inline (page does not exist)"> inline specifier</a></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Types</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="types.html" title="c/language/types"> fundamental types</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/pointer&amp;action=edit&amp;redlink=1" class="new" title="c/language/pointer (page does not exist)"> pointer types</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="struct.html" title="c/language/struct"> compound types</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/enum&amp;action=edit&amp;redlink=1" class="new" title="c/language/enum (page does not exist)"> enumeration types</a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/union&amp;action=edit&amp;redlink=1" class="new" title="c/language/union (page does not exist)"> union types</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/function&amp;action=edit&amp;redlink=1" class="new" title="c/language/function (page does not exist)"> function types</a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> Specifiers</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/cv&amp;action=edit&amp;redlink=1" class="new" title="c/language/cv (page does not exist)"> cv specifiers</a></td></tr>
<tr class="t-nv"><td colspan="5"> <strong class="selflink"> storage-class specifiers</strong></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/alignas&amp;action=edit&amp;redlink=1" class="new" title="c/language/alignas (page does not exist)"> alignas specifier</a> <span class="t-mark-rev t-since-c99">(C99)</span></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="function_specifiers.html" title="c/language/function specifiers"> function specifiers</a> <span class="t-mark-rev t-since-c99">(C99)</span></td></tr>
<tr class="t-nv-h2"><td colspan="5"> Literals</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/integer_literal&amp;action=edit&amp;redlink=1" class="new" title="c/language/integer literal (page does not exist)"> integer literals</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/character_literal&amp;action=edit&amp;redlink=1" class="new" title="c/language/character literal (page does not exist)"> character literals</a></td></tr> 
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/floating_literal&amp;action=edit&amp;redlink=1" class="new" title="c/language/floating literal (page does not exist)"> floating-point literals</a></td></tr>  
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/string_literal&amp;action=edit&amp;redlink=1" class="new" title="c/language/string literal (page does not exist)"> string literals</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/bool_literal&amp;action=edit&amp;redlink=1" class="new" title="c/language/bool literal (page does not exist)"> boolean literals</a><span class="t-mark-rev t-since-c99">(C99)</span></td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Expressions</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="eval_order.html" title="c/language/eval order"> order of evaluation</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="operators.html" title="c/language/operators"> operators</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="operator_precedence.html" title="c/language/operator precedence"> operator precedence</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="operator_alternative.html" title="c/language/operator alternative"> alternative operators</a></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Utilities</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/typedef&amp;action=edit&amp;redlink=1" class="new" title="c/language/typedef (page does not exist)"> <code>typedef</code> declaration</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/attributes&amp;action=edit&amp;redlink=1" class="new" title="c/language/attributes (page does not exist)"> attributes</a> <span class="t-mark-rev t-since-c99">(C99)</span></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/implicit_cast&amp;action=edit&amp;redlink=1" class="new" title="c/language/implicit cast (page does not exist)"> casts</a></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Miscellaneous </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="http://en.cppreference.com/mwiki/index.php?title=c/language/asm&amp;action=edit&amp;redlink=1" class="new" title="c/language/asm (page does not exist)"> Inline assembly</a></td></tr>
</table></div><div><span class="editsection noprint plainlinks" title="Edit this template"><a rel="nofollow" class="external text" href="http://en.cppreference.com/mwiki/index.php?title=Template:c/language/navbar_content&amp;action=edit">&#91;edit&#93;</a></span></div></div></div></div><div class="t-navbar-sep">&#160;</div></div>
<dl><dd><ul><li><code><b>auto</b></code> - automatic duration with no linkage.
</li><li><code><b>register</b></code> - automatic duration with no linkage. Also hints to the compiler to place the variable in the processor's register.
</li><li><code><b>static</b></code> - static duration with internal linkage at file scope and no linkage at block scope.
</li><li><code><b>extern</b></code> - static duration with either internal or more usually external linkage.
</li><li><code><b>_Thread_local</b></code> - <span class="t-mark-rev t-since-c11">(since C11)</span> - thread storage duration.
</li></ul>
</dd></dl>
<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Explanation"><span class="tocnumber">1</span> <span class="toctext">Explanation</span></a>
<ul>
<li class="toclevel-2 tocsection-2"><a href="#Storage_duration"><span class="tocnumber">1.1</span> <span class="toctext">Storage duration</span></a></li>
<li class="toclevel-2 tocsection-3"><a href="#Linkage"><span class="tocnumber">1.2</span> <span class="toctext">Linkage</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-4"><a href="#Keywords"><span class="tocnumber">2</span> <span class="toctext">Keywords</span></a></li>
<li class="toclevel-1 tocsection-5"><a href="#Example"><span class="tocnumber">3</span> <span class="toctext">Example</span></a></li>
</ul>
</td></tr></table>
<h3><span class="editsection">[<a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;action=edit&amp;section=1" title="Edit section: Explanation">edit</a>]</span> <span class="mw-headline" id="Explanation">Explanation</span></h3>
<h4><span class="editsection">[<a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;action=edit&amp;section=2" title="Edit section: Storage duration">edit</a>]</span> <span class="mw-headline" id="Storage_duration">Storage duration</span></h4>
<p>All variables in a program have one of the following storage durations that determines its lifetime:
</p>
<dl><dd><ul><li><i><b>automatic</b></i> storage duration. The variable is allocated at the beginning of the enclosing code block and deallocated at the end. This is the default for all variables, except those declared <code>static</code>, <code>extern</code> or <code>_Thread_local</code>.
</li></ul>
</dd></dl>
<dl><dd><ul><li><i><b>static</b></i> storage duration. The variable is allocated when the program begins and deallocated when the program ends. Only one instance of the variable can exist. Variables declared with <code>static</code> or <code>extern</code> have this storage duration.
</li></ul>
</dd></dl>
<dl><dd><ul><li><i><b>thread</b></i> storage duration <span class="t-mark-rev t-since-c11">(since C11)</span>. The variable is allocated when the thread begins and deallocated when the thread ends. Each thread has its own instance of the variable. Only variables declared <code>_Thread_local</code> have this storage duration. <code>_Thread_local</code> can only be declared for variables declared with <code>static</code> or <code>extern</code> and cannot be used in a function declaration.
</li></ul>
</dd></dl>
<dl><dd><ul><li><i><b>allocated</b></i> storage duration. The variable is allocated and deallocated per request by using <a href="../memory.html" title="c/memory">dynamic memory allocation</a> functions.
</li></ul>
</dd></dl>
<h4><span class="editsection">[<a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;action=edit&amp;section=3" title="Edit section: Linkage">edit</a>]</span> <span class="mw-headline" id="Linkage">Linkage</span></h4>
<p>Linkage refers to the ability of a variable or function to be referred to in other scopes. If a variable or function with the same identifier is declared in several scopes, but cannot be referred to from all of them, then several instances of the variable are generated. The following linkages are recognized:
</p>
<dl><dd><ul><li><i><b>no linkage</b></i>. The variable can be referred to only from the scope it is in (block scope). All variables with automatic, thread and dynamic storage durations have this linkage, as well as variables declared <code>static</code> at block scope.
</li></ul>
</dd></dl>
<dl><dd><ul><li><i><b>internal linkage</b></i>. The variable can be referred to from all scopes in the current translation unit. All variables which are declared at file scope have this linkage, including variables declared <code>static</code> at file scope.
</li></ul>
</dd></dl>
<dl><dd><ul><li><i><b>external linkage</b></i>. The variable can be referred to from any other translation units in the entire program. All variables which are declared either <code>extern</code> or <code>const</code> with no explicit storage-class specifier, but not <code>static</code>, have this linkage.
</li></ul>
</dd></dl>
<h3><span class="editsection">[<a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;action=edit&amp;section=4" title="Edit section: Keywords">edit</a>]</span> <span class="mw-headline" id="Keywords">Keywords</span></h3>
<p><a href="../keyword/auto.html" title="c/keyword/auto"><tt>auto</tt></a>,
<a href="../keyword/register.html" title="c/keyword/register"><tt>register</tt></a>,
<a href="../keyword/static.html" title="c/keyword/static"><tt>static</tt></a>,
<a href="../keyword/extern.html" title="c/keyword/extern"><tt>extern</tt></a>,
<a href="../keyword/_Thread_local.html" title="c/keyword/ Thread local"><tt>_Thread_local</tt></a>
</p>
<h3><span class="editsection">[<a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;action=edit&amp;section=5" title="Edit section: Example">edit</a>]</span> <span class="mw-headline" id="Example">Example</span></h3>
<table class="metadata plainlinks ambox mbox-small-left ambox-notice" style=""><tr><td class="mbox-empty-cell"></td><td class="mbox-text" style="">This section is incomplete </td></tr></table>

<!-- 
NewPP limit report
Preprocessor visited node count: 1147/1000000
Preprocessor generated node count: 5772/1000000
Post‐expand include size: 47386/2097152 bytes
Template argument size: 3852/2097152 bytes
Highest expansion depth: 17/40
Expensive parser function count: 0/100
-->

<!-- Saved in parser cache with key mwiki1-mwiki_en_:pcache:idhash:9550-0!*!0!!en!*!* and timestamp 20130911063429 -->
</div>                    <!-- /bodycontent -->
                                        <!-- printfooter -->
                    <div class="printfooter">
                    Retrieved from "<a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;oldid=62428">http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;oldid=62428</a>"                    </div>
                    <!-- /printfooter -->
                                                            <!-- catlinks -->
                    <div id='catlinks' class='catlinks'><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="http://en.cppreference.com/w/Special:Categories" title="Special:Categories">Category</a>: <ul><li><a href="http://en.cppreference.com/w/Category:Todo_without_reason" title="Category:Todo without reason">Todo without reason</a></li></ul></div></div>                    <!-- /catlinks -->
                                                            <div class="visualClear"></div>
                    <!-- debughtml -->
                                        <!-- /debughtml -->
                </div>
                <!-- /bodyContent -->
            </div>
        </div>
        <!-- /content -->
        <!-- footer -->
        <div id="cpp-footer-base" class="noprint">
            <div id="footer">
                        <div id="cpp-navigation">
            <h5>Navigation</h5>
            <ul>
<li id="n-recentchanges"><a href="http://en.cppreference.com/w/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li><li id="n-FAQ"><a href="http://en.cppreference.com/w/Cppreference:FAQ">FAQ</a></li><li id="n-Store"><a href="http://www.cppreference.com/store" rel="nofollow">Store</a></li><li id="n-Offline-version"><a href="http://en.cppreference.com/w/Cppreference:Archives">Offline version</a></li>            </ul>
        </div>
                        <div id="cpp-toolbox">
            <h5><span>Toolbox</span><a href="#"></a></h5>
            <ul>
<li id="t-whatlinkshere"><a href="http://en.cppreference.com/w/Special:WhatLinksHere/c/language/storage_class_specifiers" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li><li id="t-recentchangeslinked"><a href="http://en.cppreference.com/w/Special:RecentChangesLinked/c/language/storage_class_specifiers" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li><li id="t-upload"><a href="http://upload.cppreference.com/w/Special:Upload" title="Upload files [u]" accesskey="u">Upload file</a></li><li id="t-specialpages"><a href="http://en.cppreference.com/w/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-print"><a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;printable=yes" rel="alternate" title="Printable version of this page [p]" accesskey="p">Printable version</a></li><li id="t-permalink"><a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;oldid=62428" title="Permanent link to this revision of the page">Permanent link</a></li><li id="t-info"><a href="http://en.cppreference.com/mwiki/index.php?title=c/language/storage_class_specifiers&amp;action=info">Page information</a></li>            </ul>
        </div>
                        <div id="cpp-languages">
            <div><ul><li>In other languages</li></ul></div>
            <div><ul>
<li class="interwiki-de"><a href="http://de.cppreference.com/w/c/language/storage_class_specifiers" title="c/language/storage class specifiers" lang="de" hreflang="de">Deutsch</a></li><li class="interwiki-es"><a href="http://es.cppreference.com/w/c/language/storage_class_specifiers" title="c/language/storage class specifiers" lang="es" hreflang="es">Español</a></li><li class="interwiki-fr"><a href="http://fr.cppreference.com/w/c/language/storage_class_specifiers" title="c/language/storage class specifiers" lang="fr" hreflang="fr">Français</a></li><li class="interwiki-it"><a href="http://it.cppreference.com/w/c/language/storage_class_specifiers" title="c/language/storage class specifiers" lang="it" hreflang="it">Italiano</a></li><li class="interwiki-ja"><a href="http://ja.cppreference.com/w/c/language/storage_class_specifiers" title="c/language/storage class specifiers" lang="ja" hreflang="ja">日本語</a></li><li class="interwiki-pt"><a href="http://pt.cppreference.com/w/c/language/storage_class_specifiers" title="c/language/storage class specifiers" lang="pt" hreflang="pt">Português</a></li><li class="interwiki-ru"><a href="http://ru.cppreference.com/w/c/language/storage_class_specifiers" title="c/language/storage class specifiers" lang="ru" hreflang="ru">Русский</a></li><li class="interwiki-zh"><a href="http://zh.cppreference.com/w/c/language/storage_class_specifiers" title="c/language/storage class specifiers" lang="zh" hreflang="zh">中文</a></li>            </ul></div>
        </div>
            <ul id="footer-info">
                                    <li id="footer-info-lastmod"> This page was last modified on 28 June 2013, at 06:04.</li>
                                    <li id="footer-info-viewcount">This page has been accessed 257 times.</li>
                            </ul>
                    <ul id="footer-places">
                                    <li id="footer-places-privacy"><a href="http://en.cppreference.com/w/Cppreference:Privacy_policy" title="Cppreference:Privacy policy">Privacy policy</a></li>
                                    <li id="footer-places-about"><a href="http://en.cppreference.com/w/Cppreference:About" title="Cppreference:About">About cppreference.com</a></li>
                                    <li id="footer-places-disclaimer"><a href="http://en.cppreference.com/w/Cppreference:General_disclaimer" title="Cppreference:General disclaimer">Disclaimers</a></li>
                            </ul>
                                    <ul id="footer-icons" class="noprint">
                                    <li id="footer-poweredbyico">
                                            <a href="http://www.mediawiki.org/"><img src="../../../mwiki/skins/common/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" width="88" height="31" /></a>                                            <a href="http://qbnz.com/highlighter/"><img src="../../../../upload.cppreference.com/mwiki/images/2/2b/powered_by_geshi_88x31.png" alt="Powered by GeSHi" height="31" width="88" /></a>                                            <a href="http://www.tigertech.net/referral/cppreference.com"><img src="../../../../upload.cppreference.com/mwiki/images/9/94/powered_by_tigertech_88x31.png" alt="Hosted by Tiger Technologies" height="31" width="88" /></a>                                        </li>
                                </ul>
                        <div style="clear:both">
            </div>
            </div>
        </div>
        <!-- /footer -->
        <script>if(window.mw){
mw.loader.state({"site":"loading","user":"missing","user.groups":"ready"});
}</script>
<script src="../../../mwiki/loadac2a.php?debug=false&amp;lang=en&amp;modules=skins.cppreference2&amp;only=scripts&amp;skin=cppreference2&amp;*"></script>
<script>if(window.mw){
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.hidpi","ext.gadget.ColiruCompiler"], null, true);
}</script>
<script src="../../../mwiki/load345b.php?debug=false&amp;lang=en&amp;modules=site&amp;only=scripts&amp;skin=cppreference2&amp;*"></script>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2828341-1']);
_gaq.push(['_setDomainName', 'cppreference.com']);
_gaq.push(['_trackPageview']);
</script><!-- Served in 0.424 secs. -->        
	</body>
<!-- Cached 20130911063429 -->

<!-- Mirrored from en.cppreference.com/w/c/language/storage_class_specifiers by HTTrack Website Copier/3.x [XR&CO'2013], Sat, 08 Feb 2014 15:07:12 GMT -->
</html>
