【问题标题】:"Stray '\226' in program" compiler errors [duplicate]“程序中的杂散'\ 226'”编译器错误[重复]
【发布时间】:2012-08-20 03:33:18
【问题描述】:

我写了以下代码。就是实现一个双向链表。但是出现了错误。

while(x==1); // This line showed errors
return 1;

错误:

DoublyLinkedList.c: In function `main':
DoublyLinkedList.c:194: error: stray '\226' in program
DoublyLinkedList.c:194: error: stray '\128' in program
DoublyLinkedList.c:194: error: stray '\156' in program
DoublyLinkedList.c:194: error: `The' undeclared (first use in this function)
DoublyLinkedList.c:194: error: (Each undeclared identifier is reported only once
DoublyLinkedList.c:194: error: for each function it appears in.)
DoublyLinkedList.c:194: error: parse error before "list"
DoublyLinkedList.c:194: error: stray '\226' in program
DoublyLinkedList.c:194: error: stray '\128' in program
DoublyLinkedList.c:194: error: stray '\157' in program

什么是杂散错误?那些随机数是什么?

【问题讨论】:

  • 产生错误的行是第 194 行。这不是您引用的代码行。
  • @me_and:是的,包含该代码只会增加混乱。
  • 数字应该是八进制的。 128 不是有效的八进制数。
  • 在特定的编译器、编译器版本和编译器配置中,这些数字可能是十进制的?
  • 是的,226 十进制是签名 342 八进制(十六进制 0xE2)。因此,更直接的分析是 226 128 156 → 0xE2 0x80 0x9C → Unicode 代码点 U+201C LEFT DOUBLE QUOTATION MARK 的 UTF-8 序列。大多数具有regular expression 模式的文本编辑器(例如Geany(Linux 和Windows)和Notepad++)将能够使用\x{201C} 搜索/替换Unicode 代码点U+201C。

标签: c


【解决方案1】:

您的 DoublyLinkedList.c 似乎包含无效的 C 文本。这些数字是 C 程序中无效字符的八进制值。

如果您打算在源文件的开头添加描述性注释,请确保注释的每一行都以 // 开头。

while(x==1);

是一个空主体(即最后的分号)的 while 循环。如果x 为 1,您的程序将无限循环。

【讨论】:

    【解决方案2】:

    我从 Microsoft Word 文档中剪切粘贴了一些代码。减号由我的文本编辑器显示,但它实际上是八进制 226 或十六进制 96 的值。减号应该是十六进制 2D。当我将代码作为二进制文件打开时,我可以看到它 - 八进制 226 在 ASCII 列表中显示为一个块。

    【讨论】:

    • 这正是我刚刚遇到的。很好的解释!
    猜你喜欢
    • 2016-07-10
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多