如何在GCC中使用断条(¦)?

u5i3ibmn  于 2023-05-06  发布在  其他
关注(0)|答案(3)|浏览(136)

我正在尝试用C语言编写代码,使用位运算符'or'(¦)(我知道这很简单)。
但是,当我在GCC中编译它时,我得到:

error: stray \302 and stray \246

我试图寻找这个问题的解决方案,我所看到的是,当编译器不识别符号时,就会发生这个错误。我能做些什么来使它工作?
我的代码是:

#include "stdio.h"

int main(int argc, char const *argv[]) {
  int x, y , z;
  x = 0xffff;
  y = 0x8888;
  z = x ¦ y;
  printf("0x%u \n", z);
  return 0;
}

下面是终端上的错误:

ex_8_4.c: In function ‘main’:
ex_8_4.c:19:3: error: stray ‘\302’ in program
   z = x ¦ y;
   ^
ex_8_4.c:19:3: error: stray ‘\246’ in program
ex_8_4.c:19:12: error: expected ‘;’ before ‘y’
   z = x ¦ y;
            ^

显然我使用了错误的符号(β而不是|)(出于某种原因,这就是它在书中的表现),所以现在它起作用了。

hlswsv35

hlswsv351#

字符¦不是正确的按位或运算符。在键盘中搜索此|。这段代码在我的机器上用|编译得很好。

#include "stdio.h"
int main(int argc, char const *argv[]) {
    int x, y , z;
    x = 0xffff;
    y = 0x8888;
    z = x | y;
    printf("0x%u \n",z );
    return 0;
}
t3irkdon

t3irkdon2#

您使用了错误的字符。您应该用途:|
所以,你的代码应该看起来像这样:

#include "stdio.h" 

int main(int argc, char const *argv[])
{ 
     int x, y, z; 
     x = 0xffff; 
     y = 0x8888; 
     z = x | y; 
     printf("0x%u \n", z); 
     return 0; 
}
qoefvg9y

qoefvg9y3#

如果找不到正确的字符(| vs ¦),请使用三字母??!
你的线看起来像这样

z = x ??! y;

相关问题