当前位置: 首页 > news >正文

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

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

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

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

下载地址
参考文章

二、编写c helloworld

// 源文件名 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”程序。再有意去掉程序中的部分内容,看看会得到什么出错信息
#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",编译器通常会发出警告,因为它可能并不是你想要的结果。

相关文章:

  • Spark---基于Yarn模式提交任务
  • Hive日志默认存储在什么位置?
  • C++ Qt TCP协议,处理粘包、拆包问题,加上数据头来处理
  • 回归算法优化过程推导
  • 解决Activiti5.22流程图部署在Windows上正常,但在linux上部署后出现中文变方块的问题
  • 万界星空科技SMT行业生产管理MES系统解决方案
  • 【监控系统】日志可视化监控体系ELK搭建
  • php获取表单以POST方式或GET方式提交的值
  • 2023年【四川省安全员B证】找解析及四川省安全员B证作业模拟考试
  • 第二章 Python基础语法之变量和数据类型
  • Adiponectin 脂联素 ; T-cadherin +exosome
  • IDEA 配置maven结合案例使用篇
  • Navicat 技术指引 | 适用于 GaussDB 的用户权限设置
  • vue一个页面左边是el-table表格 当点击每条数据时可以在右边界面编辑表格参数,右边保存更新左边表格数据
  • maven打包可执行jar含依赖lib
  • 【mysql】环境安装、服务启动、密码设置
  • 2019年如何成为全栈工程师?
  • Javascript编码规范
  • leetcode讲解--894. All Possible Full Binary Trees
  • windows下如何用phpstorm同步测试服务器
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 理解在java “”i=i++;”所发生的事情
  • 面试总结JavaScript篇
  • 前端存储 - localStorage
  • 前端工程化(Gulp、Webpack)-webpack
  • 我的业余项目总结
  • 详解NodeJs流之一
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • ​人工智能书单(数学基础篇)
  • ​业务双活的数据切换思路设计(下)
  • #1014 : Trie树
  • #etcd#安装时出错
  • #pragma once与条件编译
  • #vue3 实现前端下载excel文件模板功能
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (function(){})()的分步解析
  • (java)关于Thread的挂起和恢复
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (办公)springboot配置aop处理请求.
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .Net CF下精确的计时器
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net 获取url的方法
  • .NET 命令行参数包含应用程序路径吗?
  • .net6 webapi log4net完整配置使用流程
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @Transactional 竟也能解决分布式事务?
  • [20150321]索引空块的问题.txt
  • [APIO2015]巴厘岛的雕塑
  • [c]扫雷
  • [datastore@cyberfear.com].Elbie、[thekeyishere@cock.li].Elbie勒索病毒数据怎么处理|数据解密恢复