COHERENT manpages
This page displays the COHERENT manpage for static [Declare storage class].
List of available manpages
Index
static -- C Keyword Declare storage class static is a C storage class. It has two entirely different meanings, depending upon whether it appears inside or outside a function. Outside a function, static means that the function or variable it preceeds may not be seen outside the module. Inside a function, static may only precede a variable. It means that that variable is permanently allocated, rather than allocated on the stack when the function is entered and discarded when the function exits. If a static variable is initialized, that occurs before the program starts rather than every time the function is entered. If a function returns a pointer to a variable, often that variable is declared static within the function. If a pointer to a non-static local variable is returned, that variable is freed when the function returns and the pointer points to an unprotected location. Example The following example demonstrates the uses of the static keyword. It returns the next integer in a sequence as a string. /* static to keep function hidden outside of this module */ static char *nextInt() { /* static to protect value between calls */ static int next = 0; /* static to allow the return of a pointer to s */ static char s[5]; sprintf(s, "%d", next++); return(s); } See Also auto, C keywords, extern, register variable, storage class ANSI Standard, §6.5.1