我开始学习来自Java和Java背景的C语言。 Javascript和我想知道是否存在技术原因导致以下被视为不良做法,或者它是否只是语言演变的方式?
#define bool char
#define false 0
#define true 1
#define null NULL
我看到的任何地方我总是看到已定义的变量(如果这是正确的单词)是大写的,我想知道这个约定是否有一个很好的技术原因?我确定已经多次询问过,但我似乎无法找到答案。
答案 0 :(得分:6)
他们称之为宏。是的,按照惯例,他们需要ALL_UPPERCASE以避免与普通标识符发生冲突,因为他们只是文本替换而不遵循该语言的正常范围规则。
请考虑以下事项:
<span am-time-ago="story.created_utc | amFromUnix"></span>
为了避免这样的惊喜(代码不是它看起来像),我们试图保持宏不同。
答案 1 :(得分:1)
小写定义不是坏的(即使有违反共同惯例),而不是重新发明语言被认为是这样:
#define null NULL
这样你就会混淆维护程序员,他希望NULL
作为指定空指针常量的惯用方法。