在 #define 中使用"\"的含义
the meaning of '' using in #define
本文关键字:#define 更新时间:2023-10-16
我想知道代码"\"的含义。我以前看过一些解释,但我忘了,谁能告诉我?
#include "stdafx.h"
#include <fstream>
using namespace std;
ofstream out("order.out");
#define CLASS(ID) class ID {
public:
ID(int) { out<<#ID " constructorn;}
~ID() { out<< #ID "destructorn";}
};
每行末尾的反斜杠()表示下一行是当前行的延续。
所以
#define class(ID) class ID
与相同
#define class(ID) class
ID
''
在#define
中的含义。
允许您编写多行宏。CCD_ 5被附加在每一行的末尾。
您可以在上获得更多信息http://www.cs.cornell.edu/andru/mlm/syntax.html
它使编译器将当前行和之后的行视为同一行。
对于定义来说,这很重要,因为预处理器只考虑当前行上的内容。
例如:
#define CLASS(ID) class ID {
public:
ID(int) { out<<#ID " constructorn;}
~ID() { out<< #ID "destructorn";}
};
CLASS(foo)
将扩展到
class foo {
而
#define CLASS(ID) class ID {
public:
ID(int) { out<<#ID " constructorn;}
~ID() { out<< #ID "destructorn";}
};
CLASS(foo)
将扩展到
class foo {
public:
foo(int) { out<<"foo" " constructorn;}
~foo() { out<<"foo" "destructorn";}
};
它是一个反斜杠。它主要用于一行代码太大,为了可读性和文档性需要拆分的情况。它将一行连接到下一行,也可以链接多行。
它允许您通过将以反斜杠结尾的行与下一行串联来定义多行#。
相关文章:
- 与C代码相比,为什么C++代码不需要"#define _POSIX_C_SOURCE 200809L"?
- 以下 C++ 代码用于 -> "#define idiv(a, b) (((a) + (b) / 2) / (b))" 是什么?
- 如何以静态代码分析友好的方式使用 #define 防护?
- C++相当于整数的 #define
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 在C++中使用变量而不是"#define"来指定数组大小是不是一种糟糕的做法?(C错误:在文件范围内
- 我们可以用 C 语言嵌套 #define 和 #if 吗?
- 如何将旧的 C 样式 #define 映射与现代C++进行调整?
- 找不到 #define 的函数定义
- "#define X X"是什么意思?
- 使用 constexpr 替换 #define 和 #ifdef 进行条件编译
- 野牛/flex:计算器将双精度值解释为整数,所以我添加了 YYSTYPE 双精度 #define 但我有多个编译错误
- 如何解决C++中声纳库贝静态代码分析错误"Explicitly define the missing copy constructor, move constructor .."
- c中 #define 的不足
- 使用 [#define & #ifdef] 跨文件激活代码块
- 如何避免#define语法的变量重新声明
- 使用 GCC 对 C 文件进行部分预处理(不删除 "define" 指令)
- 使用 #define 声明函数
- #define 宏中的括号失败
- 初始化在类类型 #define 中定义的非静态成员数组,不带默认 ctor