×

Static in C

Static is a keyword that is used in the C programming language. It can be used both as variables and as functions. In other words, it can be declared both as a static variable and a static function.

Static variables have the advantage of preserving their value even if they are out of scope. A regular variable's scope is confined to how it is defined, whereas a static variable's scope is unlimited. Static variables preserve their previous value in their earlier scope and are not initialized again in the new scope.

Syntax:

static dataTypevariableName = variableValue;

In English, the word static means "pertaining to or characterised by a permanent or immobile situation." Computer language, on the other hand, is used to represent things that do not change over time.A variable that is stored using static is assigned address during build time. It will therefore be safe to use a pointer to such a variable.

  • During the building process, a variable that is saved using static is given an address. As a result, using a reference to a very variable will be safe.

E.g., While the application is compiling and executing, a static int variable remains in memory. When a function call where the variable is created ends, the regular variable is destroyed.

#include <stdio.h>
	int fun()
	{
		static int count = 0;
		count++;
		return count;
	}
	int main()
	{
		printf (“%d \n”, fun());
		printf (“ %d \n”, fun());
		return 0;
	}

Output:

1 2
  • Static variables are assigned memory in the data segment, not the stack segment, and a static function's lifespan spans the whole programme.
  • Inside a structure, static variables should not be defined. The reason for this is that the C compiler expects all of the structure components to be in the same place. That is, structure members' memory allocation should be contiguous. It will be allowed to specify structure within the function, as well as dynamically or globally allocate memory.All structure members should reside in the same memory because the value for the structure element is fetched by counting the offset of the element form the beginning address of a structure. Differentiating one member from the data segment negates the purpose of a centralized and decentralized, since a static variable can be applied to the whole structure.
  • Static variables, such as global variables, are initialized as 0.

E.g., the value of X can be printed as 0. In comparison, the value of Y is something garbage.

#include <stdio.h>
	int main() 
	{
		static int x;
		int y;
		printf(“ %d \n”, x, y);
	}
  • In the C programming language, static variables can be initialized using constant literals.
  • A static local variable is a local variable that has been declared using the static keyword. When a function updates a static local variable, the changed value is available to all subsequent functions.Static functions and static global variables are possible in the C programming language.
  • A function's static variable retains its value between invocations.
  • A static method is a member function of a class that is defined using the static keyword. It may be accessible by all instances of a class; however, it cannot be limited to a single instance.
  • A static global variable or a function is seen only in its file where it is declared at.

E.g.:

#include <stdio.h>
#include <conio.h>
void book()
{
int x = 10;
static int y = 10;


x += 5;
y += 5;


printf (“x = %d, y = %d \n”, x, y);
}
int main()
{
int i;
for (i = 0; i<10; ++i)
	book();
}

Output:

x = 15, y = 15
x = 15, y = 20
x = 15, y = 25
x = 15, y = 30
x = 15, y = 35
x = 15, y = 40
x = 15, y = 45
x = 15, y = 50

If a function has to retain some state among invocations and you don't want to employ global variables, static help is helpful. This should be used with caution, as it may make your code thread-safe while also making it more difficult to understand.

Static is also often used as a kind of access control. Developing various features in the C programming language exposes a few public functions to users; the rest of the functions should be made static so that the user cannot access them, which is known as encapsulation.

The use of static keywords has a variety of applications. Limiting the scope of variables declared within a function or module is the most effective use.

Static variables and static functions can be concealed from the outside world by using static keywords, which behaves similarly to the usage of private and public in more object-oriented languages.


Related Topics

What is the main in C?

In the C programming language, "main" is a predefined term or function. It is the primary function in every C program and is in charge of beginning and terminating the...

6 minutes read.

Range of int in C

In this session we know about the rage of the int in C language with the suitable examples and the programs. Firstly, we can learn the range of int: The int is...

3 minutes read.

Why does sizeof(x++) not Increment x in C

Sizeof() is a much-involved operator in C or C++. It is an incorporated time unary administrator which can be utilized to figure the size of its operand. The consequence of...

5 minutes read.

Java Array vs ArrayList

As we all know, arrays are linear data structures that allow you to add elements to them continuously in memory address space, whereas ArrayList is a Collection framework class. Despite...

4 minutes read.

Find reverse of an array in C using functions

Introduction: Here, we describe how to find the reverse array in C using functions. Suppose you have an array with n elements. I need to display the elements present in...

3 minutes read.

Bank management system in C

This is a mini project that is constructed completely using the C language. The bank management system is a beginner friendly project. To construct this user only needs to know...

12 minutes read.

Else If Ladder in C

What is Else If Ladder: When there are multiple options and a user has to decide from the options, we use Else If Ladder. Basically, it is an extension of if...

3 minutes read.

Commenting in C

Commenting in C Commenting in the C language is used to give out the information about the lines of the code which are included. It is one of the things that...

3 minutes read.

Character Class Tests in C

Introduction The <ctype.h> is a header file in C which is used to declare functions for testing characters. This header file of the C standard library is used to declare multiple...

4 minutes read.

Snake Game in C

Snake game in C is basic desktop console program which was created in 1970’s. It is an old classic game which was played by every child across the world. This...

4 minutes read.

Strcpy() in C

In C language many operations can be performed on a string. Characters in a sequence are known as string. Note:   To use this function we must include the #include<string.h> header file...

4 minutes read.

Hexadecimal to Binary in C

What is hexadecimal? Hexadecimal defines a sequence of numbers centered on-16, i.e., before assigning the next number to a new location, it describes a numbering scheme that includes 16 sequential numbers as basic...

2 minutes read.

While-Loop in C

Syntax of While Loop The syntax that has been used for the while loop in C programming language is: while (termination condition) {   // the body of the loop  } Working of While-Loop Initially, we...

3 minutes read.

Do WHILE LOOP in C Programming Examples

Before understanding the programming examples of the Do-While loop, we have to know what is Do-While loop in C. So, let's start with the definition of the Do-While loop. What is...

5 minutes read.

How to install a C compiler in windows 10-64bit

Many C compilers can be installed on your pc. The most downloaded compilers include GCC, Turbo C++, Visual Studio, etc. This article includes the installation of the Turbo C++ compiler in...

6 minutes read.

Assignment Operator Program in C

An assignment operator is a symbol used to assign a value to a variable in a programming language. The assignment operator is often the equal symbol (=) in programming languages....

12 minutes read.

Recursion in C

Recursion is a programming technique that allows the programmer to call the function within the same function. The function which calls the same function is known as recursive function but a...

1 minute read.

Pi() Function in C

Pi: Mathematic constants are not defined in the c or c++ programming languages. To use the Mathematical constants firstly, we have to define the _USE_MATH_DEFINES and then declare the cmath and...

3 minutes read.

Conio.h in C

Header files are the source files with the extension of .h. In c language header files are referred to as the helping files and they contain definitions of various functions...

4 minutes read.

Decimal to Binary in C

What is a decimal number? A decimal number is a number represented in the decimal number system. This system of binary conversion uses base 10 to represent numbers, i.e. the digits...

3 minutes read.