Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Internal static variable vs. External static variable with Examples in C

  • Difficulty Level : Easy
  • Last Updated : 20 Nov, 2019

The static variable may be internal or external depending on the place of declaration. Static variables are stored in initialised data segments.

Internal Static Variables: Internal Static variables are defined as those having static variables which are declared inside a function and extends up to the end of the particular function.

Take a step-up from those "Hello World" programs. Learn to implement data structures like Heap, Stacks, Linked List and many more! Check out our Data Structures in C course to start learning today.

Syntax:

 
main( ) 
{
  static datatype variable;
  // other statements
}

Example:






// C program to demonstrate
// Internal Static Variables
  
#include <stdio.h>
  
int value();
  
int main()
{
    printf("%d", value());
    return 0;
}
  
int value()
{
    static int a = 5;
    return a;
}
Output:
5

External Static Variables: External Static variables are those which are declared outside a function and set globally for the entire file/program.

Syntax:

 
static datatype variable;

main()
{
  statements
}

function1()
{
  statements
}

Example:




// C program to demonstrate
// External Static Variables
  
#include <stdio.h>
  
int add(int, int);
  
static int a = 5;
  
int main()
{
    int c;
    printf("%d", add(a, c));
}
  
int add(int c, int b)
{
    b = 5;
    c = a + b;
    return c;
}
Output:
10

Difference between internal static variables and External static variables:

ParameterInternal Static VariablesExternal Static Variables
Keyword”static””static”
LinkageInternal static variable has no linkage.External static variables has internal linkage.
DeclarationInternal static variables are declared within the main functionExternal static variables are declared above the main function.
ComparisonInternal static variables are similar to auto(local) variables.External static variables are similar to global(external) variables.
VisibilityInternal static variables are active(visibility) in the particular function.External Static variables are active(visibility)throughout the entire program.
LifetimeInternal static variables are alive(lifetime) until the end of the function.External static variables are alive(lifetime) in the entire program.
ScopeInternal static variables has persistent storage with block scope(works only within a particular block or function).External static variables has permanent storage with file scope(works throughout the program).



My Personal Notes arrow_drop_up
Recommended Articles
Page :