在C语言中,关键字 `static` 可以用于修饰函数、变量和块(局部变量),其作用不同: 1. **静态函数:** - 在函数声明或定义前加上 `static` 关键字,可以将函数定义为静态函数。 - 静态函数只能在当前文件中被调用,无法被其他文件中的函数调用。 - 静态函数的作用域限定在声明所在的源文件中,不会污染全局命名空...
全局静态变量的话,可以在多个文件中定义同一个函数名,但实际他们的内存是不一样的,可以放心使用。 而局部静态变量作用域被限定在一个函数里面,离开了这个函数别人就不认得它了,所以可以在同一个文件下的不同函数中定义相同的变量名,当然在不同文件下亦是如此。 通过图理解一下: 这里的 num 就是全局静态变量,而...
编译不能通过,error C2129: 静态函数“void print_03(void)”已声明但未定义因为print_03在extern_static_test1.h中被声明为static。 当static修饰函数的时候,说明此函数只能被自己内部的文件使用,即具有internal linkage.因此main不能调用extern_static_test1.h中被static修饰的函数。 如有有这样几个文件a.h, a...
定义:在C语言中,static可以用于变量、函数和代码块。用法:1.变量:使用static关键字声明的变量是静态变量,它们的作用域被限制在定义它们的源文件中,它们的生命周期从程序开始运行到程序结束。静态变量的初始值为0。2.函数:使用static关键字声明的函数是静态函数,它们的作用域被限制在定义它们的源文件中,它们不...
根本原因是C语言中同一个工程中不能有同名函数 定义静态函数的好处: <1> 其他文件中可以定义相同名字的函数,不会发生冲突 <2> 静态函数不能被其他文件所用。 关于内联函数 内联函数是在函数的前面加“inline”意思是这个函数要插到程序中,让编译器不用函数名跳转的方式来实现(原因是这样跳来跳去比较...
//定义静态函数,表示该函数只能在本文件使用。staticintfunc(void){printf("123\n");} 3.6 变量的初始化值 #include<stdio.h>staticintdata1;intdata2; intmain(void){intdata3;//局部变量staticintdata4;printf("data1=%d\n",data1...
* 在定义函数时,在函数的最左边加上static可以把该函数声明为内部函数(又叫静态函数),这样该函数就只能在其定义所在的文件中使用。如果在不同的文件中有同名的内部函数,则互不干扰。 * static也可以用来声明一个内部函数 2.extern * 在定义函数时,如果在函数的最左边加上关键字extern,则表示此函数是外部函数,可...
函数中静态变量aa 只初始化一次,每次访问的值应该是上一次调用到该函数时最后处理的结果, 三、static 函数 1. 概念: 在函数的返回类型前加上关键字static,函数就被定义成为静态函数。 函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。 static函数(也叫内部函数...
staticintdata;//静态成员变量(类内声明) public: //普通成员函数 依赖于 对象的 必须对象调用 intgetData(void) { returndata; } }; //定义的时候 不需要加static intData::data=100;//类外定义+初始化 intmain() { //cout<<Data::data<<endl;//err 静态data是私有的 类外不能直接访问 ...