许多C++代码使用语法约定来标记成员变量.常见的例子包括
其他人尝试在使用成员变量时强制使用this-> member.
根据我的经验,大多数较大的代码库都无法一致地应用这些规则.
在其他语言中,这些惯例远没有那么普遍.我只偶尔在Java或C#代码中看到它.我想我从未在Ruby或Python代码中看到它.因此,似乎有一种趋势,即更多现代语言不对成员变量使用特殊标记.
这个约定今天在C++中是否仍然有用,或者它只是一个时代错误.特别是因为它在库之间使用不一致.没有其他语言显示没有成员前缀可以做到吗?
关于在标识符中使用美元符号,C++标准有何说法Hello$World?他们合法吗?
我从开源库中读取以下代码.令我困惑的是美元符号的使用.任何人都可以在代码中澄清$的含义.非常感谢您的帮助!
__forceinline MutexActive( void ) : $lock(LOCK_IS_FREE) {}
void lock ( void );
__forceinline void unlock( void ) {
__memory_barrier(); // compiler must not schedule loads and stores around this point
$lock = LOCK_IS_FREE;
}
protected:
enum ${ LOCK_IS_FREE = 0, LOCK_IS_TAKEN = 1 };
Atomic $lock;
Run Code Online (Sandbox Code Playgroud) 为什么在 C++/Java 和类似 PHP 中以美元符号开头的变量名是不好的?
编辑:有任何风险吗?
我很好奇是否有办法使用@,$或?在C函数或变量名称中.我知道链接器允许它们(因为C++名称错误).
是否有任何类型的转义码可以允许这个(我不在乎它看起来多么丑陋)?或者,在标准C中,这完全不可能吗?
c++ ×4
c ×1
coding-style ×1
identifier ×1
java ×1
locking ×1
symbols ×1
syntax ×1
variables ×1