当前位置: 技术问答>linux和unix
多次定义???
来源: 互联网 发布时间:2017-02-22
本文导语: //a.h #ifndef A_H #define A_H #include #include #define LEN (10) struct Student { char *name; int age; }; void print_str(char *str) { printf("%sn", str); return ; } void print_int(int val); #endif //a.c #include "a.h" void print_int(int val) { print...
//a.h
//a.c
//main.c
后在gcc中运行
gcc -c main.c
gcc -c a.c
gcc -o main main.o a.o
结果显示:
a.o: In function `print_str':
a.c:(.text+0x0): multiple definition of `print_str'
main.o:main.c:(.text+0x0): first defined here
collect2: ld returned 1 exit status
为什么会多次定义????
#ifndef A_H
#define A_H
#include
#include
#define LEN (10)
struct Student
{
char *name;
int age;
};
void print_str(char *str)
{
printf("%sn", str);
return ;
}
void print_int(int val);
#endif
//a.c
#include "a.h"
void print_int(int val)
{
printf("value is : %dn", val);
return ;
}
//main.c
#include
#include
#include
#include "a.h"
int main()
{
char *str = "hello";
struct Student st1;
st1.name = "L";
st1.age = 18;
print_str(str);
print_str(st1.name);
print_int(st1.age);
printf("main end!n");
return 0;
}
后在gcc中运行
gcc -c main.c
gcc -c a.c
gcc -o main main.o a.o
结果显示:
a.o: In function `print_str':
a.c:(.text+0x0): multiple definition of `print_str'
main.o:main.c:(.text+0x0): first defined here
collect2: ld returned 1 exit status
为什么会多次定义????
|
void print_str(char *str)
{
printf("%sn", str);
return ;
}
放.c里,否则main.c和a.c都定义了同一个函数。
{
printf("%sn", str);
return ;
}
放.c里,否则main.c和a.c都定义了同一个函数。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。