在所有函数(包括MAIN函数)以外定义的变量(一般定义在预处理命令后)是全局变量(项目里所有其他文件可见)
static 关键字用在全局变量里表示 作用范围在该文件
用在函数里的变量前表示该变量的内容会保存到下一次该函数被调用
用在函数名前表示表示该函数只可以在该文件里被调用(申明和定义时都得加)
当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。
例如:
#include <stdio.h>
#include <stdlib.h>
void decoupeMinutes(int heures, int minutes);
int main(int argc, char *argv[])
{
decoupeMinutes(heures, minutes);
printf("%d heures et %d minutes\n", heures, minutes);
return 0;
}
void decoupeMinutes(int heures, int minutes)
{
heures = minutes / 60; // 90 / 60 = 1
minutes = minutes % 60; // 90 % 60 = 30
}
在下面函数里起作用的是decoupeMInutes里面的变量而不是全局变量,全局变量被屏蔽掉了,没有得到任何改变。