| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1980 人关注过本帖
标题:为什么自己对应的printf不会和标准库stdio.h中的printf发生冲突呢?
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:6 
为什么自己对应的printf不会和标准库stdio.h中的printf发生冲突呢?
// 自己实现printf:
typedef char* va_list;

#include <stdarg.h>
#include <stdio.h>

int printf(char* format,...)
{
va_list ap;
va_start(ap, format);
int n = vprintf(format,ap);
va_end(ap);
return n;
}

int main()
{
    printf("sd\n");
    return 0;
}
搜索更多相关主题的帖子: printf stdio 
2008-03-11 14:28
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
会冲突啊,如下:
D:\My Documents\bbs\c_test>type my_printf.c
#include <stdarg.h>
#include <stdio.h>
typedef char* va_list;
int printf(char* format,...)
{
va_list ap;
va_start(ap, format);
int n = vprintf(format,ap);
va_end(ap);
return n;
}

int main()
{
    printf("sd\n");
    return 0;
}

D:\My Documents\bbs\c_test>gcc my_printf.c
my_printf.c:5: error: conflicting types for 'printf'
my_printf.c:5: error: conflicting types for 'printf'

坚决不跟用TC的人打交道!
2008-03-11 14:49
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
不冲突会不会是因为include查找路径的顺序造成的呢????
2008-03-11 14:54
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
不冲突可能是因为链接目标文件时按某个顺序查找,找到后就返回了,猜测查找顺序是先在用户源代码生成的目标文件中查找,找不到就去C运行时库中找。

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-03-11 16:44
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 2# 的帖子
你使用的是什么编译器,怎么会冲突呢??
2008-03-14 00:18
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
收藏
得分:0 
我这里也发生冲突
$ cc pf.c
pf.c:7: error: conflicting types for 'printf'
pf.c:7: error: conflicting types for 'printf'

环境:freebsd  cc编译

without further ado, let’s get started
2008-03-14 11:20
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
一般都是冲突的..因为编译器不知道你调用了那个函数...

学习需要安静。。海盗要重新来过。。
2008-03-14 12:14
快速回复:为什么自己对应的printf不会和标准库stdio.h中的printf发生冲突呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.071901 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved