在C++中通常用某种前缀命名成员变量来表示它们是成员变量而不是局部变量或参数.如果你来自MFC背景,你可能会使用m_foo.我myFoo偶尔也见过.
C#(或者可能只是.NET)似乎建议只使用下划线,如_foo.这是否允许C++标准?
根据这个问题,似乎有一些灵活性可以写出 -
#ifndef _HEADER_H
Run Code Online (Sandbox Code Playgroud)
要么:
#ifndef __HEADER___H__
Run Code Online (Sandbox Code Playgroud)
它不是一成不变的.
但我不明白为什么我们首先使用下划线.为什么我不能写:
#ifndef header.h
Run Code Online (Sandbox Code Playgroud)
这有什么问题?为什么我们在任何地方放置下划线并将所有东西都资本化?预处理器用下划线做什么?