我开始学习c++,当我试图定制一个宏时,它会在控制台中打印值,但当我试图用另一个字符串文本定制宏时,会引发一个错误。
#include <iostream>
using namespace std;
#define PI 3.14;
int main()
{
cout<<"Value of PI: " << PI;
cout<<"Value of PI: " << PI << endl;
}
主函数中的第一行运行良好,但第二行在编译时会引发错误。
错误:
错误:在'<lt;'代币cout<lt"PI的值:"<lt;PI<lt;endl;
我做错了什么?
问题是宏的末尾有一个分号。
这条线路
cout<<"Value of PI: " << PI << endl;
然后变为:
cout<<"Value of PI: " << 3.14; << endl;
// ^
因此,只需删除宏末尾的;
:
#define PI 3.14
您也可以使用适当的常量而不是宏(通常首选(:
inline constexpr double PI = 3.14;
或者使用在C++20:中添加的数学常数库部分
#include <numbers>
int main() {
std::cout<<"Value of PI: " << std::numbers::pi << 'n';
}