Значение 'auto' в C - это просто переменная, которая является локальной переменной.
Поэтому совершенно противоречиво говорить, что вы хотели бы объявить глобальную переменную в качестве локальной переменной.
Я думаю, что вы говорите о наличии локализованного глобального. Если вы хотите объявить переменную, которая является локальной для файла .c, с которым вы работаете, и вы не хотите, чтобы она была доступна вне файла c, но вы хотели бы, чтобы она была доступна всем функциям в этом файл, вы должны объявить его как статическую переменную, как вы сделали для переменной j.
Следовательно, вы должны иметь что-то вроде следующего в example.c:
static int i; //localised global within the file example.c
static int j; //not accessible outside the .c file, but accessible by all functions within this file
int main()
{
//do something with i or j here.
i = 0 ;
j = 1 ;
}
void checkFunction()
{
//you can also access j here.
j = j+ 5;
}
Полагаю, мне следует добавить, что вы можете использовать ключевое слово static для переменной несколькими способами.
То, с чем вы можете быть знакомы:
1) Declaring a variable static within a function - this ensures the variable retains its value between
function invocations.
The second one ...
2) Declaring a variable as static within a module (or a .c file) - this is what I have described
above. This ensures a variable is localised within that module or .c file, but it is global so that
it can be used by any of the functions defined in that particular file. Hence the name localised
global.
Однако он не будет доступен за пределами этого файла .c.