C语言中的“<:”是什么?

Nic*_*ser 1 c operators xmos

我正在对 XMOS 处理器的一些简单教程代码进行故障排除,并且遇到了一个我以前在 C 中从未见过的运算符。它有什么作用<:?正如这里使用的那样,它似乎设置了一个变量高或低,但为什么不直接使用呢=

void flashing_led_task1(port p,int delay_in_ms){
    while(1){
        p<:0;
        delay_milliseconds(delay_in_ms);
        p<:1;
        delay_milliseconds(delay_in_ms);
    }
}
Run Code Online (Sandbox Code Playgroud)

这只是一个通用问题,我无法通过谷歌搜索或搜索堆栈交换找到。

Jon*_*ler 6

在标准 C 中,<::>符号是二合字母。除拼写外,<:等同于[:>等同于]

然而,当这些符号在代码中被翻译时(并且代码被重新格式化以提高可读性,包括在void和 函数名称之间、在port和 之间p、以及在int和 之间添加空格delay_in_ms),您最终会得到:

void flashing_led_task1(port p, int delay_in_ms)
{
    while (1)
    {
        p[0;
        delay_milliseconds(delay_in_ms);
        p[1;
        delay_milliseconds(delay_in_ms);
    }
}
Run Code Online (Sandbox Code Playgroud)

这没有多大意义。因此,您可能需要仔细查看系统上 C 编译器的手册才能了解其含义。或者可能只是您的复制粘贴操作(我假设)省略了一些空格,也省略了:>代码片段的符号或其他关键位。

来自Eugene Sh 的关于 XC 的提示XC 手册的第 13 页(第 2 章开头)有一个图表:

  • <:用于输出
  • :>用于输入

p14 上的代码显示了这些运算符的使用情况。

XC 与 C 不同,尽管它密切相关。