头文件、宏和内联函数c++; 我在做一个涉及C++头文件、宏和内联函数的练习时遇到了问题。 要求如下 创建名为“Max.h”的头文件 Max.h包含一个名为“mMax”的宏。“mMax”最多返回2个整数 Max.h包含一个名为“fMax”的内联函数。“fMax”返回最多2个整数 在main.cpp中调用fMax和mMax

头文件、宏和内联函数c++; 我在做一个涉及C++头文件、宏和内联函数的练习时遇到了问题。 要求如下 创建名为“Max.h”的头文件 Max.h包含一个名为“mMax”的宏。“mMax”最多返回2个整数 Max.h包含一个名为“fMax”的内联函数。“fMax”返回最多2个整数 在main.cpp中调用fMax和mMax,c++,C++,这是我的密码。它不起作用。请帮忙 最大小时 main.cpp #include <iostream> #include "Max.h" using namespace std; int main() { cout << fMax(1, 2) << '\n'; cout << mMax(1, 2) << '\n'; return 0; } #包括 #包括“最大小时” 使用名称空间std;

这是我的密码。它不起作用。请帮忙

最大小时

main.cpp

#include <iostream>
#include "Max.h"

using namespace std;

int main()
{
    cout << fMax(1, 2) << '\n';
    cout << mMax(1, 2) << '\n';
    return 0;
}
#包括
#包括“最大小时”
使用名称空间std;
int main()
{

cout你的头球防守向后。你写道:

#ifdef MAX_H
#define MAX_H

// Header body

#endif
这意味着只有在已经定义了
MAX_H
的情况下,才会计算表头主体

您实际需要的是测试
MAX_H
是否未定义:

总结如下:

  • #ifdef
    是“if defined”的缩写
  • #ifndef
    是“如果未定义”的缩写
注释中还指出,您的宏包含一个游离分号。应删除该分号:

#define mMax(x, y) ((x > y) ? x : y)
由于宏几乎可以用任何东西代替
x
y
,因此将它们放在括号中也是相当标准的做法:

#define mMax(x, y) ((x) > (y) ? (x) : (y))
<代码> >定义Max(x,y)((x> y)x:y);/>代码。在结尾处删除分号。<代码>定义Max(x,y)((x> y)x:y)< /Cord>这是我的代码。它不工作。不是一个合适的问题描述。具体地说,它不起作用吗?使用一个好的C++编译器,例如警告和调试信息(所以<代码> G++WALL-WOTU-G < /COD>)一个好的调试器(例如…)当然要阅读他们的文档,阅读一篇好文章,然后看看。StackOverflow不是一个“做我的作业”网站。请参阅Try
#define mMax(x,y)((x>y)?x:y)
或完整的代码
#define mMax(x, y) ((x > y) ? x : y)
#define mMax(x, y) ((x) > (y) ? (x) : (y))