C语言中 static 变量在多文件中的作用域
在 C 语言中,使用 static 关键字声明的变量或数组,其作用域被限制在当前文件内。因此,无论是在 1.c 还是 2.c 中包含了 1.h 文件,并对 menu_num 数组进行操作,它们实际上都是对同一个数组进行操作。
例如,在 1.h 文件中定义:
static uint16_t menu_num[5] = {0};
然后在 1.c 和 2.c 文件中包含 1.h 文件,并在各自文件中对 menu_num 数组进行操作,例如:
// 1.c 文件
#include "1.h"
...
menu_num[0] = 1;
...
// 2.c 文件
#include "1.h"
...
menu_num[1] = 2;
...
在上述代码中,1.c 和 2.c 文件中的 menu_num 数组都是同一个数组,它们对数组的操作会相互影响。
需要注意的是,如果在不同的文件定义了同名的 static 变量或数组,它们将是独立的,不会相互影响。
总结:在 C 语言中,使用 static 关键字声明的变量或数组的作用域被限制在当前文件内,因此在多个文件包含同一个头文件时,它们对同一个 static 变量或数组的操作都是对同一个变量或数组进行操作。
原文地址: https://www.cveoy.top/t/topic/oJZF 著作权归作者所有。请勿转载和采集!