Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
What exactly does the static keyword do in C? I have seen it used in several diverse contexts: 1) As a variable outside a function: #include <stdio.h> static int x = 5; int main (void) ...
#1: Initial revision
What does the static keyword do in C?
What exactly does the `static` keyword do in C? I have seen it used in several diverse contexts: **1) As a variable outside a function:** ```c #include <stdio.h> static int x = 5; int main (void) { printf("%d\n", x); } ``` **2) As a variable inside a function:** ```c void func (void) { static int count=0; printf("%d\n", count++); } ``` **3) As part of a function declaration/definition:** ```c static void func (void); ``` **4) As part of a function parameter list containing an array:** ```c void func (int arr[static 5]); ``` All of these uses seem quite unrelated. What exactly is the purpose of `static` in all the above examples?