刚开始编程C ++,并坚持下面的代码。在Ubuntu终端上,我尝试使用
进行编译g++ -o circleArea circleArea.cpp
我收到错误:
circleArea.cpp: In function ‘int main()’:
circleArea.cpp:14:14: error: invalid type argument of unary ‘*’ (have ‘double’)
area = PI * r * r;
^
代码是:
#include <iostream>
using namespace std;
#define PI 3.14159;
#define newLine "\n";
int main(void)
{
double r;
double area;
cout << "Please enter the radius : ";
cin >> r;
area = PI * r * r;
cout << "Area is " << area << " unit squares" << newLine;
}
如果更换线路&#34; area = PI * r * r&#34;与&#34; area = 3.14159 * r * r&#34;我没有收到任何错误。有什么问题,你能帮忙吗?
谢谢
答案 0 :(得分:7)
使用#define PI 3.14159;
,
area = PI * r * r;
变为
area = 3.14159; * r * r;
请注意;
和3.14159
之间的额外* r
。它就像
area = 3.14159;
* r * r;
因此第一个*
被视为一元解除引用运算符。
您应该在宏定义的末尾删除分号。