C 编程语言书描述了静态变量的用法,以及主题what-does-static-mean-in-ac-program
- 函数内的静态变量在调用之间保持其值。
- 静态全局变量或函数仅在其声明的文件中“可见”
解释和书上的一样,但是第1点可以,第2点不行。
我的代码:
头文件.h
static int VAL = 15;
int canShare = 1;
static void hello(char c) {
printf("header file -> VAL: %d\n", VAL);
printf("header file -> canShare: %d\n", canShare);
printf("hello func -> %d\n", c);
}
主程序
#include <stdio.h>
#include "header.h"
main() {
printf("main -> VAL: %d\n", VAL+1);
printf("main -> canShare: %d\n", canShare+1);
hello('A');
}
输出
main -> VAL: 16
main -> canShare: 2
header file -> VAL: 15
header file -> canShare: 1
hello func -> 65