c - Go 编译器运行时的语法和语义

标签 c namespaces go

我在看go运行时的runtime.c文件

  /usr/local/go/src/pkg/runtime

并看到了以下函数定义:

   void
   runtime∕pprof·runtime_cyclesPerSecond(int64 res)
   {...}

int64
runtime·tickspersecond(void)
{...}

还有很多像

这样的声明
void    runtime·hashinit(void);

在 runtime.h 中。

我以前从未见过这种 C 语法(特别是带有斜杠的语法似乎很奇怪)。 这是标准 C 的一部分还是某些 plan9 方言?

最佳答案

这是 Go 对 Go 包路径的特殊内部语法。例如,

运行时间∕pprof·runtime_cyclesPerSecond

是函数runtime_cyclesPerSecond在包路径runtime∕pprof

''字符是Unicode分割斜杠字符,用于分隔路径元素。 '·'字符为Unicode中点字符,分隔包路径和函数。

关于c - Go 编译器运行时的语法和语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259087/

相关文章:

.net - 为什么有这么多单独的 System.Web.* DLL?

docker - Hyperledger 结构构建错误

connection - 读取直到服务器关闭连接

c - C 枚举定义中的位移位有什么作用?

c - MinGW:使用 __declspec(dllexport) 或 __attribute__((visibility ("default")))?

将循环从 Matlab 转换为 C

函数中的 PHP 命名空间全局关键字

c - fork后同步N个兄弟进程

c - 一个文件中可以有单独的 "namespace"吗?

java - 共享 GAE 数据存储、Go <-> Java、regexp.FindStringIndex 索引移位(字节索引与 utf-8-char-index)