(一)C语言概述

文章目录

  • 一、C语言
    • 1、计算机结构组成
  • 二、第一个C语言程序:hello world
    • 1、编写C语言代码:hello.c
    • 2、通过gcc编译C代码
      • (1)gcc编译器介绍
      • (2)Window平台中gcc环境配置
    • 3、代码分析
      • (1)#include <stdio.h>与#include "stdio.h"区别
      • (2)main函数
      • (3){}括号,程序体和代码块
      • (4)注释
      • (5)printf()函数
      • (6)return 0
  • 三、system函数
    • 1、system函数的使用
  • 四、C语言编译过程
    • 1、C语言编译步骤
      • (1)预处理:
      • (2)编译
      • (3)汇编
      • (4)链接
  • 五、visual studio的快捷键

一、C语言

  语言是用来交流沟通的,有一方说,有一方听,必须有两方参与,这就是语言最重要的功能。

  • 说的一方传递信息,听的一方接收信息;
  • 说的一方下达命令,听的一方遵循命令做事情
      语言是任何人交流,C语言是人与机器交流。

1、计算机结构组成

在这里插入图片描述

二、第一个C语言程序:hello world

1、编写C语言代码:hello.c

#include <stdio.h>
int main()
{// 这是第一个C语言代码printf("hello, world!\n");return 0;
}

  C语言的源代码文件是一个普通的文本文件,但是扩展名必须是.c

2、通过gcc编译C代码

(1)gcc编译器介绍

  编译器(如vim,记事本等)是指我们用它来写程序的(编辑代码),而我们写的代码语句,电脑是不懂的,我们需要把它转换成电脑能懂的语句,编译器就是这样的转换工具。也就是说,我们用编辑器编写程序,由编译器编译后才能运行!
  编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。
  gcc原本作为GNB操作系统的官方编译器,现在已经被大多数类Unix操作系统采纳为标注你的编译器,gcc同样适用于微软的windows。
  编译命令格式:
gcc [-option1] ... <filename>
g++ [-option2] ... <filename>

  • 命令、选项和源文件之间使用空格分隔。
  • 一行命令中可以有0个、一个或多个选项
  • 文件名可以包含文件的绝对路径,也可以使用相对路径
  • 如果命令中不包含输出可执行文件的文件名,可执行文件的文件名会自动生成一个默认名。如a.exe,a.out等。

(2)Window平台中gcc环境配置

  • 直接进入QT安装目录,如我们路径为:Z:\Qt\Tools\mingw1120_64,将其添加至环境变量。
  • 输入cmd,进入命令提示行,在里面输入gcc -v
    如果出现一下画面,就表示gcc可以正常使用。
    在这里插入图片描述

3、代码分析

  • include头文件包含,#include <stdio.h>代表包含stdio.h这个头文件
  • 使用C语言库函数需要提前包含库函数对应的头文件,如这里使用了printf()函数,则就需要包含stdio.h头文件
  • 可以通过man 3 printf查看printf头文件——linux系统中。

(1)#include <stdio.h>与#include "stdio.h"区别

  <>表示系统直接按系统指定的目录检索。
  ""表示系统现在""指定的路径查找头文件,如果找不到,再按系统指定的目录检索。

(2)main函数

  • 一个完整的C语言程序,是由一个、且只能有一个main()函数(又称主函数,必须有)和若干个其他函数结合而成。
  • main函数是C语言程序的入口,程序是从main 函数开始执行

(3){}括号,程序体和代码块

  • {}叫做代码块,一个代码块内部可以有一条或者多条语句。
  • C语言每句可执行代码都是";"分好结尾。
  • 所有由#开头的行,都代表预编译指令,预编译指令行结尾是没有分号的
  • 所有可执行语句必须在代码块中

(4)注释

  • //叫做行注释
  • /**/叫做块注释
#if 0
#endif

(5)printf()函数

  • 是C语言库函数,是向标注输出设备输出一个字符串
  • printf("hello, world!\n");

(6)return 0

三、system函数

1、system函数的使用

#include <stdlib.h>
int system(const char *command);

函数功能:在已经运行的程序中执行另外一个外部程序
参数:外部可执行程序名字
返回值:
  成功:0
  失败:任意数字
示例代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{system("cls");return 0;
}

四、C语言编译过程

1、C语言编译步骤

  C语言编译成可执行程序经过4步:

(1)预处理:

  宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法。
  可以通过gcc工具实现
gcc -E hello.c -o hello.i
  生成的是.i文件。

预处理过程的作用有几个,分别是:
(1)完成头文件展开
(2)宏定义替换
(3)替换注释
(4)展开条件编译

(2)编译

  会逐行检查语法错误,将代码翻译成汇编语言。

(3)汇编

  作用是将汇编语言翻译成二进制语言。

(4)链接

  实现的功能有几个:

(1)数据段合并
(2)数据地址回填
(3)库引入

五、visual studio的快捷键

快捷键含义
Ctrl + k,Ctrl + f自动格式化代码
Ctrl + k,Ctrl + c注释代码
Ctrl + k,Ctrl + u取消注释代码
F9设置断点
F5设置断点
Ctrl + F5不调试运行
Ctrl + Shift + b编译,不运行
F10next调试
F11step调试

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot Bean解析

Bean解析 IOC介绍 松耦合灵活性可维护 注解方式配置Bean 实现方式1: Component声明,直接类上进行添加注解, 同时保证包扫描能扫到即可实现方式2: 配置类中使用Bean Configuration public class BeanConfiguration implements SuperConfiguration{Bean("dog")Ani…

深度学习:什么是知识蒸馏(Knowledge Distillation)

1 概况 1.1 定义 知识蒸馏&#xff08;Knowledge Distillation&#xff09;是一种深度学习技术&#xff0c;旨在将一个复杂模型&#xff08;通常称为“教师模型”&#xff09;的知识转移到一个更简单、更小的模型&#xff08;称为“学生模型”&#xff09;中。这一技术由Hint…

力扣11题 盛最多水的容器 双指针算法

11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明 你不能倾斜容器. 示…

AndroidStudio - 新版本 Logcat 使用详解

最近这俩天正好有时间给自己做一下减法&#xff0c;忘记是去年还是今年&#xff0c;在升级 AndroidStudio 后使用 Logcat查看日志的方式也发生了一些变化&#xff0c;虽然一直在使用&#xff0c;但每当看到之前还未关闭 Logcat 命令行工具额昂也&#xff0c;就感觉可能还存在知…

数据探索:五款免费数据可视化工具概览

数据可视化是解读和传达数据的重要方式&#xff0c;而现在有许多免费的工具可供选择&#xff0c;让您在探索数据时更轻松、更有趣。以下是五款推荐的免费数据可视化工具&#xff1a; Tableau Public&#xff1a; Tableau Public是一款功能强大的可视化工具&#xff0c;能够创建…

【网络安全】meterpreter攻击实战

1.meterpreter 攻击成功后可以做什么指令&#xff1f; 远程控制命令执行摄像头监控密码获取创建后门用户破坏篡改系统。 2.创建后门用户并开启远程连接&#xff1a; net user zhangsan 123456/add && net localgroup adminstrators zhangsan/add exit run getgul -…

如何计算数据泄露的成本

现在&#xff0c;几乎所有类型的组织每天都在发生企业 IT 网络遭到破坏的情况。它们是任何合规官员最担心的问题&#xff0c;并且找出更好的方法来防止它们或从中恢复是合规官员永远不会远离的想法。 但数据泄露的实际成本是多少&#xff1f;该数字从何而来&#xff1f;当您获…

Transformer中的多头注意力机制-为什么需要多头?

Transformer为什么使用多头注意力机制呢&#xff1f; 多头可以学习到不同维度的特征和信息。为什么可以学习到不同维度的信息呢&#xff1f; 答案是&#xff1a;多头注意力机制的组成是有单个的self attention&#xff0c;由于self attention通过产生QKV矩阵来学习数据特征&a…

中信建投在金融电于化期刊发布 DataOps 实践

文 ‖ 中信建投证券股份有限公司 马丽霞 高宇航 李可 许哲 李海伟 近年来&#xff0c;数据的分析和应用对各行各工业的业务模式和竞争形态进行重塑&#xff0c;而积极应对挑战和顺应时代变化是各个市场参与者的必选项。作为资本市场数字化转型的领航者&#xff0c;中信建投证券…

时序预测 | Python实现TCN时间卷积神经网络价格预测

时序预测 | Python实现TCN时间卷积神经网络时间序列预测 目录 时序预测 | Python实现TCN时间卷积神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 时间卷积网络,TCN。 利用CNN技术处理时间序列数据。 卷基础层有三种,第一种是一维CNN,用于输…

WebUI工作流插件超越ComfyUI

在AI绘画领域&#xff0c;Stable Diffsion是最受欢迎的&#xff0c;因为它是开源软件。 开源有两大优势&#xff0c;一是免费&#xff0c;二是适合折腾。 大量的开发者、爱好者投入无尽的热情&#xff0c;来推动Stable Diffsion的快速发展。 在图形界面方面&#xff0c;WebU…

Aria2 开发历程 (4) --使用RPC与 Aria2 进行通讯

结合这段时间搜集到到资料&#xff0c;比较理想的方案是通过RPC(websocket)来与运行时的Aria2&#xff08;必须是运作中&#xff09;进行通讯。 在配置文件和命令行都有RPC的相关配置&#xff1a; 例如:配置文件中的&#xff1a; ## RPC 设置 ### 启用 JSON-RPC/XML-RPC 服务…