我正在学习静态函数,并且按照规则我将函数声明为 一个静态函数,然后我无法访问此函数到其他c文件中,如果我尝试访问,那么应该有一个错误" 未定义引用`fun " 所以我声明并定义静态函数到add.c和add.h文件并将该函数调用到main.c文件中,但我得到了不同的错误,即" 静态声明' fun'遵循非静态声明" 强文 所以我的问题是为什么这个错误来了???? 请原谅我的英语不好!!!!
/************** main.c****************/
#include <stdio.h>
#include <stdlib.h>
#include "add.h"
int main(void)
{
printf("%d ", fun());
printf("%d ", fun());
return 0;
}
/***************add.c*************/
#include <stdio.h>
#include "add.h"
static int fun(void)
{
int a=5,b=4;
return a+b;
}
/*********************add.h*************/
#ifndef ADD_H_
#define ADD_H_
static int fun(void);
#endif /* ADD_H_ */
答案 0 :(得分:0)
只能在声明它的文件中看到静态变量或函数。
C11标准
<强> 6.2.2.3 强>
如果声明对象的文件范围标识符或 function包含存储类说明符 static ,. 标识符具有内部链接。