自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 C语言教程(二十六):C 语言内存管理详解

ptr` 是之前调用 `malloc`、`calloc` 或 `realloc` 函数返回的指针,`size` 是新的内存大小。`ptr` 是之前调用 `malloc`、`calloc` 或 `realloc` 函数返回的指针。2、释放内存后,指针变为悬空指针,最好将其置为 `NULL`,避免误操作。释放内存后,将指针置为 `NULL`,在使用指针前先检查其是否为 `NULL`。如果分配失败,返回 `NULL`。`nmemb` 表示要分配的元素数量,`size` 表示每个元素的大小。

2025-04-30 14:16:48 328

原创 C语言教程(二十五):C 语言函数可变参数详解

可变参数函数的定义需要遵循特定的形式,至少要有一个固定参数,后续才是可变参数部分。例如:上述代码中,

2025-04-29 19:16:20 429

原创 C语言教程(二十四):C 语言中递归的详解

递归是指在函数的定义中使用函数自身来完成任务的一种编程技巧。当一个问题可以分解为与原问题结构相同但规模更小的子问题,并且存在一个可以直接解决的最小规模问题(递归终止条件)时,就可以使用递归方法来解决。

2025-04-29 18:53:01 510

原创 C语言教程(二十三):C 语言强制类型转换详解

不合理的强制类型转换可能会导致未定义行为,尤其是在进行指针类型转换时。在进行指针类型转换时,要确保转换后的指针操作是合法的。

2025-04-29 18:37:47 286

原创 C语言教程(二十二):C 语言头文件详解

头文件可包含宏定义,这样就能在多个源文件中复用这些宏。在头文件中定义结构体和共用体,能让多个源文件使用相同的数据类型定义。int x;int y;} Point;头文件里一般只对全局变量进行声明,变量的定义要放在源文件中,防止出现重复定义的问题。

2025-04-29 18:27:48 448

原创 C语言教程(二十一):C 语言预处理器详解

define宏名 替换文本宏名通常使用大写字母,替换文本可以是常量、表达式或代码片段。printf("圆的面积: %f\n", area);return 0;在这个例子中,`PI` 是一个常量宏,`SQUARE` 是一个带参数的宏。预处理器会在编译前将代码中所有的 `PI` 替换为 `3.14159`,将 `` 替换为。基本语法:#undef 宏名#undef PI// 此时 PI 不再是宏return 0;`#undef`指令用于取消之前定义的宏。

2025-04-29 17:15:13 419

原创 C语言教程(二十):C 语言 typedef 关键字详解

在处理复杂的函数指针类型时,`typedef` 可以大大简化代码。例如,定义一个指向返回值为 `int`,接受两个 `int// 定义一个函数指针类型// 一个简单的加法函数return 0;在这个例子中,使用 `typedef` 为函数指针类型创建了别名 ``,使得代码更加简洁和易于理解。

2025-04-29 16:21:02 457

原创 C语言教程(十九):C 语言位域详解

在结构体或者共用体里可以使用位域。struct {数据类型 成员名 : 位宽;// 可以有更多位域成员可以是 `int`、``、`signed int` 等整型类型,在某些编译器中也可以是 `char` 类型。位域成员的名称,是用户自定义的标识符。表示该位域成员所占的二进制位数。在这个例子中,`Flags` 结构体包含三个位域成员:`flag1` 和 `flag2` 各占1位,`flag3` 占2位。

2025-04-29 15:56:34 305

原创 C语言教程(十八):C 语言共用体详解

2.1、定义共用体变量和结构体一样,共用体变量的定义有两种常见方式。一、int i;float f;二、int i;float f;

2025-04-28 18:07:35 226

原创 C语言教程(十七):C 语言结构体详解

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。定义结构体需要使用 `structstruct结构体名数据类型 成员1;数据类型 成员2;// 可以有更多成员这是自定义的标识符,用于标识这个结构体类型。结构体中的每个数据项都称为成员,每个成员有自己的数据类型和名称。int age;这里定义了一个名为 `Student` 的结构体,包含三个成员:`name`(字符数组,用于存储学生姓名)、`age`(整数,用于存储学生年龄)和 `score`(浮点数,用于存储学生成绩)。

2025-04-28 14:35:49 225

原创 C语言教程(十六): C 语言字符串详解

