C - The static keyword

The example below demonstrates a static local variable and a static function

The function WriteLog() uses a static local variable. The variable lineNumber has function scope. It is initialized the first time the function is called and retains its value across calls.

The function WriteLog() calls a static function called LogInternal(). LogInternal is accessible within Logger.cpp only.


  int main()


  #include "Logger.h"
  void WriteLog(const char* message)
      static int lineNumber = 0;
      LogInternal(lineNumber, message);
  static void LogInternal(int lineNumber, const char* message)
      printf("%d: %s\r\n", lineNumber, message);


  // public methods
  void WriteLog(const char* message);
  // implementation
  static void LogInternal(int lineNumber, const char* message);

The output:

  1: hello
  2: world

Ads by Google

Ask a question, send a comment, or report a problem - click here to contact me.

© Richard McGrath