extern 的用法

来源:互联网 发布:unity3d导入3dmax模型 编辑:程序博客网 时间:2024/06/03 15:02
  • 从0到1,回归基础,夯实基础 ,点滴积累,成就未来

例1:

file1.c

#include <stdio.h>int externAint main(){    int power(int n);    int b = 3, c, d, m;    printf("input a and m :\n");    scanf_s("%d%d", &externA, &m);    c = externA*b;    printf("%d*%d=%d\n", externA, b, c);    d = power(m);    printf("%d**%d=%d\n", externA, m, d);    system("pause");    return 0;}

file2.c
添加extern 函数可以使file1中定义的外部变量的作用域扩展到本文件;

extern externA;//使file1中定义的外部变量的作用域扩展到本文件;int power(int n){    int i, y = 1;    for (int i = 0; i <= n; i++)    {        y *= externA;    }    return y;}

//extern 在main中函数声明使用,调用其他文件的外部函数;

例2:

f1.c

#include <stdio.h>int main(){    extern void enter_string(char str[]);    extern void delete_string(char str[], char ch);    extern void print_string(char str[]);    char c, str[80];    enter_string(str);    printf("a delete char :");    scanf_s("%c", &c);    delete_string(str, c);    print_string(str);    return 0;}

f2.c

void enter_string(char str[80]){    gets(str);}

f3.c

void delete_string(char str[], char ch){    int i, j;    for (i = j = 0; str[i] != '\0'; i++)//        if (str[i] != ch)//如果str[i]!=ch 则保留到str[j++]中;            str[j++] = str[i];    str[j] = '\0';}

f4.c

void print_string(char str[]){    printf("%s\n", str);}