报错
(.text+0x15): undefined reference to `get_names'
(.text+0x2d): undefined reference to `show_names'
names_st.h
#include <string.h>
#define SLEN 32
struct names_st
{
char first[SLEN];
char last[SLEN];
};
typedef struct names_st names;
void get_names(names *);
void show_names(const names *);
char * s_gets(char *st, int n);
names_st.c
#include "names_st.h"
#include <stdio.h>
void get_names(names* pn)
{
printf("Please enter your first name: ");
s_gets(pn->first, SLEN);
printf("Please enter your last name: ");
s_gets(pn->last, SLEN);
}
void show_names(const names* pn)
{
printf("%s %s", pn->first, pn->last);
}
char* s_gets(char* st, int n)
{
char* ret_val;
char* find;
ret_val = fgets(st, n, stdin);
if (ret_val)
{
find = strchr(st, '\n');
if (find)
*find = '\0';
else
while (getchar() != '\n')
{
continue;
}
return ret_val;
}
}
userheader.c
#include <stdio.h>
#include "names_st.h"
int main(void)
{
names candidate;
get_names(&candidate);
printf("Let's welcome ");
show_names(&candidate);
printf(" to this program!\n");
return 0;
}
解决方法:
gcc -o main userheader.c namest.c