我正在对 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)
这只是一个通用问题,我无法通过谷歌搜索或搜索堆栈交换找到。
在标准 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 不同,尽管它密切相关。