问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在main.c中如何调用static函数怎么办

发布网友 发布时间:2022-04-23 14:50

我来回答

2个回答

热心网友 时间:2023-10-19 10:39

你好,static在c里面可以用来修饰变量,也可以用来修饰函数。
先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。
int a ;
int main()
{
int b ;
int c* = (int *)malloc(sizeof(int));
}
a是全局变量,b是栈变量,c是堆变量。
static对全局变量的修饰,可以认为是*了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入static修饰之后,只能被本文件中函数引用此变量。
static对栈变量的修饰,可以认为栈变量的生命周期延长到程序执行结束时。一般来说,栈变量的生命周期由OS管理,在退栈的过程中,栈变量的生命也就结束了。但加入static修饰之后,变量已经不再存储在栈中,而是和全局变量一起存储。同时,离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。
static对函数的修饰与对全局变量的修饰相似,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用。

热心网友 时间:2023-10-19 10:39

与普通函数调用一样。
例如 main.c :
#include <stdio.h>
static int fun(int n){
return n*n;
}
int main()
{
int i;
for (i=0;i<=5;i++)
printf("%d ", fun(i)); //调用
return 0;
}
输出:0 1 4 9 16 25
如果 static函数 写在另一个文件里(例如 a3.c), 可以 include 进来,一样地调用。
a3.c 内容:
#include <stdio.h>
static int fun(int n){
return n*n;
}
main.c 内容 :
#include <stdio.h>
#include "a3.c"
int main()
{
int i;
for (i=0;i<=5;i++)
printf("%d ",fun(i));
return 0;
}
输出:0 1 4 9 16 25

热心网友 时间:2023-10-19 10:39

你好,static在c里面可以用来修饰变量,也可以用来修饰函数。
先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。
int a ;
int main()
{
int b ;
int c* = (int *)malloc(sizeof(int));
}
a是全局变量,b是栈变量,c是堆变量。
static对全局变量的修饰,可以认为是*了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入static修饰之后,只能被本文件中函数引用此变量。
static对栈变量的修饰,可以认为栈变量的生命周期延长到程序执行结束时。一般来说,栈变量的生命周期由OS管理,在退栈的过程中,栈变量的生命也就结束了。但加入static修饰之后,变量已经不再存储在栈中,而是和全局变量一起存储。同时,离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。
static对函数的修饰与对全局变量的修饰相似,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用。

热心网友 时间:2023-10-19 10:39

与普通函数调用一样。
例如 main.c :
#include <stdio.h>
static int fun(int n){
return n*n;
}
int main()
{
int i;
for (i=0;i<=5;i++)
printf("%d ", fun(i)); //调用
return 0;
}
输出:0 1 4 9 16 25
如果 static函数 写在另一个文件里(例如 a3.c), 可以 include 进来,一样地调用。
a3.c 内容:
#include <stdio.h>
static int fun(int n){
return n*n;
}
main.c 内容 :
#include <stdio.h>
#include "a3.c"
int main()
{
int i;
for (i=0;i<=5;i++)
printf("%d ",fun(i));
return 0;
}
输出:0 1 4 9 16 25

热心网友 时间:2023-10-19 10:39

你好,static在c里面可以用来修饰变量,也可以用来修饰函数。
先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。
int a ;
int main()
{
int b ;
int c* = (int *)malloc(sizeof(int));
}
a是全局变量,b是栈变量,c是堆变量。
static对全局变量的修饰,可以认为是*了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入static修饰之后,只能被本文件中函数引用此变量。
static对栈变量的修饰,可以认为栈变量的生命周期延长到程序执行结束时。一般来说,栈变量的生命周期由OS管理,在退栈的过程中,栈变量的生命也就结束了。但加入static修饰之后,变量已经不再存储在栈中,而是和全局变量一起存储。同时,离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。
static对函数的修饰与对全局变量的修饰相似,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用。

热心网友 时间:2023-10-19 10:39

与普通函数调用一样。
例如 main.c :
#include <stdio.h>
static int fun(int n){
return n*n;
}
int main()
{
int i;
for (i=0;i<=5;i++)
printf("%d ", fun(i)); //调用
return 0;
}
输出:0 1 4 9 16 25
如果 static函数 写在另一个文件里(例如 a3.c), 可以 include 进来,一样地调用。
a3.c 内容:
#include <stdio.h>
static int fun(int n){
return n*n;
}
main.c 内容 :
#include <stdio.h>
#include "a3.c"
int main()
{
int i;
for (i=0;i<=5;i++)
printf("%d ",fun(i));
return 0;
}
输出:0 1 4 9 16 25
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 嵌入式中main.c*是什么意思 在Linux中,Is main.c;cat main.c ;du-kmain.c;head main.c分别是什么意思 群接龙供应商要收费吗 除了快团团和群接龙还有别的团长平台吗 群接龙隐藏了要怎么看到 群接龙三种主页怎么分 餐饮连锁店如何做社群团购接龙 群接龙如何搜索社群 群接龙怎么关注团长 群接龙团长会员试用期已过怎么办? 群接龙提现需要确认收货吗 团的成语接龙 群团购接龙发布后都谁能看到? 群接龙如何操作? 维生素E乳膏可以用么? 维生素e乳可以长期使用吗 烟酰腔凝胶晚上用还是白天用好?还又复方熊果甙乳膏,复方甘草黄酮乳膏,维生素E乳膏。这四样能一起用吗 南京皮肤研究所开的维生素e乳膏可以天天当做护肤品擦脸吗? 有人用过维生素E乳膏,小孩子能用吗? 维生素E软膏能当面霜长期使用吗? c语言程序如何找回main.c文件? c语言有个main.c,如何调用子函数文件fun.c,求大神指教 ?? main.c中想调用一个函数test.cpp怎么操作? 单片机C语言程序中,有多个.C源文件,main.c函数中调用那些.c源文件的函数应该怎样处理? 华为荣耀30可以无线充电吗? main.c的全局变量能否被其他 .c看到 codeblock出现对话框,main.c打不开 c工程主函数必须为main.c吗?为什么我这个运行成功了? keil uvision2加载不了main.c怎么办??? 在红帽子中如何删除main.c文件 codeblocks建立了project后没有出现main.c MAIN.C(51): error C221: non-constant case&#47;dim expression ,求解高手,这是什么错误??? 将这个程序保存成main.c,然后编译执行,怎么编译执行?? keil中一直提示错误:main.c(63): error C202: &#39;num&#39;: undefined identifier main.c是否需要#include&lt;stm32f10x_it.h&gt; main.c(123): error C207: &#39;read_ds1302&#39;: declared with &#39;void&#39; parameter list 为什吗用code block打开main.c显示此文件不存在 C里面的main是什么意思啊 怎么查自己有没有医保社保? 查询医保缴纳情况有哪些方法可以查询?如果没有工作和户口要如何查询?