C语言初始:数据类型和变量
、
一.数据类型介绍
人有黄人白人黑人,那么数据呢?
我们大家可以看出谁是黄种人,谁是白种人,谁是黑种人,这是因为他们是类似的。
数据也是有类型的,就譬如整数类型,字符类型,浮点型类型。
每种类型也都是能够抽象出共同特征的,编译器也是只有知道了数据的类型才能操作数据。
我们在本文中将学习整数类型,字符类型,浮点型类型,布尔型。
在C语言中,数据类型决定了变量在内存中存储的方式以及可以进行的操作。本文将简要介绍C语言中常见的数据类型,包括字符型、整型、浮点型和布尔类型,并在示例中详细解释其使用原因。
1.sizeof()操作符
1. 1用法
**sizeof()**
可以用于以下几种情况:
-
基本数据类型:获取基本数据类型的大小,如
int
、char
、float
等。 -
用户自定义类型:获取结构体、联合体和枚举等自定义数据类型的大小。
-
数组:获取整个数组的大小,而不仅仅是指针的大小。
-
变量:获取已声明变量的大小。
使用
对类型的使用:
sizeof(type)
其中 type
可以是任何有效的数据类型,比如 int
、float
、struct
等。
-
对变量的使用:
sizeof(variable)
其中
variable
是已声明的变量。
sizeof 运算符的返回值,C语⾔只规定是⽆符号整数,并没有规定具体的类型,⽽是留给
系统⾃⼰去决定, sizeof 到底返回什么类型。不同的系统中,返回值的类型有可能是
unsigned int ,也有可能是 unsigned long ,甚⾄是 unsigned long long ,
对应的 printf() 占位符分别是 %u 、 %lu 和 %llu 。这样不利于程序的可移植性。
C语⾔提供了⼀个解决⽅法,创造了⼀个类型别名 size_t ,⽤来统⼀表⽰ sizeof 的返
回值类型。对应当前系统的 sizeof 的返回值类型,可能是 unsigned int ,也可能是
unsigned long long
2. 字符型
字符型用于表示单个字符,通常占用1个字节。C语言中有三种字符类型:
char
:表示字符类型。[signed] char
:有符号字符类型,默认情况下char
是有符号的,范围通常为 -128 到 127。unsigned char
:无符号字符类型,范围通常为 0 到 255。
示例:
char c = 'A'; // 'A' 是单个字符,存储在1个字节中,ASCII值为65。
signed char sc = -1; // 使用有符号字符类型,允许负值。此时 -1 会被存储为 2的补码形式。
unsigned char uc = 255; // 无符号字符,表示 0-255 的正值,255 是最大值。
解释:char
默认是有符号类型,因此我们可以使用 [signed] char
来明确表示有符号或 unsigned char
来表示无符号字符,确保不出现负数溢出。
3. 整型
整型用于表示整数,包括短整型、整型、长整型等多种规格。以下是整型的具体类型:
- 短整型:
short
:表示较小范围的整数,通常占用 2 个字节。[signed] short
:有符号短整型,允许存储负数。- `unsigned short :无符号短整型,范围扩展至 0 到 65535。
- 整型:
int
:默认的整型,通常占用 4 个字节。[signed] int
:有符号整型,默认范围为 -2147483648 到 2147483647。unsigned int
:无符号整型,范围为 0 到 4294967295。
- 长整型:
long [int]
:比标准整型更大,通常占用 8 个字节(具体实现可能不同)。[signed] long [int]
:有符号长整型。unsigned long [int]
:无符号长整型。
- 更长的整型(C99引入):
long long [int]
:表示非常大的整数,通常占用 8 个字节。[signed] long long [int]
:有符号长长整型。unsigned long long [int]
:无符号长长整型。
示例:
short s = 32767; // 最大的有符号短整型数值,short 通常占 2 字节。
unsigned int ui = 4294967295; // 最大的无符号整型值,unsigned int 扩展了范围到 0-4294967295。
long long ll = 9223372036854775807; // long long 是 C99 引入的类型,用于存储极大的整数。
解释:根据具体的需求选择合适的整型类型。例如在资源有限的嵌入式系统中,短整型可能用于节省内存,而 long long
适合需要表示极大数的应用场景。
4. 浮点型
浮点型用于表示小数或科学计数法表示的数值。C语言提供了三种浮点类型:
float
:单精度浮点数,通常占用 4 字节,精度较低。double
:双精度浮点数,通常占用 8 字节,精度较高。long double
:扩展精度浮点数,占用更多的字节,依赖于具体实现。
示例:
float f = 3.14f; // 'f' 后缀强制将常量 3.14 视为 float 类型,否则它会被视为 double 类型。lf为long float
double d = 3.141592653589793; // 双精度浮点数,提供了更高的精度,适合科学计算。
long double ld = 3.14159265358979323846L; // 'L' 后缀表示 long double 类型,精度比 double 更高。
解释:C语言默认将小数视为 double
类型,因此对于 float
类型的变量,必须在常量后加上 f
后缀。对于需要极高精度的场合,例如高精度的科学计算,可以使用 long double
类型。
5. 布尔类型
在早期的C语言中,并没有专门的布尔类型,通常使用整数来表示真假:0 表示假,非零表示真。
从C99标准开始,C语言引入了专门的布尔类型,名为 _Bool
。为了使代码更加可读,C99还引入了 <stdbool.h>
头文件,它定义了 bool
、true
和 false
这几个宏,便于程序员使用。
示例:
#include <stdbool.h>
#define true 1
#define false 0
bool b = true; // 使用 C99 的布尔类型 _Bool,true 表示 1。
bool flag = false; // 使用 <stdbool.h> 定义的 bool 类型,false 表示 0。
解释:虽然布尔类型的本质是整数(0 或 1),但使用 bool
和 true/false
使代码更具可读性,尤其在逻辑判断中。
unsigned和signed
有符号数和无符号数表示的数字总量是相同的,但有符号数可以表达负数,而无符号数只能表示非负整数,因此它们的数值范围不同。
下图:
**
6.数据类型大小
#include <stdio.h>
int main()
{
printf("%zd\n", sizeof(char));
printf("%zd\n", sizeof(_Bool));
printf("%zd\n", sizeof(short));
printf("%zd\n", sizeof(int));
printf("%zd\n", sizeof(long));
printf("%zd\n", sizeof(long long));
printf("%zd\n", sizeof(float));
printf("%zd\n", sizeof(double));
printf("%zd\n", sizeof(long double));
return 0;
}
数据类型的取值范围
在C语言中,有多种整型数据类型,如 short、int、long 和 long long。为什么会有这么多不同的类型呢?其实,每种数据类型都有自己的取值范围,也就是能够存储的数值的最大值和最小值。通过提供丰富的数据类型,程序员可以根据具体场景选择最合适的类型,从而优化内存使用和性能。
如果我们需要查看某种数据类型在当前系统上的极限值,可以通过头文件 limits.h 和 float.h 来查阅。这些头文件定义了各种整数和浮点类型的取值范围。为了保证代码的可移植性,建议使用这些文件中定义的常量来获取不同数据类型的极限值。
常见的极限值常量如下:
SCHAR_MIN 和 SCHAR_MAX:signed char 的最小值和最大值。
**SHRT_MIN 和 SHRT_MAX:**short 的最小值和最大值。
**INT_MIN 和 INT_MAX:**int 的最小值和最大值。
**LONG_MIN 和 LONG_MAX:**long 的最小值和最大值。
**LLONG_MIN 和 LLONG_MAX:**long long 的最小值和最大值。
**UCHAR_MAX:**unsigned char 的最大值。
**USHRT_MAX:**unsigned short 的最大值。
**UINT_MAX:**unsigned int 的最大值。
**ULONG_MAX:**unsigned long 的最大值。
**ULLONG_MAX:**unsigned long long 的最大值。
二.变量
2.1 变量的创建
变量是可以存储数据的名字,类型用于确定变量可以存储的数据种类。变量的语法是:
数据类型 变量名;
例如:
int age; // 整型变量
char ch; // 字符变量
double weight; // 浮点型变量
变量在声明时可以赋初值,这称为初始化,例如:
int age = 18;
char ch = 'w';
double weight = 48.0;
4.2 变量的分类
- 全局变量:定义在main函数
{}
外部,作用范围全局可见,整个程序都可以访问。 - 局部变量:定义在函数
{}
内部,只能在当前函数或代码块中使用。
示例:
#include <stdio.h>
int global = 2023; // 全局变量
int main() {int local = 2018; // 局部变量printf("%d\n", local);printf("%d\n", global);return 0;
}
注意:当全局变量与局部变量同名时,局部变量优先。(就近原则)
5. 算术运算符
常见的算术运算符包括:+
(加),-
(减),*
(乘),/
(除),%
(取模)。这些操作符在运算时遵循左到右的运算顺序。
5.1 加法与减法
int x = 4 + 22; // x = 26
int y = 61 - 23; // y = 38
5.2 乘法
int num = 5;
printf("%d\n", num * num); // 输出 25
5.3 除法
整数除法只保留整数部分:
float x = 6 / 4; // 1.000000
int y = 6 / 4; // 1
当至少有一个操作数为浮点数时,进行浮点除法:
float x = 6.0 / 4; // 输出 1.500000
5.4 取模运算
取模运算 %
返回两数相除的余数,适用于整数:
int x = 6 % 4; // 输出 2
负数取模时,结果的正负号取决于第一个操作数:
printf("%d\n", 11 % -5); // 1
printf("%d\n", -11 % 5); // -1
- ps:被操作符操作的数称为操作数。
6. 赋值运算符
=
是基本的赋值运算符,此外还有复合赋值运算符,如:+=
, -=
, *=
, /=
, %=
。
例如:
int a = 10;
a += 3; // 相当于 a = a + 3
a -= 2; // 相当于 a = a - 2
赋值操作符也可以连续赋值,如:
int a = 3;
int b = 5;
int c = 0;
c = b = a+3;//连续赋值,从右向左依次赋值的。 相关知识点:操作符优先级
C语⾔虽然⽀持这种连续赋值,但是写出的代码不容易理解,建议还是拆开来写,这样⽅便在调试中观察代码的执⾏细节。
int a = 3;
int b = 5;
int c = 0;
b = a+3;
c = b;
7. 单目运算符
单目运算符只有一个操作数,如 ++
(自增),--
(自减),正号+
,负号-
。
7.1 自增与自减
前置自增/自减:先执行加/减操作,再使用该值。
int a = 10;
int b = ++a; // a先加1,a和b均为11
后置自增/自减:先使用该值,再执行加/减操作。
int a = 10;
int b = a++; // b为10,a加1后变为11
如果有机会给大家讲这两个操作符的实现的话,会讲的。
7.2 正负号运算
正号 +
不改变值,负号 -
用于取反:
int a = 10;
int b = -a; // b = -10
8. 强制类型转换
强制类型转换用于将一种数据类型转换为另一种,语法如下:
(类型) 表达式
例如:
int a = 3.14;//int-double类型不一样,报警告
int b=(int)3.14// a的值为3,取整数部分
二.printf()
2.1基本用法
print的意思是打印,f是format(格式化)。printf就代表可以按照自己规定的格式进行打印。
printf("hello 401!");
printf不会在行尾默认添加换行符,运行结束后,光标就停留在输出结束的地方。
使用\n可以让光标移到下一行
printf("hello 401\n");
2.2占位符
printf是自己定制格式的,程序做出来是给别人用的,也就是说,我们用的是我们定制的格式打印出它们个性化的语句的。
如何达到这个效果呢?
这就需要占位符了。
所谓的“占位符”,是表示这个位置可以用其他值取代。
int a;
scanf("%d",a);
printf("This is %d apples",a);
上⾯⽰例中, There are %d apples\n 是输出⽂本,⾥⾯的 %d 就是占位符,占位符的第⼀个字符为百分号 % ,第⼆个字符表⽰占位符的类型, %d 表⽰这⾥代⼊的值必须是⼀个整数。
printf() 的第⼆个参数就是替换占位符的值,上⾯的例⼦是整数 a替换 %d 。执⾏后的输出结果就是 There are “输入的a” apples 。
一行输出语句中也可以有多个占位符
printf("%s说现在%d点了", "kuzi", 21);
对于现在的你们而言,只需要记住格式即可,等学完函数,就能搞懂了。
下面列举占位符:
%d:十进制整数
%s:字符串
%c:单个字符
%f:浮点数
%x:十六进制整数
%o:八进制整数
%u:无符号整数
%%:输出百分号
%zd: 无符号整数
%p: 指针类型
2.3输出格式的限定
我们可以限定占位符的格式,如下例:
printf("%5d\n",123);
%5d 表⽰这个占位符的宽度****⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。
输出的值默认是右对⻬,即输出内容前⾯会有空格;若是想要左对齐的话,可以在占位符的 % 的后⾯插⼊⼀个 - 号,会在输出内容后⾯添加空格。
printf("%-5d401\n",123);
如果是小数的话,
printf("%12f\n", 4.01);//小数默认6位,占了7位,还有5位用空格补全。
当然,也是可以显示正负号的,这个采取的方式很简单,如下:
printf("%+d401\n",123);
printf("%-d401\n",123);
输出⼩数时,有时需要限定⼩数的位数。
举例:希望⼩数点后⾯只保留两位,占位符可以写成 %.2f 。
printf("%.2f\n", 4.01);
因此,我们需要限定几位,就可以写.几(你先要的数字)了。
除此之外,.几(你想要的数字)还可以限定字符串的长度。
如下:
printf("%.5s\n","我在401学习知识");
最后一点:最小宽度和小数位数这两个限定值可以一起使用。
printf("%10.2f\n", 4.01);//占10位,保留两位小数。
三.scanf
3.1scanf使用
scanf函数用于读取用户的键盘输入,当程序运行到scanf语句时,会停下来,等待用户从键盘输入。
用户输入数据,按下回车键后,scanf会处理用户的输入,并将其存到变量当中去。
因此,scanf是用来给变量赋值的函数,使用格式如下:
scanf("%d", &a);//&为取地址符,现在记住要这么写即可。以后会教
scanf("%d%d",&a,&b);
它的第⼀个参数是⼀个格式字符串,里面会放置占位符(与 printf() 的占位符基本⼀致),告诉编
译器如何解读用户的输⼊,需要提取的数据是什么类型。
这是因为C语⾔的数据都是有类型的, scanf() 必须提前知道⽤⼾输⼊的数据类型,才能处理数
据,它的其余参数就是存放用户输⼊的变量地址的。(现在只需要记住即可,不需要懂原理,后续会讲。)
int a=0,b=0,c=0,d=0,e=0;scanf("%d", &a);//&为取地址符,现在记住要这么写即可。以后会教printf("%d\n",a);scanf("%d%d", &b,&c);//中间可以用空格隔开,也可以enter隔开printf("%d %d\n", b, c); //中间可以用空格,也可以enter隔开scanf("%d,%d", &d, &e);//不推荐用这种,只能用逗号隔开printf("%d %d\n",d,e);
相关文章:

C语言初始:数据类型和变量
、 一.数据类型介绍 人有黄人白人黑人,那么数据呢? 我们大家可以看出谁是黄种人,谁是白种人,谁是黑种人,这是因为他们是类似的。 数据也是有类型的,就譬如整数类型,字符类型,浮点…...

Linux shellcheck工具
安装工具 通过linux yum源下载,可能因为yum源的问题找不到软件包,或者下载的软件包版本太旧。 ShellCheck的源代码托管在GitHub上(推荐下载方式): GitHub - koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts 对下…...

FLINK SQL时间属性
Flink三种时间属性简介 在Flink SQL中,时间属性是一个核心概念,它主要用于处理与时间相关的数据流。Flink支持三种时间属性:事件时间(event time)、处理时间(processing time)和摄入时间&#…...

android——Groovy gralde 脚本迁移到DSL
1、implementation的转换 implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:*** 转换为 implementation ("com.github.CymChad:BaseRecyclerViewAdapterHelper:***") 2、plugin的转换 apply plugin: kotlin-android-extensions 转换为&#x…...

工程项目管理中的最常见概念!蓝燕云总结!
01 怎么理解工程项目管理? 建设工程项目管理指的是专业性的管理,并非行政事务管理。建设工程项目管理是对工程项目全生命周期的管理,确保项目能够按计划的进度、成本和质量完成。 建设工程项目不同阶段管理的主要内容不同,通常…...

PostgreSQL AUTO INCREMENT
PostgreSQL AUTO INCREMENT 在数据库管理系统中,自动递增(AUTO INCREMENT)是一种常见特性,用于在插入新记录时自动生成唯一的标识符。PostgreSQL,作为一个功能强大的开源关系数据库管理系统,也提供了类似的…...

24-10-13-读书笔记(二十五)-《一只特立独行的猪》([中] 王小波)用一生来学习艺术
文章目录 《一只特立独行的猪》([中] 王小波)目录阅读笔记记录总结 《一只特立独行的猪》([中] 王小波) 十月第五篇,放慢脚步,秋季快要过去了,要步入冬季了,心中也是有些跌宕起伏&am…...

Java—继承性与多态性
目录 一、this关键字 1. 理解this 2. this练习 二、继承性 2.1 继承性的理解 2.1.1 多层继承 2.2 继承性的使用练习 2.2.1 练习1 2.2.2 练习2 2.3 方法的重写 2.4 super关键字 2.4.1 子类对象实例化 三、多态性 3.1 多态性的理解 3.2 向下转型与多态练习 四、Ob…...

打通华为认证实验考试“痛点”:备考指南全解析
华为认证体系中的实验考试环节,尤其是针对高端的HCIE认证,是评估考生实践技能的关键部分。这一环节的核心目标是检验考生对华为设备和解决方案的操作熟练度、技术实施技能以及面对现实工作挑战时的问题解决能力。通过在真实环境中进行的实践操作…...

【软考】子系统划分
目录 1. 子系统划分的原则1.1 子系统要具有相对独立性1.2 子系统之间数据的依赖性尽量小1.3 子系统划分的结果应使数据几余较小1.4 子系统的设置应考虑今后管理发展的需要1.5 子系统的划分应便于系统分阶段实现1.6 子系统的划分应考虑到各类资源的充分利用 2. 子系统结构设计3.…...

【Python】selenium获取鼠标在网页上的位置,并定位到网页位置模拟点击的方法
在使用Selenium写自动化爬虫时,遇到验证码是常事了。我在写爬取测试的时候,遇到了点击型的验证码,例如下图这种: 这种看似很简单,但是它居然卡爬虫?用简单的点触验证码的方法来做也没法实现 平常的点触的方…...

【C++ 真题】B2078 含 k 个 3 的数
含 k 个 3 的数 题目描述 输入两个正整数 m m m 和 k k k,其中 1 < m ≤ 1 0 15 1 \lt m \leq 10^{15} 1<m≤1015, 1 < k ≤ 15 1 \lt k \leq 15 1<k≤15 ,判断 m m m 是否恰好含有 k k k 个 3 3 3,如果满足条…...

蓝桥杯省赛真题——冶炼金属
问题描述 小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。这个炉子有一个称作转换率的属性 V,V 是一个正整数,这意味着消耗 V 个普通金属 O 恰好可以冶炼出一个特殊金属 X,当普通金属 O 的数目不足 V 时,无法继续…...

【Mac苹果电脑安装】DBeaverEE for Mac 数据库管理工具软件教程【保姆级教程】
Mac分享吧 文章目录 DBeaverEE 数据库管理工具 软件安装完成,打开效果图片Mac电脑 DBeaverEE 数据库管理工具 软件安装——v24.21️⃣:下载软件2️⃣:安装JDK,根据下图操作步骤提示完成安装3️⃣:安装DBeaverEE&#…...

数据仓库中的维度建模:深入理解与案例分析
数据仓库中的维度建模:深入理解与案例分析 维度建模是数据仓库设计中最常用的一种方法,旨在简化数据访问、提高查询效率,特别适用于需要对数据进行多维分析的场景。本文将深入探讨维度建模的核心概念、设计步骤以及如何将其应用于实际案例中…...

前端打印功能(vue +springboot)
后端 后端依赖生成pdf的方法pdf转图片使用(用的打印模版是带参数的 ,参数是aaa)总结 前端页面 效果 后端 依赖 依赖 一个是用模版生成对应的pdf,一个是用来将pdf转成图片需要的 <!--打印的--><dependency><groupId>net.sf.jasperreports</groupId>&l…...

中间件有哪些分类?
中间件的分类 中间件是位于操作系统和应用程序之间的软件,它提供了一系列服务来简化分布式系统中的应用程序开发和集成。中间件可以根据其功能和用途被分为不同的类别。以下是中间件的一些主要分类: 1. 通信处理(消息)中间件&am…...

开始新征程__10.13
好久没有更新 csdn 了,身边的人都说 csdn 水,但是在我看来,它在我大一这一年里对我的帮助很大,最近上账号看看,看见了网友评论,哈哈,决定以后还是继续更新,分享自己的学习心得。...

SAP 联合创始人谈Home Office
软件公司 SAP 的家庭办公室规定继续引发激烈争论,其联合创始人哈索-普拉特纳(Hasso Plattner)对此也有明确看法。 沃尔多夫--年初,SAP 首席执行官克里斯蒂安-克莱因(Christian Klein)向员工宣誓 "努力…...

基于Jenkins+K8S构建DevOps自动化运维管理平台
目录 1.k8s助力DevOps在企业落地实践 1.1 传统方式部署项目为什么发布慢,效率低? 1.2 上线一个功能,有多少时间被浪费了? 1.3 如何解决发布慢,效率低的问题呢? 1.5 什么是DevOps? 1.5.1 敏…...

【OpenCV】(一)—— 安装opencv环境
【OpenCV】(一)—— 安装opencv环境 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。OpenCV 是用 C 编写的,但它也有 Python、Java 和 MATLAB 接口,并支持 Windows…...

MybatisPlus操作符和运算值
好久没有更新了,这次更新一个当前端需要对运算符和运算值都需要前端传递给后端,动态拼接运算条件时的处理方法。 1、踩雷 查询年龄 >20,其中>前端下拉框选择,20值前端下拉框选择 1)用户表: CREAT…...

Index-1.9B模型部署教程
一、介绍 Index-1.9B 系列是 Index 系列型号的轻量级版本,包含以下型号: Index-1.9B 基础:具有 19 亿个非嵌入参数的基础模型,在 2.8T 主要为中文和英文的语料上进行预训练,在多个评测基准上与同级别模型相比领先。I…...

C语言 | Leetcode C语言题解之第468题验证IP地址
题目: 题解: char * validIPAddress(char * queryIP) {int len strlen(queryIP);if (strchr(queryIP, .)) {// IPv4int last -1;for (int i 0; i < 4; i) {int cur -1;if (i 3) {cur len;} else {char * p strchr(queryIP last 1, .);if (p…...

Qt自定义一个圆角对话框
如何得到一个圆角对话框? 步骤: 1、继承自QDiaglog 2、去掉系统自带的边框 3、设置背景透明,不设置4个角会有多余的部分出现颜色 4、对话框内部添加1个QWidget,给这个widget设置圆角,并添加到布局中让他充满对话框 5、后续对…...

C++ 中的自旋锁应用:SpinLockManual、SpinLockGuard 和 SpinLockTryGuard
在多线程编程中,同步机制是确保线程安全的关键。自旋锁(Spin Lock)是一种常见的同步机制,它通过忙等待(busy-waiting)的方式来实现线程间的互斥访问。在 C++ 中,我们可以使用 std::atomic_flag 来实现自旋锁。本文将介绍如何使用 SpinLockManual、SpinLockGuard 和 Spin…...

计算机网络 tcp和udp
目录 一、TCP 建立连接-TCP 三次握手 1) 什么是半连接队列和全连接队列? 2) 为什么要三次握手? 3) 三次握手过程中可以携带数据吗? 断开连接-TCP 四次挥手 1) 为什么要四次挥手? 2&…...

React(一) 认识React、熟悉类组件、JSX书写规范、嵌入变量表达式、绑定属性
文章目录 一、初始React1. React的基本认识2. Hello案例2.1 三个依赖2.2 渲染页面2.3 hello案例完整代码 二、类组件1. 封装类组件2. 组件里的数据3. 组件里的函数 (重点)4. 案例练习(1) 展示电影列表 三、JSX语法1. 认识JSX2. JSX书写规范及注释3. JSX嵌入变量作为子元素4. JS…...

计算机网络 2024 11 10
计算机网络 - 知乎计算机网络(四)—— 网络层(1、2):网络层概述、网络层提供的两种服务_以下属于网络层范畴的是a透明传输比特流b媒体接入控制c ip地址d-CSDN博客 湖科大教书匠的个人空间-湖科大教书匠个人主页-哔哩哔…...

King3399(ubuntu文件系统)风扇驱动
该文章仅供参考,编写人不对任何实验设备、人员及测量结果负责!!! 0 引言 文章主要介绍King3399(ubuntu文件系统)风扇控制(GPIO),涉及king-rk3399.dts设备树修改&#x…...