1.概要
static 在c语言中的价值。
static 还有一个在文件内部使用有效的限制。如果在函数的外部,被static修饰的变量或者函数,是不可以在文件外部访问的,也就是说不同的文件中,被static修饰的函数或者变量是可以重名的。
static的这个特性,在c++中显得有些鸡肋,但在c中的价值却很大,几乎起到了文件隔离的作用。
2.代码
2.1 Main.c
#include <stdio.h>
#include "A.h"
#include "B.h"
int main() {
int a = fun_a(4);
printf("fun_a:%d\n", a);
int b = fun_b(4);
printf("fun_b:%d\n", b);
printf("hello word");
2.2.1 A.h
#pragma once
int fun_a(int a);
2.2.2 A.c
static int fun(int a);
int fun_a(int a) {
return fun(a);
}
static int fun(int a) {
return a + a;
}
2.3.1 B.h
#pragma once
int fun_b(int a);
2.3.2 B.c
static int fun(int a);
int fun_b(int a) {
return fun(a);
}
static int fun(int a) {
return a + a + a;
}
3.运行结果
fun_a:8
fun_b:12
hello word