extern全局函数

转:https://www.cnblogs.com/JCSU/articles/1726807.html

/************************************************************************/
/* hello.h                                                              */
/************************************************************************/
#ifndef _HELLO_H_
#define _HELLO_H_

#define MAX_FILE_LEN 100

int MaxValue(int x, int y);
int MinValue(int x, int y);

#endif
/************************************************************************/
/* hello.c                                                              */
/************************************************************************/
#include "hello.h"

int MaxValue(int x, int y)
{
    return x > y ? x : y;
}

int MinValue(int x, int y)
{
    return x > y ? y : x;
}
/************************************************************************/
/* main.c                                                               */
/************************************************************************/
#include <stdio.h>

extern int MaxValue(int x, int y);
extern int MinValue(int x, int y);

int main(void) 
{
    printf("The max of (2, 3) is: %d
", MaxValue(2, 3));
    printf("The min of (2, 3) is: %d
", MinValue(2, 3));
    getchar();
    return 0;
}

定义与声明:

(1)定义只能有一次,声明可以有多次

(2)函数在默认情况下是整个程序可见的,对于函数的定义和声明,编译器实际上在前面加了extern,再手动加extern关键字没有必要

(3)怎样声明而不定义一个变量?即extern int var;

【参考】

理解C语言中的extern关键字:http://www.geeksforgeeks.org/archives/840 

原文地址:https://www.cnblogs.com/sggggr/p/13516781.html