| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 711 人关注过本帖
标题:不懂这三段代码是啥意思……
只看楼主 加入收藏
erikshe2003
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
不懂这三段代码是啥意思……
第一段:cal.c
int cal( int n )
{
    if( 1 == n)
    {
        return 1;
    }
    else
    {
        return n * cal( n-1 );
    }
}
第二段:cal.h
#ifndef CAL_H_
#define CAL_H_
  int cal(int n);
#endif /* CAL_H_ */
第三段:main.c
#include <stdio.h>
#include"cal.h"
int main()
{
    int n=5;
    n=cal(n);
    printf("%d\n", n);
    return  0;
}
有哪个好心人来回答下?我是初学者,初学者……
对了,好像根据这三段代码可以做一个什么加减乘除的东东……

[ 本帖最后由 erikshe2003 于 2010-5-25 15:44 编辑 ]
搜索更多相关主题的帖子: 代码 
2010-05-25 15:40
erikshe2003
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-25
收藏
得分:0 
自己顶~~~~~~~~~~~~~~~~
2010-05-25 15:40
erikshe2003
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-25
收藏
得分:0 
没人吗
2010-05-25 16:52
LUNNAN
Rank: 2
等 级:论坛游民
帖 子:30
专家分:44
注 册:2010-5-23
收藏
得分:3 
我想lz理解错了吧!第一个文件是cal函数的定义,用于求阶乘,第二个文件是一个头文件,在这其中声明了cal函数!第三个文件就是主函数文件了!
2010-05-25 17:09
fanfan320
Rank: 3Rank: 3
来 自:运城
等 级:论坛游侠
帖 子:82
专家分:104
注 册:2010-5-12
收藏
得分:3 
第一段是子函数cal ,用函数嵌套求n!,第2个是文件的头文件,用于声明函数的,第3个就是主函数了。程序执行是从主函数开始,中间调用子函数,最后从主函数结束.
不知楼主明白了没?
2010-05-25 17:44
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:3 
4.5楼解释得不错,学习一下,尤其第二个函数,好像是什么预处理。好想能求出5的阶乘吧!

下面的是粘过来的:

1. C++中的头文件
1.1 标准库中的头文件
C++标准库中的一切内容都被放在名字空间std中(名字空间中的内容对外是不可见的),但是带来了一个新问题,无数现有的C++代码都依赖于使用了多年的伪标准库中的功能,如声明在<iostream.h>等头文件中的功能,使用std包装标准库导致现有代码的不可用,为了兼容这种情况,标准委员会为包装了std的那部分标准库创建了新的头文件,新的头文件的文件名与旧的一样,只是没有.h这个后缀,如<iostream.h>就变成了<iostream>。对于C头文件,采用同样的方法,但还在每个头文件名前加了字符c,如<string.h>就变成了<cstring>,<stdio.h>变成了<cstdio>。最好使用新的文件头,使用新的文件头的C++程序,需要使用using namespace std或者using namespace std::指定的类名,等方法来使需要的类对于我们的代码可视。
1.2 自定义的头文件
为了防止头文件被重复引用,最好使用预处理定义,如下所示:
#ifndef MYHEAD_H
#define MYHEAD_H
……//头文件中的内容
#endif
1.3 预处理相关知识
(1) #ifdef :判断一个预处理常量是否被定义,如#infef DEGUG
(2) #ifndef:判断一个预处理常量是否没被定义
(3) #define:定义一个预处理常量,如#define DEBUG
(4) #include
(5) #endif
(6) 对预处理常量的定义还可以在编译时进行,如CC –D DEBUG main.c
(7) 编译C++程序时,编译器自动定义了一个预处理器名字__cplusplus(注意前面有两个下划线),因此可以根据这个来判断该程序是否是C++程序,以便有条件地包含一些代码,如:
#ifndef MYHEAD_H
#define MYHEAD_H
#ifdef __cplusplus
extern "C" {
#endif
int DMpostprocessing();
#ifdef  __cplusplus
}
#endif
#endif
(8) 在编译C程序时,编译器会自动定义预处理常量__STDC__。当然__cplusplus和__STDC__ 不会同时被定义;
(9) 另外两个比较有用的预定义常量是__LINE__(记录文件已被编译的行数)和__FILE__(正在被编译的文件名称)。使用如下:
if ( I==0 ) cerr<< “error:”<< __FILE__<<” line:”<<__LINE__<<”I must be ..”
(10) __DATE__:编译日期
(11) __TIME__:编译时间
(12) C库头文件的C++名字总是以字母C开头,后面去掉.h,如assert.h在C++中为cassert;
(13) 在C++中头文件后缀各不相同,因此标准的C++头文件没有指定后缀 。


[ 本帖最后由 gaoce227 于 2010-5-26 15:28 编辑 ]
2010-05-26 15:22
刚开始吧
该用户已被删除
收藏
得分:3 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-26 23:09
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:3 
楼上的几位说的对。
顶!

南国利剑
2010-05-28 13:32
xin310923
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:203
专家分:325
注 册:2009-12-22
收藏
得分:3 
我也顶一下
2010-05-28 17:25
快速回复:不懂这三段代码是啥意思……
数据加载中...
 
   



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

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