| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1795 人关注过本帖
标题:C语言标准求教
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:3 
C语言标准求教
#include <stdio.h>

int max(int x,int y);

int main( )
{
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("max=%d",c);
    return 0;
}

int max(int x,int y)
{
    int z;
    if(x>y)z=x;
    else z=y;
    return(z);
}
在 VS2005版本的编译平台上,注释掉 函数的声明语句 int max(int x,int y); 后会导致编译出错
Error    2    error C3861: 'max': identifier not found    f:\program_files\microsoft visual studio 8\mywork\ete\source1.cpp    9    
Error    3    error C2365: 'max' : redefinition; previous definition was 'formerly unknown identifier'    f:\program_files\microsoft visual studio 8\mywork\ete\source1.cpp    15    

但是 根据C语言标准,返回值为 int 类型的函数可以不必声明的?难到是 这个 VS2005版本的软件对于标准的支持出现错误?
搜索更多相关主题的帖子: 标准 声明 返回类型 
2008-08-13 19:30
promachus
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-11-12
收藏
得分:0 
答案很简单,你说的标准是ANSI C,可惜,你用的的却又是C++编译器,它的标准是ANSI C++。这方面ANSI C++更严格些,要求在函数调用前必须对所调用的函数做函数原型声明,
2008-08-13 20:42
jimmytom
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-31
收藏
得分:0 
文件名写成source1.cpp还想用C编译,VC是看后缀编译文件的,他认为是C++,而且你说的默认int的东西已经改了。现在只是兼容以前的代码。
2008-08-13 23:36
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 3# jimmytom 的帖子
恩,是的,刚才把文件名 source1.cpp改为 source1.c后,这个错误变成了警告
看来在这方面  ANSI C++确实更严格些
2008-08-14 09:18
快速回复:C语言标准求教
数据加载中...
 
   



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

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