首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

啊关于const与define,编译出很多异常

2012-02-29 
求助啊!关于const与define,编译出很多错误#includeiostream#define PI1 3.14159#define R1 a+bconst flo

求助啊!关于const与define,编译出很多错误
#include<iostream>
#define PI1 3.14159
#define R1 a+b
const float PI2=3.14159;
const R2=a+b;
int main()
{
int a=1,b=2;
cout<<PI1*R1*R1<<endl;
cout<<PI2*R2*R2<<endl;
return 0;
}

[解决办法]
const R2=a+b;
常量初始化必须用常量,也必须指定类型.和#define不同,#define只是替换字符串
[解决办法]
const R2=a+b;错误
const是一个C语言的关键字,它限定一个变量不允许秒被改变。const变量 & 常量. 你变量没类型, 也没跟常量
[解决办法]
const R2=a+b;这种写法明显大错误,
1 没有指定常量R2的类型
2 a和b是什么东东,编译器不知道的
[解决办法]
不仅如此,全局对象先于主函数执行分配内存空间,即使加上对象类型这里的初始化也是非法的。必须告诉编译器a、b是什么,值是多少

#include<iostream>
using namespace std;

#define PI1 3.14159
#define R1 a+b

const float PI2=(float)3.14159;
int a=1,b=2;
const int R2=a+b;

int main()
{
cout<<PI1*R1*R1<<endl;
cout<<PI2*R2*R2<<endl;
return 0;
}

热点排行