<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://script.spoken-tutorial.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=Advance-C%2FC2%2FStorage-class-specifiers%2FEnglish</id>
		<title>Advance-C/C2/Storage-class-specifiers/English - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=Advance-C%2FC2%2FStorage-class-specifiers%2FEnglish"/>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Advance-C/C2/Storage-class-specifiers/English&amp;action=history"/>
		<updated>2026-05-14T01:38:22Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Advance-C/C2/Storage-class-specifiers/English&amp;diff=17002&amp;oldid=prev</id>
		<title>Nancyvarkey at 12:35, 22 September 2014</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Advance-C/C2/Storage-class-specifiers/English&amp;diff=17002&amp;oldid=prev"/>
				<updated>2014-09-22T12:35:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://script.spoken-tutorial.org/index.php?title=Advance-C/C2/Storage-class-specifiers/English&amp;amp;diff=17002&amp;amp;oldid=16998&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Nancyvarkey</name></author>	</entry>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Advance-C/C2/Storage-class-specifiers/English&amp;diff=16998&amp;oldid=prev</id>
		<title>Ashwini: Created page with &quot;'''Title of script''': '''Storage class specifiers in C'''  '''Author: '''Ashwini Patil  '''Keywords: '''Video tutorial,''' storage class, auto, static, extern, register.'''...&quot;</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Advance-C/C2/Storage-class-specifiers/English&amp;diff=16998&amp;oldid=prev"/>
				<updated>2014-09-22T10:20:50Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Title of script&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;#039;Storage class specifiers in C&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;Author: &amp;#039;&amp;#039;&amp;#039;Ashwini Patil  &amp;#039;&amp;#039;&amp;#039;Keywords: &amp;#039;&amp;#039;&amp;#039;Video tutorial,&amp;#039;&amp;#039;&amp;#039; storage class, auto, static, extern, register.&amp;#039;&amp;#039;&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Title of script''': '''Storage class specifiers in C'''&lt;br /&gt;
