线上学习嵌入式软件是否可靠???动动手指点进来便知。#C语言Linux系统编写代码

本文主要是介绍线上学习嵌入式软件是否可靠???动动手指点进来便知。#C语言Linux系统编写代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

线上学习嵌入式软件是否可靠???动动手指点进来便知。#C语言Linux系统编写代码

    • 前言
    • 1.Linux操作系统
      • 1.什么是Linux操作系统
      • 2.Linux系统与Windows系统异同点
      • 3.Linux操作系统分类
        • 1.发行版
        • 2.Linux操作系统内核
        • 3.IOS操作系统
        • 4.Android操作系统
      • 3.为什么要用Linux操作系统
    • 2.环境搭建
      • 1.学习时——虚拟机
      • 2.工作时——真机(公司的研发服务器)
    • 3.如何在Linux系统下编写C代码
      • 1.在Linux系统下编写代码工具VI
      • 2.C代码编译工具GCC
    • 4.Linux系统命令终端下的常用指令
    • 5.Linux和Windows文件共享
    • 6.Linux虚拟机网络配置
      • 1.Bridged(桥接模式)
      • 2.NAT(网络地址转换模式)
      • 3.Host-Only(仅主机模式)
    • 结束语

前言

  线上学习嵌入式软件是当下发展迅速且备受关注的学习方式。嵌入式软件作为一种应用广泛的技术领域,涉及到许多关键的工作,如系统设计、硬件和软件集成、调试和测试等。传统的学习方式可能受限于时间和地理位置等因素,但线上学习嵌入式软件却为学习者带来了更多的灵活性和便利性。通过在线课程、学习资源和交流平台,学习者能够自主安排学习时间,并与社群内的专业人士和同行进行交流和合作。尽管线上学习嵌入式软件也面临一些挑战,如实践环境的缺失和实时交互的限制,但随着技术的不断进步和线上学习平台的改进,越来越多的学习者选择线上学习来培养自己的嵌入式软件技能。在这篇文章中,我们将探讨线上学习嵌入式软件的优点、挑战以及如何充分利用线上学习资源来提升自己的技能和知识。
  一、自制力
  谈到自制力,可能会问,在线上学习如何提升自己的自制力。以下是一些提高自制力的方法:
  1.设定明确的目标:确保你知道你要学习的内容和想要达到的目标。将目标分解为具体的里程碑,这样你可以更容易跟踪自己的进度并保持动力。

  2.制定计划和时间表:制定一个详细的学习计划和时间表,包括每天的学习时间和内容。规划好时间,避免拖延和浪费时间的行为。

  3.创建良好的学习环境:为自己创造一个安静、整洁和舒适的学习环境。远离干扰,确保你可以专注于学习。

  4.使用时间管理技巧:学会有效地管理你的时间,使用番茄工作法或其他时间管理技巧,将学习时间划分为较短的间隔,每隔一段时间休息一下,让大脑得到放松。

  5.建立学习习惯:将学习纳入你的日常例行事项中,并坚持下去。通过每天保持一定的学习时间,建立起学习的习惯。

  6.寻找学习伙伴或学习群体:与其他有相同学习目标的人合作学习,可以互相激励和分享学习资源,共同进步。

  7.使用记笔记和总结:学习过程中记笔记和总结可以帮助你加深对知识的理解和记忆。这也是一种整理和巩固学习成果的方式。

  8.奖励自己:在完成学习任务或达到阶段目标后给自己一些小奖励,例如休息片刻、看一部电影或购买自己心仪的物品。这可以让学习过程更有成就感和积极性。

  9.保持积极的心态:相信自己的能力,并保持积极的心态。接受学习过程中的挑战和困难,并将其视为成长和提升的机会。

  10.寻求反馈和评估:向他人寻求反馈和评估,了解自己的学习进展和可能的改进方向。这可以帮助你更好地调整学习策略和方法。

  二、如何解决问题
  谈到线上学习嵌入软件技术,正在学习的小伙伴可能会问。如果遇到自己不能解决的问题咋办?以下我分享一下我在学习中遇到问题是如何解决的。
  1.遇到问题首选考虑百度,关键字很重要,比如:如何用C语言实现冒泡排序算法。你描述的问题一定要清晰,不然不能准确找到自己想要的答案。

  2.可以在各大视频平台搜索你遇到的问题,看看有没有作者分享。

  3.合理利用Chat GPT;这个AI是一个强大的搜索引擎,特别是代码这一块。不要偷懒用它给你写代码。一定要自己写,可以参考它的代码。最重要的一点还是搜索关键字,不然出现一些答案不是你自己想要的就很麻烦。

  4.购买线上答疑服务;这个取决于你自己是否报培训班,有些线上培训班有线上答疑服务。答疑效果看机构教师水平。

  5.注册一个CSDN博文网站,网站内有许多关于嵌入式的知识和问题解决方案。

  6.加入嵌入式学习社群,可以在里面讨论遇到的问题。

  三、如何选择学习资源
  学习资源无非是付费和免费两种:
  1.免费资源:首当其冲的就是哔哩哔哩视频网站,上面有许多学习资源。可以通过看评论和弹幕来判断好坏。但有些是培训机构的引流课程,内容有些许不足。其次是花小钱买课程的办法——神奇的“拼多多”。拼多多有许多成套课程售卖,价格在几十块。多数是用百度云分享的。所以百度云会员又是个问题。解决百度云限速的办法有两个:一、通过右后脚本下载可以破除限制,缺点是只能一个一个文件点击下载,很麻烦。二、通过转转二手交易平台租会员,一块到两块一天,一天的时间绝对能下载完。本人亲测一天下载500G资源可以解决。

  2.付费资源:付费资源千万别去买便宜的课程,因为便宜,我们很容易当成消费,不去重视。完课率很低,很容易放弃。买课要买老师讲课适合你的,所以要去问有没有体验课。体验一下他们的服务。看看讲课方式,配套服务适不适合你才决定购买。

  最后;如果还有关线上学习嵌入式的问题可以私聊我,或者评论哟。

1.Linux操作系统

1.什么是Linux操作系统

  Linux操作系统是一种开源的、基于Unix的操作系统。它最初由芬兰的计算机科学家Linus Torvalds在1991年创建,并且现在已经成为全球应用最广泛的操作系统之一。
  Linux操作系统被设计用于在各种计算机硬件架构上运行,包括个人计算机、服务器、移动设备和嵌入式系统。它具有稳定、安全、可靠和灵活的特点,并且可以根据用户的需求进行自定义和配置。
  Linux操作系统基于Unix的概念和原则,遵循分层结构和模块化设计,允许用户以多用户、多任务和多线程的方式运行程序。它提供了丰富的命令行工具和图形用户界面,使用户可以方便地进行文件管理、应用程序运行、网络通信等操作。
  Linux操作系统以开源软件的形式发布,这意味着用户可以自由地查看、修改和重新分发它的源代码。这种开放性促进了全球开发者社区的参与,使Linux得到了广泛的支持和改进,同时也衍生出了许多不同的Linux发行版,如Ubuntu、Fedora、Debian等。
  总的来说,Linux操作系统具有高度的灵活性、可定制性和可靠性,因此被广泛应用于个人和企业的各种场景中,包括服务器、超级计算机、移动设备和嵌入式系统等。

2.Linux系统与Windows系统异同点

  1.相同点
  都是多任务,多用户,多线程操作系统。
  2.不同点
  1.开源 vs 闭源:Linux操作系统是开源的,这意味着用户可以查看、修改和重新分发其源代码。而Windows操作系统是闭源的,只有微软公司可以访问和修改其源代码。

  2.软件兼容性:Windows系统在市场上拥有更大的用户群,因此有更多的商业软件和游戏支持。相比之下,Linux系统的软件兼容性较低,尤其是一些专有软件和游戏可能无法在Linux上运行。

  3.用户界面:Windows系统通常使用图形用户界面(GUI)作为主要的交互方式,用户可以通过鼠标点击和图标操作。Linux系统提供了多种用户界面选择,包括类似于Windows的桌面环境,也有更轻量级的界面供高级用户和服务器使用。

  4.文件系统:Linux系统使用一种称为"树状结构"的文件系统,所有的文件和目录都组织在一个单一的目录树中。而Windows系统使用一种称为"层次结构"的文件系统,每个磁盘驱动器都有自己的根目录。

  5.安全性:由于其开源特性,Linux系统在安全性方面通常被认为比Windows系统更强。Linux操作系统有严格的权限控制和用户隔离机制,更少受到恶意软件的攻击。

  6.安装和更新:Windows系统通常提供较为简单的安装和更新过程,而Linux系统在安装时可能需要进行更多的配置。不过,Linux系统的软件包管理器可以方便地进行软件更新和安装,使系统保持最新。

3.Linux操作系统分类

1.发行版

  1.ubuntu——乌班图操作系统。主要用于嵌入式开发
  2.Fedora——费多拉操作系统。早期嵌入式开发。
  3.centOS——社区企业操作系统。用于web服务器
  4.ArchLinux——拱门操作系统。用于满足高级用户和Linux爱好者的需求。
  5.红旗Linux操作系统。是中国自主开发的一种Linux发行版,主要用途如下:

  企业服务器和云计算。

  政府和公共部门。

  教育和科研机构。

  工业自动化和物联网。

  个人计算机和嵌入式系统。

  6.红帽Linux操作系统。主要用途如下:

  企业服务器。

  数据中心和云计算。

  安全和稳定性要求高的行业。

  虚拟化和容器化。

  开发环境和应用程序支持。

  7.Loki——洛基操作系统。主要用途如下:

  桌面操作系统。

  生产力工具.

  多媒体和娱乐。

  软件开发。

  轻量级和快速。

  8.Mint——薄荷操作系统。主要用途如下:

  桌面操作系统。

  上网和办公。

  多媒体和娱乐。

  软件管理。

  轻量级和高稳定性。

2.Linux操作系统内核

  1.什么是Linux操作系统内核。
  Linux操作系统内核是Linux操作系统的核心组件,它是操作系统的核心部分,负责管理计算机的硬件资源和提供系统服务。内核是操作系统与硬件之间的桥梁,它提供了一个抽象层,使得应用程序能够与硬件进行交互和通信。
  2.Linux操作系统内核的主要功能

  硬件管理

  进程管理

  文件系统管理

  内存管理

  网络通信

  3.Linux操作系统内核的主要用途
  Linux操作系统内核的主要用途是管理硬件资源、提供系统服务,并为其他应用程序和服务提供运行环境。它是整个操作系统的核心组件,为用户和开发者提供了丰富的功能和灵活的使用方式。

3.IOS操作系统
4.Android操作系统

3.为什么要用Linux操作系统

  因为免费开源,可以为所欲为。

2.环境搭建

1.学习时——虚拟机

  1.虚拟机分类
  VMware虚拟机
  VirtualBox虚拟机
  2.如何安装VMware虚拟机
  1.检查电脑是否开启CPU虚拟化——这步很重要,没有打开虚拟化虚拟机会出现安装失败,运行虚拟机会出现蓝屏等问题。
  下载软件LeoMoon CPU-V软件用于查看CPU是否开启虚拟化。如下图所示既是已经打开CPU虚拟化了
在这里插入图片描述
软件链接如下:
https://www.aliyundrive.com/s/hDdUoUk82EF
提取码: hg49
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。
  2.安装VMware虚拟机——这一步自行去看网上视频教学
  3.运行已配置好的ubuntu虚拟机
ubuntu虚拟机

2.工作时——真机(公司的研发服务器)

3.如何在Linux系统下编写C代码

1.在Linux系统下编写代码工具VI

  1.VI工具的两个模式
  一、命令模式——默认模式
  二、输入模式
  2.VI工具完整写C代码教程
  一、按快捷键Ctrl + alt + T 调出命令终端
命令终端窗口
  二、输入 VI + 新建C文件名字——实现进入VI工具
在这里插入图片描述
在这里插入图片描述
  三、输入 i 进入VI工具输入模式
在这里插入图片描述
  四、此时输入你要编写的C代码。例如以下代码

#include <stdio.c>int main()
{puts("hello");return 0;
}

在这里插入图片描述
  五、按ESC退出输入模式

在这里插入图片描述
  六、输入命令“:wq”退出并保存C文件

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

2.C代码编译工具GCC

  1.编译刚才的C文件——gcc tow.c :调用gcc编译工具编译tow.c文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  2.运行编译后产生的文件——./a.out :“./”运行可执行文件命令 “./a.out”运行可执行文件a

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

4.Linux系统命令终端下的常用指令

  1.按Ctrl + shift + “+”调大字体。
  2.按Ctrl + “-”缩小字体。
  3.拖动命令终端右下角实现调节窗口大小
  4.拖动命令终端右下角实现调节窗口大小
  5.按命令xrandr 调出系统支持设置的分辨率。
  6.按命令xrandr + ‘-s’ + 对应分辨率设置系统分辨率
  7.在命令终端内复制和粘贴的命令分别是:
  Ctrl + shift + C / Ctrl + shift + V
  Ctrl + ins / shift + ins

  8.命令 ls 列出当前文件夹下的所有可见文件 命令 ls -a 列出当前文件夹下所有文件
  9.按 ctrl + l 实现清屏
  10.命令 pwd 显示当前文件路径。
  11.命令 mkdir 创建文件夹。 mkdir + 对应文件夹名,建立对应文件夹。
  12.命令cd 打开文件夹。cd + 对应文件夹名打开对应文件夹。cd … 返回上一文件夹。cd 什么也不加回到工作目录;工作目录:/home/用户文件夹
  13.按tab键 自动补全 适用于文件名太长,一般敲前面几个字符,再按tab键就会补全
  14.命令 mv
  (1)移动 mv + 对应文件名 + 对应地址 即可完成移动;
  (2)重命名 mv + 初识名称 + 变更名称 即可完成重命名

  15.命令 cp 拷贝指令;cp a.txt b.txt 将文件a.txt的内容拷贝并新建文件b.txt中。
  16.命令cfconfig 查看网卡状态——IP地址
  17.修改网卡IP地址 sudo ifconfig eth0 192.168.1.88
  sudo      最高用户权限
  eth0       网卡名称
  192.168.1.88    IP地址

  此时要输入系统密码,而且IP地址是未占用的如何查看是否占用,可以用 命令 ping + IP地址。看到如图所示既是未使用的。已使用的可以也是如上命令。如图所示既是已使用的IP地址。

5.Linux和Windows文件共享

  1.安装VMware Tool
  通过拖拽和设置共享文件夹实现。
  2.samba
  3.ftp
  一、通过filezilla软件实现文件发送
  二、totalcommand
  三、cuteftp
  4.工作上
  一、gti
  二、马云
  三、svn

6.Linux虚拟机网络配置

1.Bridged(桥接模式)

  1.什么是VMware网络Bridged(桥接模式)

  VMware桥接模式(Bridged Mode)是一种网络连接模式,用于将虚拟机与物理网络之间建立直接的桥接连接。在桥接模式下,虚拟机的网络适配器会直接连接到物理网络中的一个网络接口,就像是连接了一个独立的物理设备。

  在VMware中,桥接模式允许虚拟机直接访问物理网络上的其他设备,并分配给虚拟机一个与物理网络相同的IP地址段。这样,虚拟机就可以在局域网中像一个独立的计算机一样工作,可以与其他计算机进行网络通信,包括访问局域网内的其他计算机、访问Internet等。

  使用桥接模式的主要好处是虚拟机能够直接与物理网络中的其他设备进行交互,实现了虚拟机和物理机之间的无缝通信。此外,桥接模式还可以使虚拟机获得与物理网络相同的网络性能,并享受物理网络上的功能,如DHCP自动分配IP地址等。

  需要注意的是,在桥接模式下,虚拟机的网络流量可以与物理网络中的其他设备共享同一个物理网络接口,因此虚拟机的网络活动可能对物理网络产生影响。同时,虚拟机使用桥接模式时,会与物理网络中的其他设备处于同一个广播域,需谨慎处理网络安全问题。

  总结来说,VMware桥接模式是一种将虚拟机连接到物理网络的网络连接模式,实现了虚拟机与物理机之间的无缝通信和网络互联。

  2.Bridged(桥接模式)特点

  一、每台虚拟机都能上网

  二、各台虚拟机可以相互通信

  三、每天虚拟机都要独立配置DNS域名服务器

2.NAT(网络地址转换模式)

  1.什么是VMware网络NAT(网络地址转换模式)

  VMware的网络地址转换模式(NAT,Network Address Translation)是一种网络连接模式,用于将虚拟机与主机系统之间建立网络连接,并将虚拟机的网络流量转换为主机系统的网络流量。

  在NAT模式下,虚拟机的网络适配器通过VMware虚拟网络中的虚拟网络设备进行连接,而不是直接连接到物理网络。当虚拟机发送网络请求时,虚拟网络设备会将其转发到主机系统上,并通过网络地址转换将虚拟机的私有IP地址映射为主机系统上的公共IP地址。反之,当主机系统接收到网络流量时,虚拟网络设备会将其转发给相应的虚拟机。

  通过NAT模式,虚拟机可以共享主机系统的网络连接,并利用主机系统的网络配置和资源访问外部网络,比如访问Internet等。NAT模式还提供了一定程度的网络安全性,因为虚拟机的网络流量经过了主机系统的网络地址转换,外部网络看不到虚拟机的私有IP地址,只能看到主机系统的公共IP地址。

  需要注意的是,由于NAT模式使用了网络地址转换,虚拟机的网络访问会受到一定的限制。例如,虚拟机无法从外部网络直接访问虚拟机,只能通过主机系统作为中介进行通信。此外,虚拟机的网络性能也可能受到影响,因为网络流量需要经过主机系统进行转发和转换。

  总结来说,VMware的NAT模式是一种将虚拟机与主机系统进行网络连接的方式,通过网络地址转换实现虚拟机与外部网络的通信,并共享主机系统的网络连接和资源。

  2.NAT(网络地址转换模式)特点

  一、每天虚拟机都能上网

  二、IP地址是假的

  三、单向通信——(虚拟机可以访问电脑真机,电脑真机不能访问虚拟机)

3.Host-Only(仅主机模式)

  1.什么是VMware网络Host-Only(仅主机模式)

  VMware的Host-Only模式(仅主机模式)是一种网络连接模式,用于在虚拟机和主机系统之间建立专用的私有网络连接。

  在Host-Only模式下,虚拟机的网络适配器会连接到一个虚拟的虚拟网络设备,该设备与主机系统之间建立一个私有网络。这个私有网络只能被主机系统和虚拟机访问,对于外部网络是不可见的。

  在Host-Only模式下,虚拟机之间和虚拟机与主机系统之间可以通过私有网络进行通信,而无法直接访问物理网络或Internet。这种模式适用于一些需要保护虚拟机免受外部网络攻击或需要进行内部网络测试的场景。

  使用Host-Only模式,可以创建一个受限制的网络环境,只允许主机系统和虚拟机之间的通信,以提供更高的安全性和隔离性。虚拟机可以通过主机系统作为网关来访问外部网络,并可以与其他虚拟机或主机系统进行网络通信。

  需要注意的是,Host-Only模式下的虚拟机之间和虚拟机与主机系统之间的通信是受限制的,无法直接与外部网络通信。如果需要虚拟机与外部网络进行通信,可以考虑使用NAT模式或桥接模式。

  总结来说,VMware的Host-Only模式是一种建立虚拟机和主机系统之间专用的私有网络连接的网络连接模式,提供了高度的安全性和隔离性,适用于需要保护虚拟机免受外部网络攻击或进行内部网络测试的场景。

  2.Host-Only(仅主机模式)特点
  在NAT模式下不能连接外网

结束语

  很高兴你能看到这里。Linux系统下的编写C代码和平时的不一样,可能会不习惯。我们可以从一开始就用一个软件专门写代码,用电脑自带的命令提示符内配置一个GCC编译器来编译C代码,这样转Linux比较快。

这篇关于线上学习嵌入式软件是否可靠???动动手指点进来便知。#C语言Linux系统编写代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/332689

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;