Static

A static variable has 3 primary uses:

  • A static variable in a function will retain its value between function calls.

    • Consider the following code snippet:

      //Setup code void spike_crash_counter_output() { static uint8_t number_of_crashes = 0; number_of_crashes++; printf("Number of crashes: %d\n", number_of_crashes); } int main() { spike_crash_counter_output(); spike_crash_counter_output(); } /*Output: Number of crashes: 1 Number of crashes: 2 */
  • A variable declared as static in a file is a localized global, i.e. the variable cannot be seen by other files, only in the file that it was declared in.

  • A function declared as static in a file may only be called by functions in the same file, i.e. the function cannot be seen by other files, only in the file that it was declared in.