什么是“<:" in C?

问题描述 投票:0回答:1

我正在对 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);
    }
}

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

c operators xmos
1个回答
3
投票

在标准 C 中,

<:
:>
符号是 digraphs。除了拼写外,
<:
等同于
[
:>
等同于
]
.

但是,当这些符号在您的代码中被翻译时(并且为了可读性而重新格式化代码,包括在

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);
    }
}

这没有多大意义。因此,您可能需要仔细阅读系统上 C 编译器的手册才能了解它的含义。或者它可能只是你的复制'n'粘贴操作(我假设)省略了一些空格,也省略了

:>
符号或代码片段的其他关键位。

随着Eugene Sh.关于XC提示,第13页(第2章开始)的手册XC手册有一个图表:

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

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

XC虽然与C密切相关,但并不相同。

© www.soinside.com 2019 - 2024. All rights reserved.