关于c语言中用static修饰函数 20
我先把代码贴出来#include<stdio.h>//如果我在这里写staticvoidtest();就不会报错intmain(void){//如果我在这里声明函数,写成...
我先把代码贴出来
#include <stdio.h>
//如果我在这里写 static void test(); 就不会报错
int main(void)
{
//如果我在这里声明函数,写成 static void test(); 会报错。貌似编译器把这里的static认为成了存储类型
test();
return 0;
}
static void test()
{
pirntf("test\n");
return;
}
我也不知道具体什么原因。求大神解答!谢谢! 展开
#include <stdio.h>
//如果我在这里写 static void test(); 就不会报错
int main(void)
{
//如果我在这里声明函数,写成 static void test(); 会报错。貌似编译器把这里的static认为成了存储类型
test();
return 0;
}
static void test()
{
pirntf("test\n");
return;
}
我也不知道具体什么原因。求大神解答!谢谢! 展开
7个回答
展开全部
函数声明和全局变量是一个级别的,肯定只能在main函数外
追问
你的说法不对,我是函数声明,不是定义。声明可以在main函数里声明,只是声明在main中的话作用域就是从被限制了在main函数中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也不知道具体什么原因
追问
你在逗我?
追答
static表示整个函数只属于本文件,只能被本文件的函数调用,具有文件作用域,所以,肯定不能在局部作用域里面使用。(因为一个函数中声明的东西怎么能管自己外面的事呢,这肯定是越界行事了嘛)但如果把static去掉,就是一个普通的函数了,这样,你可以在另外的函数内部声明它。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询