【重学C语言】二、C语言简介和开发工具

【重学C语言】二、C语言简介和开发工具

  • C语言发展史
  • C语言标准变迁
  • C语言特点
  • 开发软件
    • CLion
      • 安装步骤
    • VIsual Studio
      • 安装步骤
    • Clion 和 VS2022 绑定
  • VS 项目
    • 创建项目
  • Clion 项目(本博主主用)
    • 创建项目
    • Clion 配置
  • 构建类型
  • 构建模式

C语言发展史

  • 1970年,美国 AT&T 公司贝尔实验室(AT&TBell Laboratary)的研究员 Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏 Space Travel。他背着老板,找到了台空闲的机器——PDP-7。但这台机器没有操作系统,而游戏必须使甩操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为——UNIX(汇编语言编写):
  • 1971年,同样酷爱 Space Trave的丹尼斯·里育为了能早点儿玩上游戏,加入了汤普森的开发项目,合作开发 UNIX。他的主要工作是改造B语言,使其更成熟。
  • 1972年,美国贝尔实验室的丹尼斯·里奇在B语言的基础上最终设计出了一种新的语言,他取了BOPL的第二个字母作为这种语言的名字,这就是C语言。
  • 1973年,C语言的主体完成。汤普森和里奇迫不及待地开始用它完全重写了UNIX。此时,编程的乐趣使他们已经完全忘记了那个SpaceTrave7 , 一门心思地投入到了UNX和C语言的开发中。随着UNX的发展,C语言自身也在不断地完善。直到2022年,各种版本的UNX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承Thompson和里奇之手的代码。
  • 老祖容貌
  • 在这里插入图片描述

C语言标准变迁

在这里插入图片描述

C语言特点

  1. 语言简洁、紧凑,使用方便、灵活
  2. 运算符丰富
  3. 数据类型丰富
  4. 具有结构化的控制语句
  5. 语言限制不太严格,程序设计自由度大
  6. C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作
  7. C语言程序可移植性好
  8. 生成目标代码质量高,程序执行效率高

开发软件

CLion

在这里插入图片描述

安装步骤

直接官网:https://www.jetbrains.com/clion/download/#section=windows
点击 zip ,下载压缩包
在这里插入图片描述
下载完,解压到 D盘,到Clion\bin,找到 clion64.exe,双击打开
在这里插入图片描述
在这里插入图片描述

VIsual Studio

在这里插入图片描述

安装步骤

到官网:https://visualstudio.microsoft.com/zh-hans/vs/community/
在这里插入图片描述
双击打开
在这里插入图片描述
点击安装 Visual Studio 2022 Community
开始选组件
在这里插入图片描述
选择安装位置(最好跟我一样,方便管理,我由于安装了,才呈现灰色的以及后面的0B)
在这里插入图片描述
点击开始安装,等待安装完成,这样就可以使用 VS2022了

Clion 和 VS2022 绑定

在这里插入图片描述
在这里插入图片描述
目的是到了后面,可以编译 Qt

VS 项目

创建项目

  • 打开 VS 创建新项目
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 创建 main.c
    在这里插入图片描述
    在这里插入图片描述
  • 书写以下代码,按 Ctrl + F5 运行
#include <stdio.h>

int main() {
	printf("Hello, world\n");
	return 0;
}

在这里插入图片描述

Clion 项目(本博主主用)

创建项目

  • 创建新项目
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Clion 配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

退出代码提示:ESC
移动一行:Shift + Alt + ↑/↓
格式化: Ctrl + Alt + L
提取共性代码:Ctrl + Alt + M
代码自动填写:Alt + Enter
代码提示:Ctrl + Alt + 空格
代码跨选择:Ctrl + Alt
删除当前行:Ctrl + Y
复制当前行:Ctrl + D
向下换行:Shift + Enter
向上换行:Ctrl + Alt + Enter
查看属性方法详细:Ctrl + Q
查看属性方法在哪些地方使用了:Ctrl + F7
搜索文件:Ctrl + Shift
单行注释:Ctrl + / 
块注释:Ctrl + Shift + /
多行单选:Alt + A
代码选择(列如:try+catch):Ctrl + Alt + T
在当前页搜索:Ctrl + F
全局搜索:Ctrl + Shift + F
方法折叠:Ctrl +  -
方法展开:Ctrl + +
复制方法路径:Ctrl + Shift + C
关闭打开的类: Ctrl + F4
在路径中查找: Ctrl + Shift + F7

【调试部分、编译】
Ctrl+F2,停止
Alt+Shift+F9,选择 Debug
Alt+Shift+F10,选择 Run
Ctrl+Shift+F9,编译
Ctrl+Shift+F10,运行
Ctrl+Shift+F8,查看断点
F8,步过
F7,步入
Shift+F7,选择到底要 Debug 进入哪一个方法
Shift+F8,步出
Alt+Shift+F8,强制步过
Alt+Shift+F7,强制步入
Alt+F9,运行至光标处
Ctrl+Alt+F9,强制运行至光标处
F9,恢复程序
Alt+F10,定位到断点
Ctrl+F8,切换行断点
Ctrl+F9,生成项目

构建类型

  • Debug:调试模式,当你的代码出现问题的时候,可以在这个模式下,对代码进行检查,找出问题所在,进而修改 bug
  • Release:发布模式,经过 Debug 调试没有任何问题之后,那么就需要切换到 Release 模式进行编译程序,然后把 Release 版本的 exe 打包发布出去

构建模式

  • x64:目标平台指的是 64 位的 x64 架构。此架构适用于支持 64 位操作系统和处理器的计算机。如果你的应用程序将在这些平台上运行,你应该选择 x64 架构。注意,x64 架构的应用程序无法在 32 位的操作系统上运行。
  • x86:目标平台指的是 32 位的 x86 架构。此架构适用于大多数旧的 32 位 Windows 操作系统和处理器。如果你的应用程序将在这些平台上运行,你应该选择 x86 架构。32位程序可以在64位操作系统上运行

现在的操作系统基本上都是64位的,就用64位的即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/503352.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode.209.长度最小的子数组

题目 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0。 示例&#xff1a; 输入&#xff1a;s 7, nums [2,3,1,2,4,3] 输出&#…

JDK和IntelliJ IDEA下载和安装及环境配置教程

一、JDK下载&#xff08;点击下方官网链接&#xff09; Java Downloads | Oracle 选择对应自己电脑系统往下拉找到自己想要下载的JDK版本进行下载&#xff0c;我下的是jdk 11&#xff0c;JDK有安装版和解压版&#xff0c;我就直接下安装版的了。 .exe和.zip的区别&#xff1a…

设计模式10--适配器模式

定义 案例一 案例二 优缺点

稀碎从零算法笔记Day34-LeetCode:最小栈

感谢耶稣&#xff0c;笔者又过了一天“复活节”。月末斩杀一道Hard画上句号 题型&#xff1a;栈、模拟数据结构 链接&#xff1a;155. 最小栈 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 设计一个支持 push &#xff0c;pop &#xff0c;…

「Android高级工程师」BAT大厂面试基础题集合-下-Github标星6-5K

C、 com.android.provider.contact D、 com.android.provider.contacts 11.下面关于ContentProvider描述错误的是&#xff08;&#xff09;。 A、 ContentProvider可以暴露数据 B、 ContentProvider用于实现跨程序共享数据 C、 ContentProvider不是四大组件 D、 ContentP…

阿里云轻量应用服务器优惠价格表,61元和165元一年

阿里云轻量应用服务器2核2G和2核4G配置优惠价格表&#xff0c;轻量2核2G3M带宽61元一年&#xff0c;轻量2核4G4M带宽165元1年&#xff0c;均不限制月流量&#xff0c;阿里云活动链接 aliyunfuwuqi.com/go/aliyun 活动打开如下图&#xff1a; 阿里云轻量应用服务器价格 61元/年…

线程池详解、核心参数、拒绝策略

什么是线程池 线程池是一种池化技术&#xff0c;它预先创建一组线程&#xff0c;用于执行异步任务。当有新任务到来时&#xff0c;线程池可以立即分配一个线程来处理&#xff0c;而不需要临时创建。这样可以减少因为频繁创建和销毁线程而导致的开销。 线程池的应用场景 高并…

C++中使用虚函数实现多态

虚函数是C中用于实现多态&#xff08;Polymorphism&#xff09;的重要特性。下面是关于虚函数的讲解和代码示例&#xff1a;### 虚函数的定义&#xff1a; 虚函数是在基类中声明为 virtual 的成员函数。 在派生类中重写&#xff08;override&#xff09;这个虚函数&#xff0c;…

C语言分支循环探秘:解锁编程逻辑的无限可能 篇章1

目录 1.if语句 2.关系操作符 3.条件操作符 4.逻辑操作符&#xff1a;&&&#xff0c;||&#xff0c;&#xff01; 5.switch语句 6.while循环 7.for循环 8.do-while循环 9.break和continue语句 10.循环的嵌套 11.goto 导入 C语言是结构化的程序设计语言&…

STM32 | PWM脉冲宽度调制(第五天按键中断,控制电机正/反转、加速、减速、暂停与继续源码解析)

