关于全局变量的问题....在线等!谢谢了!

skylovers 2004-04-22 05:01:00
function.h
--------
#ifndef Function_H
#define Function_H

//全局变量
extern char *fp;

#endif
---------

在unit1和unit2里面#include“function.h”给。fp却会变化。为什么?是因为没有NEW么?
我用了NEW,改成了:
extern char *fp=new char[256];

编译器却出现
[Linker Warning] Public symbol '_fp' defined in both module D:\DOCUMENTS AND SETTINGS\1\MY DOCUMENTS\CODE\UNIT1.OBJ and D:\DOCUMENTS AND SETTINGS\1\MY DOCUMENTS\CODE\UNIT2.OBJ
这样类似的好几条WARNING。为什么?是因为重复定义么?我不是已经用了#ifndef了么?到底这个问题怎么解决啊~~谢谢!
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
youhony 2004-07-07
  • 打赏
  • 举报
回复
肯定是重复定义!
JetKingLau 2004-04-22
  • 打赏
  • 举报
回复
在 a.h 文件中,

extern Integer var;

在 a.cpp 文件中,

Integer var;


在其它需要用到 var 变量的 .cpp 中,

#include "a.h"

然后就可以在该 .cpp 中访问 var 了。
dot99 2004-04-22
  • 打赏
  • 举报
回复
3806642(冰柜头的尸体) 02:01:20
你的.h里面对的,直接exten char *fp;
你的cpp里面用
char *fp;声明
然后在cpp的一个函数里面
给他分配空间

3806642(冰柜头的尸体) 02:01:54
而且在另外的模块里面使用fp的时候,
你要保证已经给他分配了空间
就对了
85790851(abao) 02:02:10
为什么非要用指针阿?
char fp[256]不是 很好的吗?
3806642(冰柜头的尸体) 02:02:14
声明的时候不能写new
12961825(琴声刺骨) 02:02:25
数组似乎不好用啊
3806642(冰柜头的尸体) 02:02:40
可以的,用extern char fp[256];

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