程序1:
struct.h 文件
#pragma once
#ifndef _STRUCT_H_
#define _STRUCT_H_
typedef struct string
{
int b;
int a;
}STRING;//STRING arr[2]; //注释掉
void fun();
#endif
struct.c 文件
#include "struct.h"
STRING arr[2];
void fun() {
arr[0].b = 1;
arr[0].a = 2;arr[1].b = 1;
arr[1].a = 2;
}
test.c
#include<stdio.h>
#include<stdlib.h>
#include"struct.h"
extern STRING arr[2];int main()
{
fun();
arr[0].a = 1000;
arr[0].b = 1000;return 0;
}
等价于下面的程序:
程序2:
struct.h 文件
#pragma once
#ifndef _STRUCT_H_
#define _STRUCT_H_
typedef struct string
{
int b;
int a;
}STRING;STRING arr[2];
void fun();
#endif
struct.c 文件
#include "struct.h"
void fun() {
arr[0].b = 1;
arr[0].a = 2;arr[1].b = 1;
arr[1].a = 2;
}
test.c
#include<stdio.h>
#include<stdlib.h>
#include"struct.h"int main()
{
fun();
arr[0].a = 1000;
arr[0].b = 1000;return 0;
}