这是设置头文件的正确方法吗?

Is this a proper way of setting up header file?

本文关键字:方法 设置 文件      更新时间:2023-10-16

我正在尝试使用类。还有所有的全局变量等等。这是可行的。但如何在header中实现#define value 100;呢?

#ifndef COUNT_H_
#define COUNT_H_
// Definitions
#define first 100;
#define second 200;
// Class definition
class Account {
    private:
    int difficult(int);
    public:
    int easy (int);
} ;
#endif /* COUNT_H_ */

这是正确的做事方式吗?它有效,但它也很常见吗?

这样声明头文件是可以的。你也可以在Visual studio中使用#pragma once,但我个人不喜欢这样做。

正如Mat所说,对于类型,最好使用常量而不是宏。因为您不必担心意外地重新定义它们

您可以使用定义,例如在您的代码和或#include此文件的文件中可见的类型化全局常量。定义通常用作宏:

#define max(a, b)((a > b) ? a : b)

当使用定义时,预处理器将定义放在使用宏的位置:

int i = max(a, b); // translated as int i = (a > b) ? a : b;

请记住,#define预处理器指令,它几乎与编译时常量相同(当然,除了类型定义),例如:

const int CI = 5;

但是它与运行时常量有很大的不同:

int foo() { return 451; }
const int CJ = foo()

不应该在宏中放置分号的原因(当然,如果没有必要的话)是:

#define first 100;

你已经做了一个任务"first" is "100;"所以这段代码:

int a = first // <- without semicolon