求助啊!关于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;
}