我正在尝试使用课程。因为我也去了所有的全局变量等等。这很有效。但是如何在标题中实现#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_ */
这是一种正确的做事方式吗?它有效,但它也很常见吗?
答案 0 :(得分:1)
声明这样的头文件很好。您也可以在Visual Studio中使用#pragma once
,但我个人不愿意这样做。
正如Mat所说,最好在宏上使用常量来表示类型。因为你不必担心意外重新定义它们。
答案 1 :(得分:0)
您可以在代码和/或#include
此文件的文件中使用类似全局常量等定义。定义通常用作宏:
#define max(a, b)((a > b) ? a : b)
使用define时,预处理器将定义放在使用宏的位置:
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
有效