2017-04-19 18 views
-1

假设我在我的项目中声明了以下头文件和.c文件。想象一下Type是我声明的一种数据类型。extern是否需要在另一个文件中定义的函数?

//header1.h 
typedef struct Typing { 
    int size; 
} Type; 
Type foo(int); 
int randomNum; 

这里是.c文件

//header1.c 
#include "header1.h" 
Type foo(int size) { 
    Type type; 
    type.size = 100; 
    return type; 
} 

比方说有一个需要调用从头部这个函数foo其他一些文件名为example.h文件。如果我为函数或变量添加工作外部函数,这有什么关系吗?从我听到的情况来看,变量需要它。

//example.h 
#include "header1.h" 
extern int randomNum; 
extern Type foo(int); 

回答

0

extern需要在extern int randomNum;保持声明从一个定义。如果您在头文件中定义了一个变量,则在链接时您将收到多个定义错误。

默认情况下,功能是extern,所以你不需要它。

+0

@Moderators:你不应该删除这里的冗长讨论。 – zwol

相关问题