C语言编程:变量、递归与预处理的深入解析
1. 静态变量(Static Variables)
在编程中,有些变量是特定源文件中函数的私有变量,不希望被其他部分访问。例如, stack.c 中的 sp 和 val ,以及 getch.c 中的 buf 和 bufp 。使用 static 声明外部变量或函数,可以将其作用域限制在正在编译的源文件的其余部分。
以下是一个示例代码:
static char buf[BUFSIZE]; /* buffer for ungetch */
static int bufp = 0; /* next free position in buf */
int getch(void) { ... }
void ungetch(int c) { ... }
在这个例子中,其他例程无法访问 buf 和 bufp ,并且这些名称不会与同一程序其他文件中的相同名称冲突。同样,通过将 sp 和 val 声明为 static ,可以隐藏用于栈操作的变量。
static 声明也可用于内部变量。内部静态变量与自动变量一样,是特定函数的局部变量,但不同的是,每次函
超级会员免费看
订阅专栏 解锁全文
860

被折叠的 条评论
为什么被折叠?



