Related Articles

Related Articles

Static functions in C
  • Difficulty Level : Easy
  • Last Updated : 24 Aug, 2020

Prerequisite : Static variables in C

In C, functions are global by default. The “static” keyword before a function name makes it static. For example, below function fun() is static.

filter_none

edit
close

play_arrow

link
brightness_4
code

static int fun(void)
{
  printf("I am a static function ");
}

chevron_right


Unlike global functions in C, access to static functions is restricted to the file where they are declared. Therefore, when we want to restrict access to functions, we make them static. Another reason for making functions static can be reuse of the same function name in other files.

For example, if we store following program in one file file1.c

filter_none

edit
close

play_arrow

link
brightness_4
code

/* Inside file1.c */ 
static void fun1(void)
{
  puts("fun1 called");
}

chevron_right


And store following program in another file file2.c



filter_none

edit
close

play_arrow

link
brightness_4
code

/* Inside file2.c  */ 
int main(void)
{
  fun1(); 
  getchar();
  return 0;  
}

chevron_right


Now, if we compile the above code with command “gcc file2.c file1.c”, we get the error “undefined reference to `fun1’” . This is because fun1() is declared static in file1.c and cannot be used in file2.c.

Please write comments if you find anything incorrect in the above article, or want to share more information about static functions in C.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :