当前位置:  技术问答>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

#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都定义了同一个函数。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.awt类radialgradientpaint的类成员方法: getradius定义及介绍
  • 请问可以用宏定义定义一个二维数组吗?
  • java命名空间javax.xml.stream类xmlinputfactory成员方法: seteventallocator定义参考
  • 想修改路径定义,想找到在哪里定义的,应该怎么办?
  • java命名空间java.text接口attributedcharacteriterator的类成员方法: getallattributekeys定义及介绍
  • php定义数组和使用示例(php数组的定义方法)
  • java命名空间java.beans接口propertyeditor的类成员方法: supportscustomeditor定义及介绍
  • 上次问题解决了,原来是extern被重定义了。。。天阿,关键字也可以被重定义。。。。。欢迎接分
  • java命名空间javax.swing类jtextarea的类成员方法: getcolumnwidth定义及介绍
  • 如何定义一个可变参数的自定义函数
  • java命名空间javax.swing类jtextfield的类成员方法: getcolumnwidth定义及介绍
  • 下面的变量我都下了定义,为什么还出现没定义的信息
  • java命名空间javax.swing类actionmap的类成员方法: allkeys定义及介绍
  • oracle异常(预定义异常,自定义异常)应用介绍
  • java命名空间javax.swing类inputmap的类成员方法: allkeys定义及介绍
  • 为什么我在头文件time.h里找不到time_t的定义呢?只有这个定义typedef __time_t time_t;
  • java命名空间javax.rmi.corba接口valuehandler的类成员方法: iscustommarshaled定义及介绍
  • 函数有定义怎么提示没有低能定义的错误呢?
  • java命名空间javax.swing类jcomponent的类成员方法: resetkeyboardactions定义及介绍
  • android自定义控件和自定义回调函数步骤示例
  • java命名空间java.beans接口customizer的类成员方法: setobject定义及介绍
  • 自定义公共类的装载,包的定义


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,