エラー:プログラムのコンパイル時にプログラムエラーで「 357」が迷う



Error Stray 357 Program Error When Compiling Program



私が自分で書いたプログラムは、以下に示すように、コンパイル中に多数のエラーを報告しました。

mmap_test.c: In function ‘main’: mmap_test.c:16:2: error: stray ‘357’ in program start = (char *)mmap(NULL,128,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0) ^ mmap_test.c:16:2: error: stray ‘274’ in program mmap_test.c:16:2: error: stray ‘214’ in program In file included from /usr/include/x86_64-linux-gnu/bits/mman.h:45:0, from /usr/include/x86_64-linux-gnu/sys/mman.h:41, from mmap_test.c:6: mmap_test.c:16:34: error: expected ‘)’ before numeric constant start = (char *)mmap(NULL,128,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0) ^ mmap_test.c:16:18: error: too few arguments to function ‘mmap’ start = (char *)mmap(NULL,128,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)

私はいつも理由を見つけることができません。その理由はインターネットで見つけることができます。私がもっと言った理由は、コードのエンコード形式です。コードのエンコード形式がUTF8であることを確認しました。また、他のプログラムの形式もUTF8形式であることを確認しましたが、コンパイルされません。基本的にはこれが原因ではないと判断できます。



後で、私は自分でコードを見て、問題を見つけました。 In start =(char *)mmap(NULL、128、PROT_READ | PROT_WRITE、MAP_SHARED、fd、0)このコードでは、128の後のコンマが中国語のコンマになっているため、エラーが報告されます。修正後、プログラムは正常に実行できます。

概要:プログラムで中国語の記号(中国語のコンマ、引用符、括弧など)を使用すると、上記のエラーが発生します。また、一部の中国語の記号は英語の記号と非常に似ているため、この種の問題を確認するのは簡単ではありません。