| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1539 人关注过本帖
标题:VC6.0中 ,我这样用#include为什么不对,应该怎么用??
只看楼主 加入收藏
suishuhao
Rank: 2
等 级:论坛游民
帖 子:89
专家分:10
注 册:2012-9-25
结帖率:61.9%
收藏
 问题点数:0 回复次数:7 
VC6.0中 ,我这样用#include为什么不对,应该怎么用??
按照谭浩强<C程序设计》第三版  212页的讲解#include的内容,
我建立了一个源文件file1.cpp并保存, 内容如下:
int max(int x,int y)
{int z;
if (x>y)
z=x;
else
z=y;
return(z);
}

然后新建一个源文件file2.cpp,头文件处用#include"file1.c"将file1.cpp包含进来,内容如下:

#include<stdio.h>
#include"file1.c"
void main()
{
    int max(int x,int y);
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("%d",c);
}

为什么编译不通过啊?????
那应该怎么样用#include将另一个文件中的内容包含进来啊??

我以前问过的,可是人家答的不详细:
https://bbs.bccn.net/thread-382212-1-1.html







[ 本帖最后由 suishuhao 于 2013-2-15 18:10 编辑 ]
搜索更多相关主题的帖子: max C程序设计 include return 
2013-02-15 18:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
说了你乱用,不认真问,又发新帖。

两个模块,你的file2.cpp是主模块,需要包含一个file1头,写一个file1.h,把int max(int x,int y);这一行写在这个文件中(把原来的这行代码删掉),然后在file2.cpp前面像往常一样#include "file1.h",项目中有3个文件:file2.cpp、file1.h、file1.cpp。这样build这个项目就可以了。

授人以渔,不授人以鱼。
2013-02-15 18:09
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:0 
回复 楼主 suishuhao
#include <stdio.h>
//////////////////////////
//我是这样修改的,使用#include 的时候一般没见过引入.C文件的,至少我没遇见过
//////使用这个使用这个函数就可以
///////////一般都是把函数声明放在一个.H文件中,然后引入这个#include "    .h"就可以了
extern int max(int,int);
void main()
{
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("%d",c);
}
收到的鲜花
  • suishuhao2013-02-15 18:39 送鲜花  3朵   附言:好文章
2013-02-15 18:17
suishuhao
Rank: 2
等 级:论坛游民
帖 子:89
专家分:10
注 册:2012-9-25
收藏
得分:0 
以下是引用TonyDeng在2013-2-15 18:09:42的发言:

说了你乱用,不认真问,又发新帖。

两个模块,你的file2.cpp是主模块,需要包含一个file1头,写一个file1.h,把int max(int x,int y);这一行写在这个文件中(把原来的这行代码删掉),然后在file2.cpp前面像往常一样#include "file1.h",项目中有3个文件:file2.cpp、file1.h、file1.cpp。这样build这个项目就可以了。
哦,大哥您好,请问:“(把原来的这行代码删掉)”,说的是删除哪个文件的哪行代码呀,谢谢。
2013-02-15 18:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
#include<stdio.h>
#include"file1.c"
void main()
{
    int max(int x,int y);
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("%d",c);
}

红色那行删掉。函数原型不应该写在函数体中的(老谭的教材这样教,但那是老式的语法,现代语法不推荐这种格式)。实质上,这个函数原型应该写在void main()前面,而#include "file1.h"的作用,就是把那个原型引入,跟普通的写法一样。#include "stdio.h"其实也是把一大堆函数原型引进来。注意:.h头文件只引函数原型和变量声明,不引具体的定义代码,亦即不要把.cpp用#include引入,否则等于废除模块的作用,使多个.cpp文件实质上成为同一个.cpp文件,完全没有意义。
收到的鲜花
  • suishuhao2013-02-15 18:38 送鲜花  3朵   附言:好文章

授人以渔,不授人以鱼。
2013-02-15 18:23
suishuhao
Rank: 2
等 级:论坛游民
帖 子:89
专家分:10
注 册:2012-9-25
收藏
得分:0 
以下是引用TonyDeng在2013-2-15 18:23:32的发言:

#include
#include"file1.c"
void main()
{
    int max(int x,int y);
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("%d",c);
}

红色那行删掉。函数原型不应该写在函数体中的(老谭的教材这样教,但那是老式的语法,现代语法不推荐这种格式)。实质上,这个函数原型应该写在void main()前面,而#include "file1.h"的作用,就是把那个原型引入,跟普通的写法一样。#include "stdio.h"其实也是把一大堆函数原型引进来。注意:.h头文件只引函数原型和变量声明,不引具体的定义代码,亦即不要把.cpp用#include引入,否则等于废除模块的作用,使多个.cpp文件实质上成为同一个.cpp文件,完全没有意义。
大哥你的方法很正确!但是还有另外一种方法也是可行的,方法就是:
file1.c是主文件,内容如下:
#include<stdio.h>
#include"file2.h"
void main()
{
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("%d",c);
}
新建一个头文件file2.h,头文件的内容如下:
int max(int x,int y)
{int z;
if (x>y)
z=x;
else
z=y;
return(z);
}
这样,1个工程里有1个主文件1个头文件,编译连接运行也能成功。
这样做,头文件里是一个完整的函数。

[ 本帖最后由 suishuhao 于 2013-2-15 20:09 编辑 ]
2013-02-15 19:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
头文件的用途不是用来放代码的,不要学坏东西。

授人以渔,不授人以鱼。
2013-02-15 20:53
cybio
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-1-16
收藏
得分:0 
我觉得你签名的例子举得不太好啊
2013-02-15 21:38
快速回复:VC6.0中 ,我这样用#include为什么不对,应该怎么用??
数据加载中...
 
   



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

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