| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1503 人关注过本帖
标题:[求助]这段程序编译有错,是什么原因呢?
只看楼主 加入收藏
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 

函数可以啊

[CODE]#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
int OK(void);
cout<<OK()<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

int OK(void)
{
return 1;
}[/CODE]

不知道我的这样算不算是声明了.我知道有一个关键字是声明用的extern


/images/2011/147787/2011051411021524.jpg" border="0" />
2007-05-09 11:13
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

你把这个去掉试试:int OK(void);

#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
//int OK(void); 这就是声明
cout<<OK()<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

int OK(void)
{
return 1;
}


雁无留踪之意,水无取影之心
2007-05-09 11:19
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 

这个知道.有就是有些不解extern


/images/2011/147787/2011051411021524.jpg" border="0" />
2007-05-09 11:26
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
extern就是告诉编译器,我声明的变量已经在后面或者在与其连接的源文件中定义了,这个变量一定要是全局变量

雁无留踪之意,水无取影之心
2007-05-09 11:37
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
这个有什么用.
能否给个简单而又可以体现它作用的例子看看否.
谢谢!

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-05-09 11:39
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

在一个工程中建立两个文件

要FILE1中写代码:

int a[10000];
int main()
{
double tt(int);
int c;
printf("%lf",tt(c));
}

在FILE2中写代码:

extern a; //可以使用文件外的变量A,同时不用浪费空间.
double(int c)
{
int i;
double y;
for(i=0;i<10000;i++)
y*=a[i];
return y;
}

随便写的,不知道有没有问题,我要下了,吃饭去


雁无留踪之意,水无取影之心
2007-05-09 11:51
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
噢..明白了..这是不是叫共享内存.

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-05-09 12:38
neverDie
Rank: 1
等 级:新手上路
威 望:1
帖 子:123
专家分:0
注 册:2007-5-5
收藏
得分:0 
结构体也可以在后面定义,不过与函数一样,事先声明。

extern关键字用来声明变量而不是定义,这样可以使变量在不同的文件中使用。
声明允许多次,但定义只能一次。

2007-05-09 12:59
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 

是不是结构体在后面定义就得要用extern去声明.好的..我这就去试试.


/images/2011/147787/2011051411021524.jpg" border="0" />
2007-05-09 13:03
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用ioriliao在2007-5-9 13:03:35的发言:

是不是结构体在后面定义就得要用extern去声明.好的..我这就去试试.

不是,声明直接

struct Pair;


extern的用法就是上面那个例子里那样!


Fight  to win  or  die...
2007-05-09 13:37
快速回复:[求助]这段程序编译有错,是什么原因呢?
数据加载中...
 
   



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

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