标题:我想知道这个错误信息
取消只看楼主
raozhihao201
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-12-6
结帖率:0
已结贴  问题点数:20 回复次数:1 
我想知道这个错误信息
#include <stdio.h>

void show()
{
    printf("随便弄一下\n");
}

int main()
{
    show();
    return 0;
}


这是我写的一小段代码,能正常运行
但当我把show()函数放在main函数下面的时候,VS2015编译提示

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C2371    “show”: 重定义;不同的基类型    练习2    f:\c\练习2\练习2\练习.c    10   

请问这是为什么?


而当我把void show()放在main下面,并且改成了int show()时却又可以运行成功。编译器提示

1>f:\c\练习2\练习2\练习.c(6): warning C4013: “show”未定义;假设外部返回 int
1>f:\c\练习2\练习2\练习.c(12): warning C4716: “show”: 必须返回一个值
1>  练习2.vcxproj -> F:\C\练习2\Debug\练习2.exe
1>  练习2.vcxproj -> F:\C\练习2\Debug\练习2.pdb (Full PDB)
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========

这又是为什么?
小白实在搞不懂这些,话说,我需要懂这个吗,可是我还是想弄明白,为什么这三种操作会有各自不同的结果
搜索更多相关主题的帖子: 信息 编译器 return include 项目 
2016-12-06 20:25
raozhihao201
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-12-6
得分:0 
回复 2楼 哈斯佛道
原谅我有点蠢,学习的方法不太对,为什么void show()放在int main()的上面能用呢,是不是就是你说的这是表示先声明了

我去了详细再了解下函数的调用,3Q

改成int show()放在main的下面的话那应该怎么改才能没有错误呢???
2016-12-06 20:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-472053-1-1.html




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

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