【发布时间】:2020-06-28 03:00:59
【问题描述】:
1 在以下示例中似乎没有必要(并且可能具有误导性),但在用于检查 #ifdefs 时,我已经多次看到这一点:
#ifndef __NEWLIB_H__
#define __NEWLIB_H__ 1
使用上述内容与普通的#define __NEWLIB_H__ 有区别或原因吗?
【问题讨论】:
-
这并没有解决问题,但是包含两个连续下划线 (
__NEWLIB_H__) 的名称和以下划线后跟一个大写字母的名称保留供实现使用。不要在你的代码中使用它们。 -
@PeteBecker 是的,这段代码实际上来自(或“是”)实现。
-
@abc 要清楚,Pete 所说的“实现”是指 C++ 语言的实现。不实现您的功能(除非您正在编写标准库)。
-
@eerorika Newlib 是嵌入式目标标准库的实现。该文件来自 GNU Arm Embedded 工具链。
-
@abc 啊。那么它确实是允许的,而且实际上有必要使用一个保留的标识符:)
标签: c++ c include c-preprocessor