| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 391 人关注过本帖
标题:有几个问题想不清楚
只看楼主 加入收藏
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
结帖率:96.15%
收藏
已结贴  问题点数:20 回复次数:6 
有几个问题想不清楚
在主函数中假如在使用一个函数之前 已经把变量赋值了 为什么调用函数的时候还有用到参数 书上说是传递值给函数使用 但例如I经常用到被调用函数前已经被赋值了 在调用函数时不用用参数把I的传递给函数 也不用在函数中再定义,也可以使用 这到底是为什么呢?
怎么把格式宏做成头文件?  
文件一包含文件2,而在文件2中要用到文件3的内容则在文件1中要:
#include"file3.h"
#include"file2.h"
为什么要这样的顺序呢?是固定这样的,还是有什么原因或逻辑?
搜索更多相关主题的帖子: include include 
2010-08-21 15:44
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
#include"file3.h"就是把file3.h的文件内容,完整复制到这个地方,仅此而已,御坂解释着

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-21 16:09
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
收藏
得分:0 
那为什么不能先#include"file2.h"再 #include"file3.h"? 我是要问为什么要这样的顺序才能文件1包含文件2,而在文件2中要用到文件3的内容

清风拂暮(木)
2010-08-21 16:20
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:5 
这和你文件的具体内容有关,有的时候确实要求一些内容要先于一些内容定义。那就得把那个文件包含在另一个的上面。
2010-08-21 23:48
flyingcat
Rank: 4
来 自:HDU
等 级:业余侠客
威 望:2
帖 子:55
专家分:230
注 册:2010-7-18
收藏
得分:15 
第一个问题,我不知道我有没有理解正确,你指的是,你每次在调用函数前都重新初始化这个变量,然后再调用函数
楼主的意思是:
int a = 3;
int b;
b = fun(a);
可以把a的赋值放到函数中
这样使用的条件是,你的a每次都是固定的,也就是说,你相当于做了一个过程函数
就像你要做一块年糕,你只是让机器自己生产好所有东西,然后机器自己产出年糕
不过某天我心血来潮,我需要使用不一样的糯米,这个时候最好的办法就是,给糯米这原料改一个入口,让我自己倒入糯米而不是机器自己生产这东西
函数的参数就是这样,你传入的参数可能会根据你的需要,改变函数的运行结果,当然如果你要一直做一样的东西,你可以把那个入口给封了,这就是让机器内部生产糯米一样

第二个问题,怎么把宏作头文件,你可以新建一个头文件,然后在里面各种 #define,最后在主CPP中包含这个头文件

第三个问题,头文件包含顺序问题
“在文件2中要用到文件3的内容”
这句可以这样理解:如果我file2要用到file3的东西,然后如果我顺序地包含了
#include "file2.h"
#include "file3.h"
然后编译的时候,编译器先把file2拿来编译,发现有一个函数,这个函数原来你写在file3中,但编译器并不会智能地去搜下面的头文件,它只会觉得,这个函数从来没出现过,然后就会告诉你,有一个未定义的函数出现在file2中
如果你用
#include "file3.h"
#include "file2.h"
那么先编译file3,再编译file2的时候,发现有个函数,这个函数已经在file3中定义过了,那么就没有问题

2010-08-22 00:09
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
收藏
得分:0 
其实第一个问题是这样的 例如:
int a[]={1,2,3};
int b;
b=fun(a)因为函数之前已经对参数a[]赋值了 为什么还要在定义函数是要int fun(int a)这括号里面的东西去掉了 a[]可以在函数中用? 如果可以为什么不直接不用参数?

清风拂暮(木)
2010-08-22 09:04
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
不可以呀,不当参数传过去,fun 就用不了其它函数里定义的东西。
2010-08-22 10:34
快速回复:有几个问题想不清楚
数据加载中...
 
   



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

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