Soa*_*nII 1 c++ c-preprocessor
刚开始编程C++,并坚持下面的代码.在Ubuntu终端上我尝试编译
g++ -o circleArea circleArea.cpp
Run Code Online (Sandbox Code Playgroud)
我收到错误:
circleArea.cpp: In function ‘int main()’:
circleArea.cpp:14:14: error: invalid type argument of unary ‘*’ (have ‘double’)
area = PI * r * r;
^
Run Code Online (Sandbox Code Playgroud)
代码是:
#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;
}
Run Code Online (Sandbox Code Playgroud)
如果将"area = PI*r*r"替换为"area = 3.14159*r*r",我不会收到任何错误.有什么问题,你能帮忙吗?
谢谢
随着#define PI 3.14159;,
area = PI * r * r;
Run Code Online (Sandbox Code Playgroud)
变
area = 3.14159; * r * r;
Run Code Online (Sandbox Code Playgroud)
注意额外;之间3.14159和* r.就像是
area = 3.14159;
* r * r;
Run Code Online (Sandbox Code Playgroud)
因此第一个*被视为一元解除引用运算符.您应该在宏定义的末尾删除分号.
| 归档时间: |
|
| 查看次数: |
2736 次 |
| 最近记录: |