1.1 C语言之入门:使用Visual Studio Community 2022运行hello world

1.1 使用Visual Studio Community 2022运行c语言的hello world

  • [一、下载安装Visual Studio Community 2022 与 新建项目](#一、下载安装Visual Studio Community 2022 与 新建项目)
  • [二、编写c helloworld](#二、编写c helloworld)
  • [三、编译、链接、运行 c helloworld](#三、编译、链接、运行 c helloworld)
    • [1. 问题记录:无法打开源文件"stdio.h"](#1. 问题记录:无法打开源文件"stdio.h")
    • [2. 问题记录:调试和执行按钮是灰色的,无法运行程序](#2. 问题记录:调试和执行按钮是灰色的,无法运行程序)
    • [3. 问题记录:错误 LNK2005 main 已经在 hello.obj 中定义](#3. 问题记录:错误 LNK2005 main 已经在 hello.obj 中定义)
  • 四、练习

一、下载安装Visual Studio Community 2022 与 新建项目

下载地址
参考文章

二、编写c helloworld

c 复制代码
// 源文件名 hello.c
#include <stdio.h> // 引入标准输入输出库头文件
// main函数,程序执行的入口
int main()
{// main函数的语句都被括在花括号中
	printf("你好哈"); // main函数调用库函数printf打印字符串
	return 0;
}

三、编译、链接、运行 c helloworld

1. 问题记录:无法打开源文件"stdio.h"

同问题2一样处理

2. 问题记录:调试和执行按钮是灰色的,无法运行程序

vs少安装了开发工具,其实问题1也是这个原因导致的,工具->获取工具与功能->下载安装->重新创建项目

重新创建项目,选择控制台应用或者空项目

3. 问题记录:错误 LNK2005 main 已经在 hello.obj 中定义

解决办法

注意:在c语言中,一个项目可以有多个.c文件,但是只能有一个main函数

至此,总算是运行成功了

四、练习

  1. 在你自己的系统中运行"hello world"程序。再有意去掉程序中的部分内容,看看会得到什么出错信息
c 复制代码
#include <stdio.h>
int main() 
{
	printf("Hello world");
	return 0;
}
  • 去掉#include一行
    错误信息:错误 LNK2019 无法解析的外部符号 printf,函数 main 中引用了该符号
  • 去掉int和return 0一行
    程序正常执行
  • 修改main函数名称
    错误信息:错误 LNK2019 无法解析的外部符号 main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号
  • 去掉printf一行的分号;
    错误信息:错误 C2143 语法错误: 缺少";"(在"return"的前面)
  • 换行printf的参数字符串

    错误信息:
    错误 C2001 常量中有换行符
    错误 C2143 语法错误: 缺少")"(在"return"的前面)
  1. 做个实验,当printf函数的参数字符串中包含\c时,观察一下会出现什么情况

在C语言中,反斜杠C(\c)并没有特殊的含义,它并不是一个有效的转义字符。如果在代码中使用了"\c",编译器通常会发出警告,因为它可能并不是你想要的结果。

相关推荐
死磕音视频4 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
Navigator_Z5 小时前
LeetCode //C - 1291. Sequential Digits
c语言·算法·leetcode
顽疲7 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog7 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
水饺编程8 小时前
第2章:Linux 基础,clear 命令
linux·c语言·汇编
程序喵大人9 小时前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
无敌贵点大王9 小时前
嵌入式软件面试经(自用)
c语言·stm32·单片机·学习·mongodb·面试·职场和发展
微三云 - 廖会灵 (私域系统开发)9 小时前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php
学逆向的9 小时前
C 数据溢出与精度丢失
c语言·开发语言·网络安全
霸道流氓气质10 小时前
AgentFlow 入门与实战:Task-Based 并发、EWMA 动态调度与四道门禁的 Java 生产级编排
java·开发语言