求解 static 和 extern 在函数前缀的问题
/*代码声明头文件 c2.h*/
void ab(int k, int i);
static void abc(int i,int k);
static int abd(char ch);
======================
/*代码文件 c2.c*/
#include "c2.h"
void ab(int k, int i)
{
abc(k,i);
abd('a');
return 0;
}
static void abc(int i,int k)
{
printf("%d\n",i+k);
}
static int abd(char ch)
{
putchar(ch);
}
=====================
/*另一个代码文件 c1 */
#include<stdio.h>
#include "c2.c"
static void abd(int);
extern void ab(int k, int i);
main()
{
ab(50,50);
return 0;
}
static void abd(int k)
{
printf("%d\n",k);
}
void ab(int k, int i);
static void abc(int i,int k);
static int abd(char ch);
======================
/*代码文件 c2.c*/
#include "c2.h"
void ab(int k, int i)
{
abc(k,i);
abd('a');
return 0;
}
static void abc(int i,int k)
{
printf("%d\n",i+k);
}
static int abd(char ch)
{
putchar(ch);
}
=====================
/*另一个代码文件 c1 */
#include<stdio.h>
#include "c2.c"
static void abd(int);
extern void ab(int k, int i);
main()
{
ab(50,50);
return 0;
}
static void abd(int k)
{
printf("%d\n",k);
}
我的疑问是 abd函数我都声明为内部链接函数 为什么还说是 重定义呢?