#define 和一元‘*’的无效类型参数(有‘double’)
#define and invalid type argument of unary ‘*’ (have ‘double’)
刚开始写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;
}
如果将行 "area = PI * r * r" 替换为 "area = 3.14159 * r * r",我不会收到任何错误。有什么问题,你能帮忙吗?
谢谢
和#define PI 3.14159;
,
area = PI * r * r;
变成
area = 3.14159; * r * r;
注意 3.14159
和 * r
之间的额外 ;
。就像
area = 3.14159;
* r * r;
因此第一个 *
被视为一元取消引用运算符。
您应该删除宏定义末尾的分号。
刚开始写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;
}
如果将行 "area = PI * r * r" 替换为 "area = 3.14159 * r * r",我不会收到任何错误。有什么问题,你能帮忙吗?
谢谢
和#define PI 3.14159;
,
area = PI * r * r;
变成
area = 3.14159; * r * r;
注意 3.14159
和 * r
之间的额外 ;
。就像
area = 3.14159;
* r * r;
因此第一个 *
被视为一元取消引用运算符。
您应该删除宏定义末尾的分号。