1. 內存作用域
作用域:一個變量的作用域就是一個{}中。可以在mian函數中用一個{}來隔絕兩個相同的變量名。
extern 使用:
a.c:
int age;
main.c
#include<stdio.h> extern int age; void set_age(int n) { age = n; } void get_age() { printf("age = %d\n", age); } int main() { set_age(10); get_age(); system("pause"); return 0; }
extern int age; //有一個變量,類型是int,名字是age,已經在同文件下其他文件中定義了,直接//使用就好了,不需要再重新定義了。這個變量是全局變量。
運行結果:age = 10
注意:出現在括號之外的變量就是全局變量。
2.register變量:建議如果有寄存器空閑,就放到寄存器中,可以加快效率。
注意: 對於一個寄存器變量,是不能取地址的。
3.靜態變量:static修飾,只初始化一次,在程序運行期間,靜態變量一直存在。雖然靜態變量的生存周期和整個程序的一樣,但是它的作用域還是在它本身的{}中。
4.代碼在作用域之外的變量:全局變量和靜態變量相似;一旦全局變量定義為靜態變量,意思是這個變量只是在這個變量的文件中有效。
5. 用static修飾函數:那該函數只能在該文件中被引用。將某個文件或者某個變量約束在本身文件中使用。在文件外部是不可以使用的。