【问题标题】:error: unknown type name '#include' #include <stdio.h> [closed]错误:未知类型名称'#include'#include <stdio.h> [关闭]
【发布时间】:2016-08-24 20:14:24
【问题描述】:

当我在 Mac 上使用终端编译 .c 文件时,出现以下错误:

我该如何处理这些错误?

代码如下:

#include <stdio.h>
int main()
{
  for (int i=1; i<=9; i++)
    {
      for (int j=1; j<=i; j++)
        {
          printf ("%d * %d = %2d ", j, i, j*i);
        }
      printf ("\n");
    }
}

【问题讨论】:

  • 你能告诉我们你在终端输入了什么来得到这个结果吗?
  • 试试-lc标志,你不需要-c标志来做简单的程序。
  • 很有可能您在# 之前还有一个您没有在问题中复制的字符。可能是 Unicode 字节顺序标记,可能来自使用某些文本编辑器编辑代码,具体取决于设置。
  • 您作为代码显示的内容与01-for_loop.c 文件中的内容完全相同吗?错误消息似乎表明它不一样。该错误显示#include 之间有一个空格(应该仍然可以接受),但这让我怀疑潜在的其他差异。请准确显示您正在编译的代码。
  • @Rico 我编辑了您的问题以直接显示图像,但请注意,提供外部链接以显示您输入的内容和结果通常在这里不受欢迎。它使导航问题变得更加乏味。

标签: c macos terminal


【解决方案1】:

你在某处有一个额外的字符/字节。这是文本# include &lt;stdio.h&gt; 注释以显示哪个字符在哪个偏移量:

# include <stdio.h>
^^^^^^^^^^^
12345678901

如您所见,&lt; 应该位于偏移量 11,但编译器输出的第二行显示它位于偏移量 12。这表明在文件开头和您得到的 &lt; 之间的某个位置一个不应该存在的杂散字节。

我建议删除该行并手动重新键入它。您可能只是复制并粘贴了它,但在执行此操作时意外拾取了一些无效字符/字节。

【讨论】:

  • 谢谢,完全正确!
  • 我试过重现 # include &lt;stdio.h&gt; ,还有 # include &lt;stdio.h&gt;# include &lt;stdio.h&gt; 基于空间的错别字,然后在 llvm4.2 和 gcc4.2 的 mac 上构建,但无法重现问题。一切编译良好...
猜你喜欢
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多