Clion 远程连接配置
CLion是JetBrains开发的一个强大的集成开发环境(IDE),专门用于C和C++的开发,并且适用于各种规模和类型的项目。它提供了许多有用的功能和工具,以提高开发者的效率和开发质量。
下面为大家详细介绍如何基于Clion进行基于远程服务器的项目开发。
1. 配置工具链打开Clion并创建一个新的项目,然后打开项目的属性对话框窗口:
在右侧的列表框中找到构建、执行、部署 -> 工具链选项,如下图:
点击右侧窗口左上角的+按钮,弹出下拉菜单,选则要添加哪种类型的工具链,通过不同的选项就可以配置不同的工具链,以供编译程序的时候使用。
如果是新安装的Clion IDE是不能够直接使用,也需要按照上述方式先进行工具链的配置。
如果使用MinGW编译添加需要自己先去下载,部署到Windows之后才能进行选择
如果使用Visual Studio的编译套件,需要先安装VS
如果使用远程主机的编译套件,需要进行下面的配置。
1.1 添加远程主机如果要连接的是远程云服务器或者虚拟机需要选择远程主机选项,可以看到如下窗口并填写相应是信息。
在默认情况下肯定是没有配置过任何ssh连接的 ...
预处理
1. 程序编译的四个阶段C程序的编译过程包含了四个主要阶段,它们是:
预处理(Preprocessing):在这个阶段,预处理器会处理源代码中的预处理指令,包括宏展开、文件包含、条件编译等。
编译(Compilation):在编译阶段,编译器将预处理后的代码转换为汇编语言或机器语言。
汇编(Assembly):在汇编阶段,汇编器将目标代码转换为可重定位目标文件(Object File)。
链接(Linking):在链接阶段,链接器将可重定位目标文件和库文件进行链接,生成最终的可执行文件。
这四个阶段通常顺序进行,每个阶段都有各自的工具和处理过程。整个编译过程将源代码转换为可以在特定平台上运行的可执行文件。
在C程序的预处理阶段,主要有以下几个任务:
宏替换:预处理器会根据#define指令定义的宏,将源代码中的宏标识符替换为相应的宏定义文本。这个过程称为宏替换或宏展开。宏替换可以用来简化代码、增加可读性,以及定义常量或函数宏等。
头文件展开:预处理器会根据#include指令将指定的头文件内容插入到源代码中。头文件中通常包含了函数原型、宏定义、结构体声明等,这样可以将 ...
函数
1. 函数概述1.1 函数的分类C语言是一种通用的高级编程语言,拥有丰富的函数库和强大的系统编程能力。在C语言中,函数是模块化和可重用的代码段,用于实现特定的功能。函数将一系列的语句组织在一起,可以接受输入参数并返回值。
函数的定义包括函数名、参数列表、返回类型和函数体:
函数名是唯一的标识符,用于调用函数。
参数列表指定了函数接受的参数,可以是任意数量和类型的参数。
返回类型指定了函数返回值的类型,可以是基本数据类型、指针类型或结构体类型。
函数体是实现具体功能的语句块。
C语言中的函数可以分为以下几类:
标准库函数(Standard Library Functions):C语言提供了很多常用的函数,如输入输出函数(如scanf和printf)、字符串处理函数(如strcpy和strlen)、数学库函数(如sqrt和sin)等。这些函数被包含在标准库中,可以直接调用。
用户自定义函数(User-defined Functions):在程序中,我们可以自定义函数,通过函数名调用并执行特定的功能。用户自定义函数可以接受参数并返回值,可以将程序分解成多个函数,提高代码的模块化和可读 ...
数组
1. 数组概述在C语言中,数组是一种存储多个相同类型元素的数据结构。数组在内存中是连续存储数据的,通过索引访问和操作数组中的元素。
在C语言中,数组使用一个中括号来描述其固定的容量,格式如下:
1数据类型 变量名[数组大小];
按数组元素类型的不同,可分为:数值数组、字符数组、指针数组、结构数组等类别。
123int a[10]; // 数值数组, 可以存储 10 个整形数值char s[24]; // 字符数组, 可以存储 24 个字符char *p[5]; // 指针数组, 可以存储 10 个 char* 类型的指针(地址)
通常情况下,数组元素下标的个数也称为维数,根据维数的不同,可将数组分为一维数组、二维数组、三维数组、四维数组等。通常情况下,我们将二维及以上的数组称为多维数组。
2. 一维数组2.1 定义和使用想要定义一个一维数组,有以下几个知识点需要我们注意:
数组名字符合标识符的书写规定(数字、英文字母、下划线)
数组名不能与其它变量名相同,同一作用域内是唯一的
方括号[]中常量表达式表示数组元素的个数
int a[3] 表示数组 ...
流程控制
1. 流程结构概述程序流程结构是指编程中用于组织和控制代码执行顺序的结构。通过流程结构,可以按照特定的逻辑和条件来控制代码的执行路径,从而实现不同的功能和逻辑控制。以下是常见的程序流程结构:
顺序结构(Sequence Structure):按照代码编写顺序从上到下一行接一行地依次执行。
1234567891011#include <stdio.h>#include <stdbool.h>int main(){ bool flag = true; flag = !flag; printf("flag = %d\n", flag); flag = !flag; printf("flag = %d\n", flag); return 0;}
通过上面的示例代码可以看到,顺序结构的逻辑非常简单,下文就不再进行赘述。
选择结构(Selection/Decision Structure):根据给定的条件选择性地执行不同的代码块。
循环结构(Iteration/Loop Structure):循环执行一段代 ...
表达式
1. 表达式表达式(expression)由运算符和运算对象组成(运算对象是运算符操作的对象)。最简单的表达式是一个单独的运算对象,以此为基础可以建立复杂的表达式。下面是一些表达式:
1234567250-912 + 24a * (b + c) / d + 100num = 4 * 5x = ++y * 3 % 5r > 5
由此可见,运算对象可以是常量、变量或二者的组合。一些表达式由子表达式(subexpression)组成(子表达式即较小的表达式)。例如:b+c 是上面例子中a * (b + c) / d + 100的子表达式。
C 表达式的一个最重要的特性是,每个表达式都有一个值。要获得这个值,必须根据运算符优先级规定的顺序来执行操作。
在上面我们列出的表达式中,前几个都很清晰明了。但是,有赋值运算符(=)的表达式的值是什么?这些表达式的值与赋值运算符左侧变量的值相同。
表达式num = 4 * 5作为一个整体的值是20。
表达式r > 5这种关系表达式的值不是0就是1
如果条件为真,表达式的值为1
如果条件为假,表达式的值为0
下表中列出了一些表达式及其值 ...
运算符
熟悉了如何表示数据之后,接下来我们学习如何处理数据。C 语言为处理数据提供了大量的操作,可以在程序中进行算术运算、比较值的大小、修改变量、逻辑地组合关系等。下面先为大家数量一下C语言中常用的运算符分类:
运算符类型
作用
算术运算符
用于处理四则运算
赋值运算符
用于将表达式的值赋给变量
比较运算符
用于表达式的比较,并返回一个真值或假值
逻辑运算符
用于根据表达式的值返回真值或假值
位运算符
用于处理数据的位运算
sizeof 运算符
用于求字节数长度
1. 算术运算符下表中为大家列出了C语言中先关的算法运算符,其使用方法也很简单:
运算符
术语
示例
结果
+
正号
+3
3
-
负号
-3
-3
+
加
10 + 5
15
-
减
10 - 5
5
*
乘
10 * 5
50
/
除
10 / 5
2
%
取模(取余)
10 % 3
1
++
前自增
a=2; b=++a;
a=3; b=3;
++
后自增
a=2; b=a++;
a=3; b=2;
--
前自减
a=2; b=–a;
a=1; ...
数据类型
1. 数据类型1.1 整型和数学的概念一样,在C语言中,整数是没有小数部分的数。计算机以二进制数字储存整数,例如,整数 7 以二进制写是 111。因此,要在8位字节中储存该数字,需要把前 5 位都设置成 0,后 3 位设置成 1。
1.1.1 整形家族关于变量的定义方式前面已经详细讲过了,把具体的数据类型放到变量名前面即可,关于整形其实是一个很宽泛的概念,我们还可以再次进行细分,如下表:
数据类型
占用空间
short(有符号短整型)
2字节
int(有符号整形)
4字节
long(有符号长整形)
Windows 为 4 字节,Linux 为 4 字节(32位),8字节(64位)
long long(有符号长长整形)
8字节
unsigned short(无符号短整型)
2字节
unsigned int(无符号整形)
4字节
unsigned long(无符号长整形)
同 long 类型
unsigned long long(无符号长长整形)
8字节
C语言提供 3个附属关键字修饰基本整数类型:short、long和unsigned。我们应 ...
进制、原码、补码、反码
1. 进制进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制,比如 X 进制,就表示某一位置上的数运算时是逢 X 进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x 进制就是逢 x 进位。
十进制
二进制
八进制
十六进制
0
0
0
0
1
1
1
1
2
10
2
2
3
11
3
3
4
100
4
4
5
101
5
5
6
110
6
6
7
111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A/a
11
1011
13
B/b
12
1100
14
C/c
13
1101
15
D/d
14
1110
16
E/e
15
1111
17
F/f
16
10000
20
10
1.1 二进制 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是 逢二进一,借位规则是借一当二。
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。
术语 ...
常量和变量
1. 常量和变量概述所谓常量就是在程序运行过程中,其值不能被改变的量,在C语言中,常量有很多种不同的类型,如下表:
常量类型
示例
整型常量
100,200,-100,0
浮点型常量
3.14 , 0.125,-3.123
字符型常量
‘a’,‘b’,‘1’,‘\n’
字符串常量
“a”,“ab”,“12356”
变量(variable)可以理解成一块内存区域的名字。通过变量名,可以引用这块内存区域,获取里面存储的值。由于值可能发生变化,所以称为变量,否则就是常量了。
接下来一节我们来学习一下如何去定义一个变量名。
2. 变量名变量名在 C 语言里面属于标识符(identifier),命名有严格的规范。
只能由字母(包括大写和小写)、数字和下划线(_)组成。
标识符中字母区分大小写。
不能以数字开头。
第一个字符必须为字母或下划线。
标识符不能是关键字。
长度不能超过63个字符。
下面是一些无效变量名的例子:
12345672bdog // 不能数字开头$American // 不能用_或者字母以外的字符开头// 标识 ...