💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
### 全局变量 作用整个项目中,使用的前提是需要在使用的文件中进行声明.全局的情况下,必须要先声明,后使用. 或者先声明.在使用的地方后面赋值也可以. 例子1: ~~~ test.c 文件 int a = 100; ~~~ 使用: ~~~ extern int a; //需要声明 int main(void) { printf("%d\n", a); return EXIT_SUCCESS; } ~~~ 例子2: ~~~ extern int a; int main(void) { printf("%d\n", a); return EXIT_SUCCESS; } int a = 200; ~~~ ### 局部变量 作用范围是,从创建到所在函数结束. 另外函数的形参也是局部变量,它们是从右到左入栈的. 这是因为自右向左入栈顺序的好处就是可以动态的变化参数个数。通过堆栈分析可知,自左向右入栈方式中,最前面的参数会被压入栈底。除非知道参数个数,否则无法通过栈指针的相对位移求得最左边的参数。这样就无法实现可变参数。因此,C语言采用自右向左入栈顺序,主要是因为实现可变长参数形式(如:printf函数)。可变长参数主要通过第一个定参数来确定参数列表,所以自右向左入栈后,函数调用时栈顶指针指向的就是参数列表的第一个确定参数,这样就可以了。