在C语言中,“·”是什么意思?

7

我在许多流行的C项目中看到过这个,比如Go语言,但我找不到有关它的任何信息。我认为这是一种命名空间,但我以为C不支持它。

例如

void runtime·memhash(uintptr*, uintptr, void*);

谢谢。


对于我们中从未听说过这种东西的人:http://en.wikipedia.org/wiki/Interpunct - BlackVegetable
1个回答

11

· 不是 "基本执行字符集" 的一部分,因此不是标准的 C 运算符。

但是,C 标准似乎允许将其作为实现定义的标识符字符。它没有特殊含义;它只是另一个字符。


3
没有C标准,但C++标准允许在标识符中存在来自指定Unicode字符集的其他实现定义字符(参见2.11和附录E)。在附录E中,U+00B7被列为允许使用的字符之一。 - aschepler
它看起来非常神秘,因为没有人有确切的答案。 - Dustin Deus
1
答案是,它只是一个名字中的奇怪字符,类似于JS和Java中的$,一些编译器允许使用。在任何编译器中,代码都可以运行。C语言除此之外没有赋予它任何意义,甚至不要求编译器接受它。但对于那些支持它的编译器来说,它提供了一个明显的字符,使人们停下来说“嘿,这两个部分是分开的”,即使他们也会问“这个分隔符是什么?这是什么运算符?” :) - cHao
谢谢。你说的编程风格是可取的意思是什么? - Dustin Deus
1
@DustinDeus:就我个人而言,我无法推荐它,因为(1)不能保证代码能在所有可以编译它的编译器上运行,(2)正如你自己证明的那样,会有一些熟悉C语言但仍然不知道发生了什么的人——这并不是一件好事。 - cHao
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接