【问题标题】:My C "Hello, world!" program isn't compiling我的 C “你好,世界!”程序没有编译
【发布时间】:2012-04-05 15:04:34
【问题描述】:

我想学习 C,所以我决定开始一个 C 项目并尝试经典的“Hello, world!” Visual Studio 中的程序。

所以我把这段代码放进去

#import <stdio.h>

main()
{
    printf("Hello, world!");
}

得到三个错误:

IntelliSense:无法打开源文件“C:/.../stdio.tlh”
IntelliSense:标识符“printf”未定义
IntelliSense:PCH 警告:找不到合适的标头停止位置。智能感知 未生成 PCH 文件。

显然我的项目设置有误,或者我没有所需的头文件或类似的东西。

我确信这似乎是一个非常基本的问题,但我之前没有真正使用过 C,所以我被卡住了,不知道该怎么办。我做错了什么,我该如何解决?

【问题讨论】:

  • 你应该买一本好书,扔掉你现在使用的任何资源。
  • #import 是 Objective-C :) 你不能用标准的 C 预处理器来实现它。
  • @KerrekSB 这不是任何来源的错,只是我犯了一个愚蠢的错误——我使用的其他语言一直使用import
  • @PeterOlson:很公平。无论如何,一个好的教程应该可以帮助你开始并远远超出你目前的水平——祝你好运!

标签: c visual-studio


【解决方案1】:

#import 应该是#include

【讨论】:

  • 哇,这比我想象的还要简单。谢谢。
【解决方案2】:

不是#import,是#include

【讨论】:

    【解决方案3】:

    你应该使用#include 而不是#import

    【讨论】:

      【解决方案4】:

      其他人没有指出的几点:

      1. main() 应该返回 int
      2. 您的 printf 字符串文字参数应该有一个新行。

      【讨论】:

      • #1 - 没必要 #2 - 为什么?
      • @KevinDTimm -- C 标准要求如此。澄清一下,我并不是说主函数应该有一个返回语句,例如“return 0;”,而是说 C 标准多年前弃用了 int 的隐式返回。 OP 代码省略了 main 的返回规范。看一下comeaucomputing.com/techtalk/#voidmain 如果 printf 的字符串文字没有新行,则不会刷新输出。最后,OP 表示他正在学习 C。重点不是为了让代码编译,而是为了帮助它正确。
      猜你喜欢
      • 1970-01-01
      • 2022-11-04
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 2011-03-06
      • 2012-10-20
      相关资源
      最近更新 更多