​ STM32 | PWM脉冲宽度调制(第五天)STM32 | PWM脉冲宽度调制(第五天呼吸灯源码解析)STM32 | PWM脉冲宽度调制(第五天电机速度控制源码解析)PWM 技术在以下其他机器学习领域和应用中也可以发挥作用: 自然语言处理 (NLP):调节文本生成模型(例如 GPT-3)的输出长度和多样…

简明Pytorch分布式训练 — DistributedDataParallel 实践

上一次的Pytorch单机多卡训练主要介绍了Pytorch里分布式训练的基本原理&#xff0c;DP和DDP的大致过程&#xff0c;以及二者的区别&#xff0c;并分别写了一个小样作为参考。小样毕竟还是忽略了很多细节和工程实践时的一些处理方式的。实践出真知&#xff0c;今天&#xff08;简…

微服务(基础篇-007-RabbitMQ)

目录 初识MQ(1) 同步通讯&#xff08;1.1&#xff09; 异步通讯&#xff08;1.2&#xff09; MQ常见框架&#xff08;1.3&#xff09; RabbitMQ快速入门(2) RabbitMQ概述和安装&#xff08;2.1&#xff09; 常见消息模型&#xff08;2.2&#xff09; 快速入门&#xff…

YARN集群 和 MapReduce 原理及应用

YARN集群模式 本文内容需要基于 Hadoop 集群搭建完成的基础上来实现 如果没有搭建&#xff0c;请先按上一篇: <Linux 系统 CentOS7 上搭建 Hadoop HDFS集群详细步骤> 搭建&#xff1a;https://mp.weixin.qq.com/s/zPYsUexHKsdFax2XeyRdnA 配置hadoop安装目录下的 etc…

docker 部署 nali 开源 IP 地理信息归属查询软件

前言 早前用到一个小巧开源的 IP 归属地查询软件&#xff0c;官方提供了 Dockerfile&#xff0c;使用了一段时间觉得还不错&#xff0c;非常简单便捷。 部署 docker 启动 由于该项目会在首次启动自动下载 IP 数据库,所以最好通过挂载目录的方式,将数据库目录挂在到本地,避免…

代码随想录 Day24 理论基础 77. 组合

理论基础 1. 回溯是配合递归算法进行使用的&#xff0c;一般是在递归的下面。回溯的算法是一种暴力的算法&#xff0c;虽然效率并不高&#xff0c;但是常常使用。因为很多时候使用多层for&#xff08;因为层数实在是套多了&#xff09;也不能将题目解答&#xff0c;这个时候就…

HCIP【GRE VPN、MGRE VPN与PPP验证综合实验】

目录 实验要求&#xff1a; 实验拓扑图&#xff1a; 实验思路&#xff1a; 实验步骤&#xff1a; 一、配IP地址 &#xff08;1&#xff09;配置所有设备接口的IP地址&#xff1a; &#xff08;2&#xff09;配置私网与公网接口的缺省路由使得公网可通&#xff1a; 二、P…

学习日记(SSM整合流程_SpringMVC_part_two)

目录 大致流程如下 1、创建工程 2、SSM配置类结构 3、功能模块 代码部分 整体结构 Jdbc.Config MyBatisConfig ServletConfig SpringConfig SpringMvcConfig BookController BookDao Book BusinessException SystemException Cord Result BookService BookserviceImpl jd…

计算机网络 - 基础篇总结

TCP/IP 网络模型有哪几层&#xff1f; 1.应用层 为用户提供应用功能 2.传输层 负责为应用层提供网络支持 使用TCP和UDP 当传输层的数据包大小超过 MSS&#xff08;TCP 最大报文段长度&#xff09; &#xff0c;就要将数据包分块&#xff0c;这样即使中途有一个分块丢失或损坏…

Python耗时统计-可嵌套-生成Timeline-chrome://tracing/预览

Python耗时统计-可嵌套-生成Timeline-chrome://tracing/预览 一.效果二.代码 本文演示了如何用chrome://tracing查看python嵌套代码的耗时成分 一.效果 二.代码 import time import os import threading import queuedef singleeton(cls):单例instance{}def _singleton(*args,…

【opencv】教程代码 —features2D(3)Homography—分解单应性矩阵

decompose_homography.cpp 分解单应性矩阵 left01.jpg boardSize&#xff1a;9x6 squareSize:0.025 left02.jpg 相机内参 #include <iostream> // 引入输入输出流库 #include <opencv2/core.hpp> // 引入OpenCV的核心功能头文件 #include <opencv2/highgui.hp…