| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2835 人关注过本帖
标题:新手在使用VS2010编译C语言遇到的问题
只看楼主 加入收藏
tt7721
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:107
注 册:2011-8-7
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:3 
新手在使用VS2010编译C语言遇到的问题
谭浩强书上的一段程序#include "stdio.h"
void main()
{
    int max(int x,int y);
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("max=%d\n",c);
}
int max(int x,int y)
{
    int z;
    if (x>y) z=x;
    else z=y;

程序第一行是在调用标准输入输出函数时,文件开头应有的预编译命令。
但是为什么VS2010报错。但是继续生成文件,也可以得到正确结果。
使用它提供的#include "stdafx.h"进行编译就不报错,并且也可以得到正确结果。
小弟刚开始自学C语言。望各位大侠不吝赐教。
搜索更多相关主题的帖子: include C语言 产后妈妈 
2011-08-14 16:10
tt7721
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:107
注 册:2011-8-7
收藏
得分:0 
愁愁愁。。。谁教教我
2011-08-14 18:27
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:1 
程序代码:
#include <stdio.h>

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

int max(int x, int y) {
    return x > y ? x : y;
}

试试这个呢?

My life is brilliant
2011-08-14 19:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
VS2010提供的stdafx.h文件,你可以打开看看,里面就只有两条#include指令,其中第一个就是#include <stdio.h>。也就是说,包含stdafx.h的意思,就是它替你包含了那两个文件,这是嵌套包含关系,与你直接指定是等效的。

第一个,你写的#include "stdio.h",编译器会在你当前程序的项目设定的搜寻目录中查找stdio.h这个文件,但事实上在这样的目录没有这个文件,所以预处理报告错误。但VS2010比较聪明,对这样的常用文件,即使当前项目目录中找不到,它可能自动到VS2010安装的目录中找(估计这跟你安装时的设置有关),因此,最终它还是能运行。事实上,你程序使用的那些库函数,是经常用到的,一般的编译器,怎么也知道到哪里找到这个库函数。如果你使用的函数偏僻一点,可能会找不到。不过这些都是猜测罢了,正确的做法,把那行指令写成#include <stdio.h>就可以了。

授人以渔,不授人以鱼。
2011-08-14 20:01
快速回复:新手在使用VS2010编译C语言遇到的问题
数据加载中...
 
   



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

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