我被告知,无法从其他文件访问static在一个.c文件中定义的函数.但是在下面的程序中,我可以static void show()从另一个文件访问该函数.我对staticC 中函数的理解是错误的吗?
啊(第一档):
static void show()
{
printf("I am in static show function in a.c");
}
Run Code Online (Sandbox Code Playgroud)
bc(另一个文件):
#include"a.h"
void main()
{
show();
}
Run Code Online (Sandbox Code Playgroud)
Oli*_*rth 11
请记住,#include通过复制和粘贴包含文件的内容来工作.因此,在您的示例中,在#include处理完之后,您会得到:
static void show()
{
printf("I am in static show function in a.c");
}
void main()
{
show();
}
Run Code Online (Sandbox Code Playgroud)
所以很明显main可以看到show.1
解决方案是不是 #include .c文件.通常,您应该只有#include标题(.h)文件.不应在头文件中声明或定义静态函数,因此main无法查看它.
show函数的定义,一个在a.c和一个b.c.对于static函数,这不是问题,但对于非static函数,您将收到链接器错误.
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |