首页 > 编程语言 >准大一萌新学习C/C++的第二天:扩展:Fitten Code的学习使用和快捷键的的学习了解

准大一萌新学习C/C++的第二天:扩展:Fitten Code的学习使用和快捷键的的学习了解

时间:2024-07-07 12:01:51浏览次数:15  
标签:Code 头文件 函数 Ctrl 代码 快捷键 学习 main 定义

1.fittencode:一款功能丰富的AI助手(在扩展中下载)

1.1.智能补全代码:在输入一串代码后会跳出自动补全的代码,tab键可以接受补全.

如果只想接受单个单词ctrl+→可只接受单个补全

1.2.AI解释代码:ctrl+alt+c或者点击此键

当用户选中代码段再进行对话时,Fitten Code 会自动引用用户所选中的代码段,此时可直接针对该代码段进行问询等操作:

1.3.AI写代码:按此即可AI生成所需代码

1.4.AI转换代码:右键下翻找到fittencode edit即可转换此代码为其他语言代码

1.5.AI生成注释:右键下翻找到fittencode document 即可Ai自动生成注释

生成后点击apply即可应用

1.6.Ai寻找bug:右键选中代码找到find bug即帮助寻找bug

1.7.AI代码测试:fittencode generate unittest即可

2.常用的快捷键(鄙人常用)

Run code(快速运行代码):Ctrl + Alt + N

打开命令面板:Ctrl + Shift + P
保存文件:Ctrl + S(可以在常用设置里设置自动保存会方便很多)
撤销:Ctrl + Z
重做:Ctrl + Y 或 Ctrl + Shift + Z
复制:Ctrl + C
粘贴:Ctrl + V
剪切:Ctrl + X
全选:Ctrl + A
查找:Ctrl + F
替换:Ctrl + H
打开新窗口:Ctrl + Shift + N
关闭当前窗口:Ctrl + W
切换侧边栏可见性:Ctrl + B
切换终端:Ctrl + `
调试:F5
注释代码单行:Ctrl + /://;注释多行:Shift + Alt + A
缩进代码:Ctrl + ]
反缩进代码:Ctrl + [
切换全屏模式:F11
切换编辑器布局:Ctrl + 1(左侧编辑器)、Ctrl + 2(右侧编辑器)、Ctrl + 3(下方编辑器)

3.C程序结构初识

以最简单的hello world为例

C语言主要包括:预处理器指令,函数,变量,语句 & 表达式,注释(依次讲解)

3.1预处理器指令

程序的第一行 #include  就是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。

对这些名词的解释如下:

3.1.1.预处理器:

程序源文件被编译前根据预处理指令对程序源文件进行处理的程序

3.1.2.预处理器指令:

通常在源代码编译前进行处理,可以在编译阶段进行文本替换,条件编译等操作,从而对源代码进行一些宏定义,条件编译等操作,通常以#开头,末尾无分号

3.1.2.1.宏:

一种批量计算的称谓,计算机里面的宏是一种抽象的规则或者模式,用于说明某一特定输入(通常是字符串)如何根据定义的规则转化为相应的输出(通常也是字符串)。在编译是,预处理器会对宏进行展开,即将宏的内容替换到宏所在位置。

如一下使用宏的例子:

#include<stdio.h>
//定义一个宏,用于计算两个数的和
#define ADD(a,b) (a+b)

此时定义了一个宏,用于计算两个数的和,此时再在main中调用ADD

int main(){
    int a=10,b=20;
    int c=ADD(a,b);
    printf("The sum of %d and %d is %d",a,b,c);
    return 0;
}

此时即可以算出a和b的和(如下)

3.1.2.2常用的预处理器指令:

1.#define:用于定义宏,可以将一些常量或者代码片段定义为宏,在编译时会进行文本替换。
2.#include:用于包含头文件,将指定的头文件内容插入到当前位置。可以用于引入其他源代码文                      件或者库文件的声明和定义。
3.#ifdef / #ifndef:条件编译指令,用于根据条件判断是否编译某段代码。通过判断某个宏是否已                                 经定义,可以实现条件编译。
4.#if / #elif / #else / #endif:条件编译指令,可以根据表达式的结果决定是否编译某段代码。
5.#undef:用于取消定义的宏。
6.#pragma:用于向编译器发送特定的指令或者设置。不同编译器支持的pragma指令可能不同。

3.2.头文件:(例:<stdio.h>)

1.头文件的定义:特殊的文件,通常包含函数和变量声明,宏定义,类型定义,全局变量声明等信息。其主要为了方便管理和重用代码,它可以被多个源文件共享,从而实现代码的重用和模块化。

2.头文件通常使用扩展名.h(C语言).hpp(C++语言)并通过#include指令将其包含在源代码中。

3.<>表示系统提供的头文件,编译器将从系统默认路径查找该文件,而""表示用户自定义的头文件,编译器将从当前源文件所在开始查找该文件。

4.头文件通常包括:

(1)函数和变量的声明:头文件通常包含函数和变量的声明,以便在编译时可以让编译器知道它           们的存在和类型。这些函数和变量的定义通常在其他源文件中,编译器会将它们与头文件中           的声明进行链接。

(2)宏定义:头文件可能包含一些宏定义,这些宏可以用于简化代码,提高代码可读性和可维护           性。

(3)类型定义:头文件可能包含自定义的数据类型定义,这些类型可以在整个程序中使用。

(4)内联函数定义:头文件可能包含内联函数的定义,这些函数通常在头文件中定义,因为它们           需要在编译时进行展开。

(5)模板定义:头文件可能包含模板的定义,这些模板可以用于实现泛型编程。

(6)全局变量声明:头文件可能包含全局变量的声明,以便在其他源文件中使用。

总之,头文件是一种重要的编程工具,可以帮助开发者组织代码,提高代码的可读性、可维护性和重用性。

5.常用的头文件:

(1)stdio.h:提供标准输入输出函数,如printf、scanf、puts、gets等。(因为头文件有printf和               scanf函数,如果不写头文件连输入和输出都做不到)。

(2)stdlib.h:提供内存管理函数,如malloc、calloc、realloc、free等。

(3)string.h:提供字符串处理函数,如strcpy、strcat、strlen、strcmp等。

(4)math.h:提供数学计算函数,如sin、cos、sqrt、pow等。

(5)time.h:提供时间和日期函数,如time、localtime、strftime等。

(6)ctype.h:提供字符处理函数,如isalnum、isalpha、isdigit、toupper、tolower等。

(7)assert.h:提供断言宏定义,如assert。

(8)stdbool.h:提供布尔类型和常量,如bool、true、false。

(9)limits.h:提供基本数据类型的最大值和最小值常量,如INT_MAX、INT_MIN、                               CHAR_MAX、CHAR_MIN等。

(10)errno.h:提供错误代码常量和函数,如errno、perror、strerror等

3.3.函数

hello world中main即是主函数,而了解函数前要先了解数据类型int:

3.3.1.数据类型

整形(int)

   int是integer的缩写,通常表示整数,可用signed,unsigned,long,short,修饰,

   (1)signed:有符号整数,用于表示这个数据正负,在前面加+,-,表示

   (2)unsigned:无符号整数,即只能表示正数

   (3)long:长整形数据,表示比较长的数据(比int更长)

   (4)short:较短数据,在内存只占4个字节

   范围:数据占n个字节,那么无符号整数的取值范围是2^(n*8)-1

3.3.2main函数

主要是起点(程序的入口点),控制台(控制中心),执行流程(程序执行流程,控制权的传递),生命周期管理(初始化和清理,异常处理)

1.程序的入口点: main 函数是程序的第一个被执行的函数。当程序启动时,控制权首先传递到 main 函数,从这里开始执行程序的逻辑。

2.控制中心: main 函数充当程序的控制中心,决定了程序的整体流程。在 main 函数中,你可以定义程序的初始化、主逻辑和清理等步骤。

3.程序执行流程: 一旦程序启动,执行流程从 main 函数的入口处开始。在 main 函数内,程序将按照编写的逻辑顺序执行。

4.控制权的传递: 在 main 函数中调用其他函数,控制权可能会传递到这些函数。但始终要记住,程序的执行始于 main 函数,其他函数只是在其内被调用。

5.初始化和清理: main 函数通常用于执行程序的初始化操作,为后续的逻辑准备必要的资源。同样,程序执行结束时,main函数也负责清理已分配的资源,确保程序正常退出。

6.异常处理: 如果程序发生异常或错误,main函数也是处理这些情况的地方。通过适当的错误处理机制,可以确保程序在面对异常情况时能够以合理的方式终止或恢复。

举例如下:

int main()
 {
    // 初始化步骤
    setup();

    // 主程序逻辑
    process_data();

    // 清理步骤
    cleanup();

    return 0; // 返回值表示程序执行成功
}

此处,main函数负责调用setup()进行初始化,然后执行process_data()进行主程序,然后调用cleanup()进行清理

3.3.3return 0

用于终止main函数,主要表示程序正常结束,返回值通常为0被约定为程序执行成功,其他非零值通常表示程序发生了错误

3.4.注释

在上面的hello world中

1./*...*/ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。可同时按住Ctrl+alt+a  快捷注释(多行注释)

2./…/为单行注释,可同时按住Ctrl+/  快捷注释

标签:Code,头文件,函数,Ctrl,代码,快捷键,学习,main,定义
From: https://blog.csdn.net/2401_86009609/article/details/140235510

相关文章

  • 准大一萌新学习C/C++的第一天:搭建C/C++环境
    1.1.下载minGW1.官网下载地址(下载非常慢不推荐):http://gcc.gnu.org/install/官网镜像站:NJUMirror 2.sourceforge下载网址(有时候进不去。推荐离线下载,一键直达下载):MinGW-w64-for32and64bitWindows-BrowseFilesatSourceForge.netsourceforge镜像站:Downloadgeo......
  • 【机器学习】机器学习重塑广告营销:精准触达,高效转化的未来之路
    ......
  • Prompt Selection and Augmentation for Few Examples Code Generation in Large Lang
    本文是LLM系列文章,针对《PromptSelectionandAugmentationforFewExamplesCodeGenerationinLargeLanguageModelanditsApplicationinRoboticsControl》的翻译。大语言模型中少数示例代码生成的提示选择与增强及其在机器人控制中的应用摘要1引言2相......
  • 前端学习-flutter学习-003-Widget 简介
    学习链接什么是widget描述UI元素的配置信息Widget类本身是一个抽象类,其中最核心的就是定义了createElement()接口,在Flutter开发中,我们一般都不用直接继承Widget类来实现一个新组件,相反,我们通常会通过继承StatelessWidget或StatefulWidget来间接继承widget类来实现。Stateless......
  • 深度学习1
    1.支持向量机SupportVectorMachine(SVM)是一种对数据二分类的线性分类器,目的是寻找一个超平面对样本进行分割,广泛应用人像识别,手写数字识别,生物信息识别。二维空间分割界是一条直线,在三维空间是一个平面,在本文中为了方便起见,把二维空间也称为超平面。2.SVM求解是一个含有不......
  • 深度学习3 基于规则的决策树模型
    1.决策树是一种归纳学习算法,从一些没有规则、没有顺序、杂乱无章的数据中,推理出决 策模型。不管是什么算法的决策树,都是一种对实例进行分类的树形结构。决策树有三个要素:节点(Node)、分支(Branches)和结果(Leaf)。训练决策树,其实就是对训练样本的分析,把样本通过某个边界划分......
  • Vscode连接虚拟机报错
    Vscode连接虚拟机报错问题解决问题解释Permissiondenied,pleasetryagain.出现这个问题通常表示身份验证失败。可能的原因有SSH用户密码错误SSH端口非默认SSH配置文件问题虚拟机SSH服务问题:可能SSH服务没有正常启动或防火墙阻止了SSH连接ip地址错误问题分析重新检......
  • 机器学习主要研究方向
    国际期刊InternationalJournalofComplexityinAppliedScienceandTechnology,收录进化计算,机器学习和大数据方面的论文,投稿网址:https://www.inderscience.com/jhome.php?jcode=ijcast机器学习(MachineLearning)是人工智能的一个重要分支,通过从数据中学习模型,实现对未知......
  • 昇思25天学习打卡营第19天|LSTM+CRF序列标注
    概述序列标注指给定输入序列,给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取,包括分词(WordSegmentation)、词性标注(PositionTagging)、命名实体识别(NamedEntityRecognition,NER)等。条件随机场(CRF)对序列进行标注,实际上是对序列中每......
  • STL学习——栈,队列,set,优先队列
    栈:stack容器内元素的访问​由于栈(stack)本身就是一种后进先出的数据结构。在STL中stack中只能通过top()来访问栈顶元素栈上的基本操作栈的基本操作包括:函数名用途push(x)将x入栈top()获得栈顶元素pop()用以弹出栈顶元素empty()可以检测stack内是否为空,返回true为空,返回fa......