&lt;br /&gt;
'''Author: '''Ashwini Patil&lt;br /&gt;
&lt;br /&gt;
'''Keywords: '''Video tutorial,''' storage class, auto, static, extern, register.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;&amp;quot;&lt;br /&gt;
! &amp;lt;center&amp;gt;Visual Cue&amp;lt;/center&amp;gt;&lt;br /&gt;
! &amp;lt;center&amp;gt;Narration&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 1&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Welcome to the spoken tutorial on''' Storage class specifiers.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 2&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| In this tutorial, We will learn about&lt;br /&gt;
&lt;br /&gt;
* '''Storage class specifiers'''&lt;br /&gt;
* '''auto keyword'''&lt;br /&gt;
* '''static keyword '''&lt;br /&gt;
* '''extern keyword'''&lt;br /&gt;
* '''register keyword '''with the help of examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 3&lt;br /&gt;
&lt;br /&gt;
'''System Requirements'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| For this tutorial I am using &lt;br /&gt;
&lt;br /&gt;
* '''Ubuntu Operating system version 11.10''' and &lt;br /&gt;
* '''gcc Compiler version 4.6.1 on Ubuntu'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 4&lt;br /&gt;
&lt;br /&gt;
'''Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''spoken-tutorial.org '''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| To follow this tutorial you should be familiar with C and C++ tutorials.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If not, for relevant tutorials please visit''' spoken hyphen tutorial dot org.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 5&lt;br /&gt;
&lt;br /&gt;
'''Introduction'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| I will start with an introduction to storage class specifiers.&lt;br /&gt;
&lt;br /&gt;
* Specifiers tell the compiler where to store a variable.&lt;br /&gt;
* How to store the variable.&lt;br /&gt;
* What is the initial value of the variable.&lt;br /&gt;
* Life time of the variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 6&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Syntax:&lt;br /&gt;
&lt;br /&gt;
'''storage_specifier data_type variable _name'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 7&lt;br /&gt;
&lt;br /&gt;
'''Types'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Types of storage class specifiers are:&lt;br /&gt;
&lt;br /&gt;
'''auto '''&lt;br /&gt;
&lt;br /&gt;
'''static '''&lt;br /&gt;
&lt;br /&gt;
'''extern '''&lt;br /&gt;
&lt;br /&gt;
'''register '''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 8&lt;br /&gt;
&lt;br /&gt;
'auto'&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Let us start with '''auto keyword.'''&lt;br /&gt;
&lt;br /&gt;
* Auto keyword declares an automatic variable.&lt;br /&gt;
* It has a local scope.&lt;br /&gt;
* keywords are not initialized automatically.&lt;br /&gt;
* You should explicitly initialize keywords while declaring&lt;br /&gt;
* Storage space of keywords is CPU memory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Let us see an example.&lt;br /&gt;
&lt;br /&gt;
I have a code file let us go through it.&lt;br /&gt;
&lt;br /&gt;
Note that our filename is '''auto.c'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &amp;lt;nowiki&amp;gt;#include&amp;lt;stdio.h&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void increment(void); &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| We have declared a function as “'''increment”.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| int main() &lt;br /&gt;
&lt;br /&gt;
{ &lt;br /&gt;
&lt;br /&gt;
increment(); &lt;br /&gt;
&lt;br /&gt;
increment(); &lt;br /&gt;
&lt;br /&gt;
increment(); &lt;br /&gt;
&lt;br /&gt;
increment(); &lt;br /&gt;
&lt;br /&gt;
return 0; &lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| This is the main function.&lt;br /&gt;
&lt;br /&gt;
In the main function, increment function is called '''4''' times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then we have''' return 0 statment.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let us see the''' function definition'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| void increment(void) &lt;br /&gt;
&lt;br /&gt;
{ &lt;br /&gt;
&lt;br /&gt;
auto int i = 0 ; &lt;br /&gt;
&lt;br /&gt;
printf ( &amp;quot;%d &amp;quot;, i ) ; &lt;br /&gt;
&lt;br /&gt;
i++; &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Here we have declared variable''' i '''as '''auto int'''.&lt;br /&gt;
&lt;br /&gt;
It has a local scope.&lt;br /&gt;
&lt;br /&gt;
Then we display value of '''i '''using''' printf.'''&lt;br /&gt;
&lt;br /&gt;
Value of '''i''' is incremented.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Press '''Ctrl+Alt+T'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Let us open the terminal by pressing '''Ctrl+Alt+T''' keys.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| '''Compile'''&lt;br /&gt;
&lt;br /&gt;
'''Type: gcc auto.c -o auto'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Type:''' gcc auto.c -o auto'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| '''Execute'''&lt;br /&gt;
&lt;br /&gt;
'''Type: ./auto'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Type:''' ./auto'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| The output is:&lt;br /&gt;
&lt;br /&gt;
'''0'''&lt;br /&gt;
&lt;br /&gt;
'''0'''&lt;br /&gt;
&lt;br /&gt;
'''0'''&lt;br /&gt;
&lt;br /&gt;
'''0'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Now come back to our program.&lt;br /&gt;
&lt;br /&gt;
Let us''' initialize''' the '''auto '''variable''' i '''above the''' main function.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| I will cut this declaration and initialization from here.&lt;br /&gt;
&lt;br /&gt;
And paste it over here.&lt;br /&gt;
&lt;br /&gt;
Click on '''Save'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| '''gcc auto.c -o auto'''&lt;br /&gt;
&lt;br /&gt;
'''./auto'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Let us execute on the terminal.&lt;br /&gt;
&lt;br /&gt;
Press the uparrow key twice.&lt;br /&gt;
&lt;br /&gt;
Press '''Enter'''&lt;br /&gt;
&lt;br /&gt;
'''gcc auto.c -o auto'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| We get an error''':'''&lt;br /&gt;
&lt;br /&gt;
'''auto.c:3:10: error: file-scope declaration of i specifies auto '''&lt;br /&gt;
&lt;br /&gt;
This is because an '''auto variable''' is local to the function.&lt;br /&gt;
&lt;br /&gt;
We cannot initialize it globally.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| '''Delete '''&lt;br /&gt;
&lt;br /&gt;
'''global initialization'''&lt;br /&gt;
&lt;br /&gt;
'''Highlight the '''global initialization.&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Let us fix the error.&lt;br /&gt;
&lt;br /&gt;
Come back to our program.&lt;br /&gt;
&lt;br /&gt;
Delete this paste it over here.&lt;br /&gt;
&lt;br /&gt;
Click on '''Save '''and execute on the terminal.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Press the up arrow key.&lt;br /&gt;
&lt;br /&gt;
Recall the previous command:&lt;br /&gt;
&lt;br /&gt;
'''gcc auto.c -o auto'''&lt;br /&gt;
&lt;br /&gt;
'''press Enter'''&lt;br /&gt;
&lt;br /&gt;
Type: &lt;br /&gt;
&lt;br /&gt;
'''./auto'''&lt;br /&gt;
&lt;br /&gt;
'''press Enter'''&lt;br /&gt;
&lt;br /&gt;
Yes it is working.&lt;br /&gt;
&lt;br /&gt;
The output is 0.&lt;br /&gt;
&lt;br /&gt;
This is because we have initialized the value of i as 0.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Now let us see '''static variable.'''&lt;br /&gt;
&lt;br /&gt;
Although we have studied about '''static variable '''in the previous tutorials.&lt;br /&gt;
&lt;br /&gt;
I will explain it here briefly.&lt;br /&gt;
&lt;br /&gt;
Come back to the slides.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 9&lt;br /&gt;
&lt;br /&gt;
'static'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| ''''static'''' variables are '''initialized''' to''' 0.'''&lt;br /&gt;
&lt;br /&gt;
'They are not destroyed even after program control exits from the block. &lt;br /&gt;
&lt;br /&gt;
Value of the variable persists between different function calls.&lt;br /&gt;
&lt;br /&gt;
Storage space is CPU memory.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Point to the program.&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Let us see an example.&lt;br /&gt;
&lt;br /&gt;
I will edit the same code file.&lt;br /&gt;
&lt;br /&gt;
Come back to our program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| press '''ctrl + shft + s keys.'''&lt;br /&gt;
&lt;br /&gt;
Save the file as''' static.c'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Press '''ctrl + shft + s keys simultaneously.'''&lt;br /&gt;
&lt;br /&gt;
Let me resize the window.&lt;br /&gt;
&lt;br /&gt;
Now I will just change the filename as '''static'''&lt;br /&gt;
&lt;br /&gt;
Click on''' Save.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| '''Change '''&lt;br /&gt;
&lt;br /&gt;
'''auto int i =0;'''&lt;br /&gt;
&lt;br /&gt;
'''to'''&lt;br /&gt;
&lt;br /&gt;
'''static int i=0;'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Now, I will just change the '''initialization''' of the variable '''i''' to '''static int i=0;'''&lt;br /&gt;
&lt;br /&gt;
Click on''' save'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| '''On the terminal'''&lt;br /&gt;
&lt;br /&gt;
Type:&lt;br /&gt;
&lt;br /&gt;
'''gcc static.c -o static -o stat'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Let us see what happens.&lt;br /&gt;
&lt;br /&gt;
Execute the file on the terminal.&lt;br /&gt;
&lt;br /&gt;
Type:&lt;br /&gt;
&lt;br /&gt;
'''gcc space static.c space -o space stat'''&lt;br /&gt;
&lt;br /&gt;
Press '''Enter'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Type:&lt;br /&gt;
&lt;br /&gt;
'''./stat'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Type:&lt;br /&gt;
&lt;br /&gt;
'''./stat'''&lt;br /&gt;
&lt;br /&gt;
Press '''Enter'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| The output is displayed as:&lt;br /&gt;
&lt;br /&gt;
0 &lt;br /&gt;
&lt;br /&gt;
1 &lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
This is because static variables are global variables.&lt;br /&gt;
&lt;br /&gt;
The scope of static variable is local to the function they are defined in.&lt;br /&gt;
&lt;br /&gt;
Sentence is lengthy.&lt;br /&gt;
&lt;br /&gt;
Reframe to the sentence.''Reply to Madhuri (18/07/2014, 11:45): &amp;quot;...&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
Reframed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They do not lose their value between function calls&lt;br /&gt;
&lt;br /&gt;
Now let us learn about '''extern keyword'''&lt;br /&gt;
&lt;br /&gt;
Come back to the slides.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 10&lt;br /&gt;
&lt;br /&gt;
'''extern''' variable&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| * Scope of '''extern '''variable is throughout the main program.The sentences do not convey any meaning.&amp;lt;br/&amp;gt; &lt;br /&gt;
''Reply to Madhuri (17/07/2014, 12:47): &amp;quot;...&amp;quot;''&amp;lt;br/&amp;gt; It is very clear that the variable scope is throughout the main program.&amp;lt;br/&amp;gt; This is the advance tutorial we have already covered the basic for scope of variables.&lt;br /&gt;
* Definition for '''extern''' variable might be anywhere in the C program.&lt;br /&gt;
* extern variables are initialized to 0 by default.&lt;br /&gt;
* They can be accessed by all functions in the program&lt;br /&gt;
* These are stored in CPU memory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Let us see an example.&lt;br /&gt;
&lt;br /&gt;
I have a code file let us go through it.&lt;br /&gt;
&lt;br /&gt;
Note that our filename is '''extern.c'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &amp;lt;nowiki&amp;gt;#include&amp;lt;stdio.h&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int x = 10 ;&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| I have initialized a variable as integer variable '''x''' to '''10'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| int main() &lt;br /&gt;
&lt;br /&gt;
{ &lt;br /&gt;
&lt;br /&gt;
extern int y; &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| This the main function.&lt;br /&gt;
&lt;br /&gt;
In the main function I have declared an '''extern integer variable y.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| printf ( &amp;quot;The value of x is %d \n&amp;quot;, x ) ; &lt;br /&gt;
&lt;br /&gt;
printf ( &amp;quot;The value of y is %d&amp;quot;,y ) ; &lt;br /&gt;
&lt;br /&gt;
return 0; &lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
int y = 50 ;&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Using the '''printf''' statements we will display the values of '''x''' and '''y.'''&lt;br /&gt;
&lt;br /&gt;
This the '''return''' statement.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Highlight int y = 50 ;&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| We will '''initalize y '''to '''50 '''after the '''main''' function close.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| '''On the terminal'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Now switch to the terminal and let us see what will be the output.&lt;br /&gt;
&lt;br /&gt;
Let me clear the prompt.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| '''Compile'''&lt;br /&gt;
&lt;br /&gt;
'''Type: gcc extern.c -o ext'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| '''Type: gcc extern.c -o ext'''&lt;br /&gt;
&lt;br /&gt;
Press''' Enter'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| '''Execute'''&lt;br /&gt;
&lt;br /&gt;
'''Type: ./ext'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| '''Type: ./ext'''&lt;br /&gt;
&lt;br /&gt;
Press''' Enter'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Output&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| The output is:&lt;br /&gt;
&lt;br /&gt;
'''The value of x is 10 '''&lt;br /&gt;
&lt;br /&gt;
'''The value of y is 50'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Point to the statements.&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| As we studied the value of the '''extern keyword''' is throught out the main program.&lt;br /&gt;
&lt;br /&gt;
We can define it anywhere in the program.&lt;br /&gt;
&lt;br /&gt;
Both the statements are justified.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Now let us move on to '''register keyword.'''&lt;br /&gt;
&lt;br /&gt;
We will go back to the slides.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 11&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Register variables will be accessed faster than normal variables.&lt;br /&gt;
&lt;br /&gt;
They are stored in register memory instead of main memory.&lt;br /&gt;
&lt;br /&gt;
Limited number of variaThis sentence does not convey the meaning.''Reply to Madhuri (17/07/2014, 13:06): &amp;quot;...&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
It is understood that we cannot use more than 1000 variables as register variables. Register size is low as mentioned either 16, 32 or 64 bits.bles can be used since register size is very low. &lt;br /&gt;
&lt;br /&gt;
(16 bits, 32 bits or 64 bits)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Let us see an example now.&lt;br /&gt;
&lt;br /&gt;
I have a code file.&lt;br /&gt;
&lt;br /&gt;
Let us go through it.&lt;br /&gt;
&lt;br /&gt;
Note that the file name is''' register.c'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| register int i; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Here we have declared register integer variable.&lt;br /&gt;
&lt;br /&gt;
This variable will be directly stored in the '''register memory.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &amp;lt;nowiki&amp;gt;for(i=1; i&amp;lt;=5; i++) &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
printf(&amp;quot;n%d\n&amp;quot;,i); &lt;br /&gt;
&lt;br /&gt;
return 0; &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| This is the '''for''' loop that displays the value of '''i''' from '''1''' to '''5.'''&lt;br /&gt;
&lt;br /&gt;
This will display the value of '''i.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Type:&lt;br /&gt;
&lt;br /&gt;
'''gcc register.c -o register'''&lt;br /&gt;
&lt;br /&gt;
Type: '''./register'''&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Let us execute the program and see.&lt;br /&gt;
&lt;br /&gt;
Let me clear the prompt&lt;br /&gt;
&lt;br /&gt;
On the terminal.&lt;br /&gt;
&lt;br /&gt;
Type:&lt;br /&gt;
&lt;br /&gt;
'''gcc space register.c space -o space register'''&lt;br /&gt;
&lt;br /&gt;
Type: '''./register'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| The output is displayed as:&lt;br /&gt;
&lt;br /&gt;
'''Values stored in register memory 1'''&lt;br /&gt;
&lt;br /&gt;
'''Values stored in register memory 2'''&lt;br /&gt;
&lt;br /&gt;
'''Values stored in register memory 3'''&lt;br /&gt;
&lt;br /&gt;
'''Values stored in register memory 4'''&lt;br /&gt;
&lt;br /&gt;
'''Values stored in register memory 5'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| This brings us to the end of this tutorial.&lt;br /&gt;
&lt;br /&gt;
Let us summarize.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 12&lt;br /&gt;
&lt;br /&gt;
Summary&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| In this tutorial we learnt,&lt;br /&gt;
&lt;br /&gt;
* '''Storage class specifiers'''&lt;br /&gt;
* '''auto keyword'''&lt;br /&gt;
* '''static keyword'''&lt;br /&gt;
* '''extern keyword'''&lt;br /&gt;
* '''register keyword'''&lt;br /&gt;
&lt;br /&gt;
Where is the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Reply to Madhuri (17/07/2014, 12:55): &amp;quot;...&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
We cannot give assignment as there is no use. Register and extern variables are mostly used in embedded C programming, hardware programming. There these can be understood well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 13&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| As an assignment,&lt;br /&gt;
&lt;br /&gt;
Write a program, to print the sum of first &lt;br /&gt;
&lt;br /&gt;
5 numbers &lt;br /&gt;
&lt;br /&gt;
Declare both the '''keywords auto '''and &lt;br /&gt;
&lt;br /&gt;
'''static''' in the program &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 14&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Watch the video available at the link shown below&lt;br /&gt;
&lt;br /&gt;
It summarises the Spoken Tutorial project &lt;br /&gt;
&lt;br /&gt;
If you do not have good bandwidth, you can download and watch it&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 15&lt;br /&gt;
&lt;br /&gt;
Spoken Tutorial Workshops&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| The Spoken Tutorial Project Team &lt;br /&gt;
&lt;br /&gt;
Conducts workshops using spoken tutorials &lt;br /&gt;
&lt;br /&gt;
Gives certificates to those who pass an online test &lt;br /&gt;
&lt;br /&gt;
For more details, please write to&lt;br /&gt;
&lt;br /&gt;
contact@spoken-tutorial.org&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| Display Slide 15&lt;br /&gt;
&lt;br /&gt;
Acknowledgement&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| Spoken Tutorial Project is a part of the Talk to a Teacher project&lt;br /&gt;
&lt;br /&gt;
It is supported by the National Mission on Education through ICT, MHRD, Government of India&lt;br /&gt;
&lt;br /&gt;
More information on this Mission is available at: http://spoken-tutorial.org\NMEICT-Intro&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;&amp;quot;| This is Ashwini Patil from IIT Bombay.&lt;br /&gt;
&lt;br /&gt;
Thank you for joining.&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ashwini</name></author>	</entry>

	</feed>