我的思路是main里定义,其它文件里赋值。
1,先看 .h 文件
#ifndef LIBSTR_H
#define LIBSTR_H
#include <string.h>
typedef struct str{
char *a;
char *b;
} mbs;
extern mbs *sc; //
extern void libstr_a(void);
#endif
PS : 重要的是 exter mbs *sc 这个对结构体的声明
2,main.c //定义和引用
#include <stdio.h>
#include <stdlib.h>
#include "libstr.h"
mbs *sc = NULL;
int main(void)
{
sc = malloc(sizeof(sc)); //对sc结构体指针进行实体化
libstr_a();
if(strcmp(sc->a,"O") == 0){
printf("inster strcmp function.\n");
}
printf("Tis main.c output %s%s.\n",sc->a,sc->b);
free(sc);
return 0;
}
3,libstr.c //赋值
#include "libstr.h"
void libstr_a(void)
{
sc->a = "O";
sc->b = "K";
}
4,Makefile
CC := gcc
T := libsc
Y := libstr.c main.c libstr.h
$(T) : $(Y)
@$(CC) -o $(T) $(Y)
clean:
@rm $(T)
|