| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 650 人关注过本帖
标题:C++白痴~在线等大虾回贴~谢了先
只看楼主 加入收藏
woodmen
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-12-24
收藏
 问题点数:0 回复次数:6 
C++白痴~在线等大虾回贴~谢了先

#include <iostream.h>
#ifndef _Stack_Array_ //?????????????
#define _Stack_Array_
#define ElemType int
//typedef char ElemType; //声明顺序存储结构栈的数据类型
struct StackSq{
ElemType *stack; //保存存栈元素的数组指针
int top;//栈顶元素的下标位置
int MaxSize;//栈的最大容量
};
#endif //????????????????????

这是一个C++的头文件里的一部分,我想问下高手们
#ifndef _Stack_Array_

#endif的作用
中间 #define的用途是什么
看书本说#ifndef和#endif是避免头文件重名?我理解不了怎么重名,盼哪位大虾与实例指导

搜索更多相关主题的帖子: 在线 
2005-12-24 16:37
woodmen
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-12-24
收藏
得分:0 

等了N久怎么就没见人浮上来帮下我

2005-12-24 16:45
woodmen
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-12-24
收藏
得分:0 
初学C++,看了一些基础教程;

但对于有一些基本的东西还是不太了解,所以想请前辈们指点指点。

这个疑问是关于define的。

我知道在头文件的开头用#ifndef 语句可以起到避免头文件被重复引用的可能。

这也是C++高质量编程里面提到的必须要做的事情。

但是,我不太明白#ifndef的语法是怎么样的。

根据一些代码,我有自己的理解:
1.#ifndef 后面跟的文件名,是否必须为大写,是否要将.替换为_
2.紧跟着#ifndef后面要加#define 并且文件名也要用大写,并且将.替换为_
3.#ifndef 在头文件后面必须要加#endif.

不知是否正确?

找了一些资料没找到对#ifndef的介绍,希望在此得到大家的帮助!!
2005-12-24 17:00
RL720
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2005-11-6
收藏
得分:0 
#ifndef XXX
//.....................
#endif

是预处理的条件编译指令
如果XXX没有被定义过,就编译下面的程序。。。
XXX就是标识符,符合C++的标识符构成规则
不必用文件名,只要与别的不相同就行,只是用文件名和大写是一种习惯(或者说规范)吧



常用的有五种

1
#if 常量表达式
程序段 //常量表达式非零时编译本段
#endif

2
#if 常量表达式
程序段1 //常量表达式非零时编译本段
#else
程序段2 //常量表达式为零时编译本段

3
#if 常量表达式1
程序段1 //常量表达式1非零时编译本段
#elif 常量表达式2
程序段2 //常量表达式1为零、常量表达式2非零时编译本段
//。。。。。。。。。。。。。。。。。。。
#elif 常量表达式n
程序段 n
#else
程序段 n+1
#endif

4
#ifdef 标识符 //如果标识符经 #defined定义过,且没被undef删除,编译程序段1
程序段1
#else //没有程序段2可省略,下同
程序段2
#endif

5#ifndef 标识符 //如果标识符没有定义过,编译程序段1
程序段1
#else
程序段2
#endif

2005-12-24 20:00
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 
预处理的条件编译指令

----------------------
平时写的程序短,所以一般不会碰到问题,但是 写的头文件多了
有时 几个头文件中都包含 相同的文件,为了避免重复,所以要
这样写

2005-12-25 08:38
woodmen
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-12-24
收藏
得分:0 

还有一个问题就是:
我在MyDiy.h这个头文件里面,是不是必须这样写
#ifndef MYDIY 如果MYDIY没有被定义
#define MYDIY 定义MYDIY

必须写MYDIY吗?

我写别的可以吗?
#ifndef anyString
#define anyString

2005-12-25 14:11
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 
可以~~
只是习惯 用大写

2005-12-25 16:42
快速回复:C++白痴~在线等大虾回贴~谢了先
数据加载中...
 
   



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

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