使用指针指向字符串常量时,不能修改字符串的内容,因为字符串常量存储在只读内存区域。在C语言中,字符串是由一系列字符组成,并且以空字符 `'\0'` 作为结束标志。如果第一个字符串小于第二个字符串,返回一个负数;如果第一个字符串大于第二个字符串,返回一个正数。` 函数可以读取包含空格的字符串,它会读取一行输入,直到遇到换行符或达到指定的最大长度。` 等函数时,要确保目标数组有足够的空间来存储字符串,否则会导致缓冲区溢出,可能引发安全问题。函数用于将一个字符串追加到另一个字符串的末尾。函数用于比较两个字符串。

2025-04-24 20:01:47 711

原创 C语言教程(十五):C 语言函数指针与回调函数详解

返回类型 (*指针名)(参数列表);表示函数的返回值类型。是函数指针变量的名称。指定函数的参数类型和个数。例如,定义一个指向返回值为 `int`,接受两个 `int。

2025-04-24 19:38:41 566

原创 C语言教程(十四):C 语言指针详解

定义指针变量的语法格式为:数据类型 *指针变量名;指定指针所指向的变量的数据类型,如 `int`、`float`、`char` 等。是用户自定义的标识符,用于标识这个指针变量。是指针声明符,用于表明这是一个指针变量。int *ptr;

2025-04-24 18:54:47 613

原创 C语言教程(十三):C 语言中 enum(枚举)的详细介绍

使用enumenum 枚举名 {枚举常量1,枚举常量2,// 可以有更多枚举常量这是你为枚举类型起的名字,可自行定义,不过要遵循标识符的命名规则。它们是这个枚举类型所包含的具名常量。默认情况下,第一个枚举常量的值是0,后续的常量值依次递增1。Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday在这个例子中,Monday的值为0Tuesday的值为1,依此类推,Sunday的值为6。

2025-04-22 19:41:01 434

原创 C语言教程(十二):C 语言数组详解

数据类型数组名[数组大小];指定数组中元素的数据类型,如 `int`、`float`、`char` 等。是用户自定义的标识符,用于标识这个数组。表示数组中元素的个数,必须是一个常量表达式。定义一个包含5;二维数组可以看作是一个表格,有行和列。数据类型 数组名[行数][列数];例子:定义一个3行4字符数组用于存储字符序列,定义和初始化方式与普通数组类似。这里的 `'\0'` 是字符串结束符,用于标识字符串的结束。

2025-04-22 19:23:27 806

原创 C语言教程(十一):C 语言中四种主要作用域及作用域嵌套遮蔽

在 C 语言里,作用域指的是程序中变量、函数、类型等标识符能够被使用的范围。

2025-04-22 18:50:45 393

原创 C语言教程(十):C 语言函数详解

返回值类型 函数名(参数列表) {// 函数体语句;return 返回值;

2025-04-17 19:59:53 784

原创 C语言教程(九):C 语言循环结构详解

语言的循环结构为程序提供了强大的重复执行能力。

2025-04-16 18:38:14 503

原创 C语言教程(八):C 语言判断结构详解

在 C 语言编程中,判断结构起着至关重要的作用。它允许程序根据不同的条件来决定执行不同的代码块,从而实现程序的逻辑控制和流程分支。通过合理运用判断结构,开发者能够使程序更加智能地处理各种情况,满足多样化的需求。理解并熟练掌握 C 语言中的判断结构,是编写高效、灵活程序的基础。是一个表达式,其结果会被计算并判断真假。如果的值为非零(即逻辑真),则大括号内的代码块将被执行;若的值为零(逻辑假),则该代码块会被跳过。

2025-04-16 18:07:20 919

原创 C语言教程(七):C 语言运算符详解

在逻辑与运算中,如果第一个操作数为假(0),则不会再计算第二个操作数,因为整个表达式的结果已经确定为假。在逻辑或运算中,如果第一个操作数为真(非 0),则不会再计算第二个操作数,因为整个表达式的结果已经确定为真。// 结果取决于整数的位数,例如在 32 位系统中,结果为 11111111111111111111111111111010。// 二进制表示为 010100 <br> int result = a >> 2;// 二进制表示为 0101 <br> int result = a << 2;

2025-04-15 19:08:02 549

原创 C语言教程(六):C 语言存储类详解

在函数内部使用static关键字声明的变量为局部静态变量。

2025-04-15 18:36:46 686

原创 C语言教程(五):C 语言常量详解:分类、使用及注意事项

在 C 语言中,常量是在程序执行过程中其值不能被改变的量。与变量不同,变量的值可以在程序运行期间动态改变,而常量一旦被定义,其值就固定不变。使用常量可以提高程序的可读性和可维护性,避免在代码中直接使用一些硬编码的值,当需要修改这些值时,只需修改常量的定义即可。

2025-04-15 18:06:13 639

原创 C语言教程(四):C 语言中变量的定义、声明、初始化及作用域和生命周期

在 C 语言中,定义变量时要指定变量的类型和名称。

2025-04-15 17:11:27 259

原创 C语言教程(三):C语言的数据类型详细介绍

存储大小:在不同系统和编译器中,int类型的大小有所不同,一般为 2 字节(16 位)或 4 字节(32 位)。说明:ptr是一个指向int类型的指针,&是取地址运算符,将num的地址赋给ptr。说明:定义了一个名为Weekday的枚举类型,包含 7 个枚举常量,默认MON的值为 0,TUE的值为 1,以此类推。指针类型为void*:void*是一种通用指针类型,可以指向任何类型的数据,但在使用时需要进行显式的类型转换。定义:结构体是一种用户自定义的数据类型,它可以将不同类型的数据组合在一起。

2025-04-11 17:49:27 698

原创 C语言教程(二):C 程序中的函数深入剖析

函数的参数传递方式主要有值传递和指针传递。值传递是将实参的值复制一份传递给形参,在函数内部对形参的修改不会影响到实参。在这个例子中,函数接收一个整型参数num,在函数内部对num进行了修改,但main函数中的value值并未改变。而指针传递则是将实参的地址传递给形参,通过指针可以直接访问和修改实参所指向的内存空间。这里函数接收一个整型指针ptr,通过运算符将value的地址传递给函数,在函数内部通过*ptr对value的值进行了修改,所以main函数中value。

2025-04-10 19:55:48 615

原创 C语言教程(一)探索 C 程序结构:开启高效编程之旅

在深入探讨 C 程序的各种复杂特性之前,先了解最小的 C 程序结构,能为后续学习打下坚实基础。通过预处理指令,我们可以引入标准库函数,也可以根据项目需求自定义头文件,实现代码的模块化和复用。函数是 C 程序的核心组件,它将一段完成特定任务的代码封装起来,提高代码的可读性和可维护性。一个完整的 C 程序至少包含一个main函数,它是程序的入口点,程序从这里开始执行。宏定义可以用于定义常量,也可以实现简单的代码片段替换,为程序的编写带来便利。,表示它返回一个整数。这是 C 程序的核心,是程序执行的入口点。

2025-04-09 17:41:50 761

原创 新手必备:Windows 系统安装破解 Keil5 指南

链接: https://pan.baidu.com/s/1b0yGUhtYL3_skzvJ4f5IoQ?pwd=1111 提取码: 1111。

2025-04-07 18:19:42 426

原创 C 语言教程:从入门到初步掌握

函数是一段完成特定任务的代码块。可以将代码封装成函数,提高代码的复用性和可维护性。// 函数定义return 0;数组是一组相同类型的数据的集合。可以使用数组来存储多个数据。// 定义一个包含 5 个整数的数组int arr[5];// 初始化数组arr[0] = 1;arr[1] = 2;arr[2] = 3;arr[3] = 4;arr[4] = 5;// 遍历数组i < 5;

2025-04-02 18:06:32 540

原创 (普冉)PY32F072 比较器(COMP)使用

在头文件(py32f07x_hal_conf.h)里面添加宏定义ADC_CR2_VREFBUFFEREN 打开VREFBUFFERE。在ADC初始化函数里面调用 HAL_ADC_ConfigVrefBuf()函数设置VrefBuf参数。2、需要使能 ADC 模块的 VREFBUFFERE bit。1、COMP初始化函数配置。电压当做输入比较功能。

2025-02-07 17:23:56 227

原创 免费下载行业报告网站大全

直接在右侧搜索框搜索,例如搜:贵州茅台,可以看到上市公司披露的报告,财务数据等。可以直接下载word报告,主要是互联网网民、网站数、各互联网应用等数据。可以直接按标题搜索的,分为动态报告和深度研究报告,点击PDF直接下载。需要下载PC端,可以按行业分类查看,使用起来非常方便。这是我常用的一个网站,我主要查看行业研报和公司研报。数据、报告:农业、医疗、农产品价格等,我主要在工信部。行业类型较多,包括汽车、互联网、电竞等,免费下载。展示最新的报告,可以按照行业分类查看。报告可以直接下载和查看。

2024-10-28 18:51:52 1660

原创 Win电脑端和安卓手机的互传工具“就近共享”

通常来说,想要实现手机和电脑互传,需要分别在手机和电脑上安装上相同的 App 或者使用通用的文件共享协议,例如 SMB、FTP、WebDAV 等等。但其实在 Windows 中也内置了共享功能,叫做就近共享(Nearby Sharing),注意和 Android 自带的快速分享(Quick Share,原名 Nearby Share)进行区分,两者并不相同。没有的话,某宝买个几块钱的 USB 蓝牙插上也可以正常的打开就近共享功能,真正传输文件时,会通过内网进行传输,速度不会受到 USB 蓝牙的限制。

2024-10-28 18:14:36 1364

原创 iOS 平台的单选按钮组件(Swift UI)

Button:RadioButton被点击时的回调函数,作用把selfID赋值给selectedID。2、在主View视图里面对上定义的RadioButtonView组件进行调用。selectedID:当前被选中的RadioButton的ID。1、自定义一个RadioButton组件的View视图。selfID:当前RadioButton自身ID。

2024-07-23 14:32:34 408

原创 Android ListView 内部Button点击事件,ListView点击事件

在Activity里面调用定义的MyAdapter对象,调用setOnItemButtonClick方法,并创建一个新的MyAdapter对象并调用接口onItemButtonClick实现void onButtonClick(int position ,View view)方法。Item中存在诸如ImageButton,Button,CheckBox等子控件,会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。点击按键事件有反应,点击ListView事件没有反应。

2023-10-20 11:04:39 1407 1

原创 Android ListView 动态添加,删除

【代码】Android ListView 动态添加,删除。

2023-10-20 09:54:11 409 1

原创 Android ListView使用

通过setAdapter()方法,我们可以将数据适配器设置到列表控件中,控件会自动根据适配器中的数据来渲染列表项。同时,当数据发生变化时,只需更新适配器中的数据,列表控件就会自动刷新显示。5、在主函数中添加上面第1步创建的ListView组件,并调研setAdapter()方法,并给该方法添加一个继承BaseAdapter的类参数。第三个布尔值参数表明是否连接该布局和其父容器控件,在这里的情况设置 为false,因为系统已经插入了这个布局到父控件,设置为true将会产生多余的一 个View Group。

2023-08-20 22:03:38 217 1

原创 ZigBee TI ZStack CC2530 获取当前系统时间函数osal_GetSystemClock()

osal_GetSystemClock():返回当前系统的时间,单位ms,函数位置OSAL_Timers.c。

2023-08-16 17:28:44 289 1

原创 IAR编译ZigBee工程出现问题(Pa045)解决方法,Error[Pa045]: function “Relay_1_OFF“ has no prototype

鼠标右键点击GenericApp-Coordinator ->Options,进入Options for node "GenericApp"界面,选择C/C++Compler,把Require prototype选项去掉。添加自己的c文件,编译时出现错误,和函数全部显示错误都是一个性质。

2023-08-15 17:22:50 276 1

原创 Android EditText

设置允许输入哪些字符。android:inputType=textCapCharacters:字母大写。android:inputType=textAutoComplete:自动完成。android:inputType=textAutoCorrect:自动完成。android:inputType=textPostalAddress:地址。android:inputType=textShortMessage:短讯。android:inputType=textMultiLine:多行输入。

2023-07-29 18:00:50 139

原创 Android TextView

你还可以通过使用 "|" 符号来组合多个值,实现不同方向的对齐。例如,android:gravity="left|top" 将使视图左上对齐。它可以用于 TextView、Button、ImageView 等。设置字体和图片之间的距离。

2023-07-29 16:50:03 94

原创 Source Insight 4.0中文乱码解决

解决方法:options -> file type options -> Screen Font 选择能显示中文的字体(例如宋体)解决方法: file -> Reload As Encoding -> 选择 UTF-8 或者 GB2312进行尝试。2. 文件编码不正确。

2023-07-19 16:48:35 2177 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除