- 博客(16)
- 收藏
- 关注
原创 【C语言】标准库中常用内存操作函数大全(memcpy memset)
以下是 C 标准库中常用的的详细说明,这些函数定义在头文件<string.h>中。
2025-06-28 17:54:35
305
原创 【C语言】标准库常用格式化输入输出函数:sprintf、sscanf
函数名输入/输出目标类型是否安全支持变参printf输出标准输出否❌fprintf输出文件流否❌sprintf输出字符串否❌snprintf输出字符串✅❌scanf输入标准输入否❌fscanf输入文件流否❌sscanf输入字符串否❌vprintf输出标准输出否✅vfprintf输出文件流否✅vsprintf输出字符串否✅vsnprintf输出字符串✅✅。
2025-06-28 15:50:41
788
原创 【C语言】标准库字符串操作strstr、strcmp函数原型、参数说明以及返回值描述
⚠️ 注意:不是 ANSI C 标准的一部分,但在 POSIX 和 GNU 编译器中广泛支持。⚠️ 注意:使用时容易造成缓冲区溢出。的内容,否则会导致缓冲区溢出。⚠️ 注意:此函数会修改原字符串,插入。来分割 token。
2025-06-28 15:42:36
538
原创 【C语言】标准 I/O 函数:fopen()、fread()、fwrite()等函数原型、参数说明以及返回值描述
以下是C标准库中常用文件I/O函数的。这些函数定义在头文件<stdio.h>中,适用于文本和二进制文件的读写。它们是 ANSI C 标准的一部分,在大多数操作系统(如 Windows、Linux、macOS)下都支持。
2025-06-26 10:36:32
633
原创 【Linux基础】系统 I/O 函数:open read write lseek等函数原型、参数说明以及返回值描述
下面是常用的Unix/Linux 系统调用接口,这些函数提供了对文件、设备等资源的访问能力,是 POSIX 标准的一部分。
2025-06-25 18:37:33
810
原创 【C语言】文件I/O的不同方式:文件描述符fd和FILE *
fd是更接近系统的底层接口,适合需要精确控制和高效处理的场景;FILE *是 C 标准库封装的高层接口,使用简单、功能丰富,适用于大多数应用程序开发;
2025-06-25 18:07:39
572
原创 数据如何在各种网络硬件设备中流转
数据在各种网络硬件设备中的流转是一个层层封装和层层解封装的过程。它涉及到多个层次的协议和设备的协同工作,包括应用层、传输层、网络层和数据链路层等。每个层次都有其特定的功能和任务,共同确保数据能够准确、高效地传输到目标设备。
2024-08-14 15:34:49
767
原创 【C++】从特定容器的迭代器到实现统一的抽象迭代器接口类(Iterator)
迭代器是一种设计模式,提供统一访问容器元素的方式,不暴露内部结构。文章通过示例展示了如何用下标变量和指针模拟迭代器功能,并详细讲解了为自定义容器Array实现迭代器的过程。核心实现包括:定义Iterator抽象基类,重载运算符(*, ++),实现begin()和end()等方法。最后演示了使用迭代器遍历Array容器,并指出迭代器模式将遍历机制抽象为对象,使算法能透明操作多种集合结构。代码示例展示了从具体实现到抽象接口的演进过程。
2024-06-05 14:42:59
193
原创 关于模板类的友元函数的运算符重载的问题
在C++模板中,类模板内部声明友元函数时,如果直接使用模板参数`T`来声明友元函数,这会导致友元函数自身也成为模板函数的一个特例化版本,从而只能访问特定类型`T`的`Array`实例。这样的设计使得`operator<<`重载更加通用和灵活,能够处理`Array`的任何实例类型,只要类型`U`与所操作的`Array`实例类型匹配即可。这将限制友元函数只能与确切的`T`类型`Array`对象一起工作,而使用`U`允许该友元函数成为泛型,能够与任何类型的`Array`实例协同工作,提高了代码的复用性和灵活性。
2024-06-05 11:34:24
294
原创 一文详解类的静态成员
为了实现类的对象之间的数据共享,同时又能够保证数据的安全, C++提出了静态成员的概念一个类的所有对象之间共享的数据, 而不是所有对象共享的数据(其他类的对象不能共享的)保证数据的安全(不能让别人随意修改)在一个类的声明中, 用 static 修饰 类的成员 ,称之为 类的静态成员静态成员变量(静态数据成员)静态成员函数例子:private:double r;
2024-04-11 10:08:18
1130
原创 Callable 可调用对象 lambda表达式 “匿名函数“
val1, val2, ...] 表示以值传递的方式导入val1,val2等指定的多个外部变量,顺序无关。[&val1, &val2, &...] 表示以引用传递的方式导入val1,val2等指定的多个外部变量,[ val1, &val2, ... ] 表示以值传递的方式导入val1, 以引用传递的方式导入val2。[=, &val1] 除了val1是引用传递的方式导入以外,其他的都是值传递的方式导入。"外部变量",指的是 和 lambda表达式 位于同一个作用域内的所有的局部变量。
2024-04-09 18:09:55
819
原创 头文件中声明static修饰的函数为什么能在其他源文件中使用
1、如果在其他多个其他源文件中包含这个头文件,并使用static修饰的函数,编译当然会直接报错,因为链接器找不到函数的定义2、如果在其他多个其他源文件中包含这个头文件,但没有使用static修饰的函数,编译可以正常通过总之,在头文件中声明static函数违反了头文件的设计初衷,可能导致代码膨胀、维护困难和其他潜在问题。
2024-04-02 17:04:45
690
1
原创 C/C++简单链式调用
(Method Chaining)是一种代码编写技巧,可以让代码更加简洁和易读。它的主要思想是,把多个方法调用链式连接起来,一个方法的返回值可以当作下一个方法的参数。在C++中,链式调用通常指的是连续调用同一个对象的成员函数,每次调用后都返回该对象的引用,从而允许进一步的调用。
2024-04-01 14:41:22
441
原创 C++无名命名空间namespace(匿名命名空间)和全局静态变量
也就是说,即使您在代码中写了两个看起来独立的匿名命名空间块,编译器也会将它们视为同一个命名空间的连续部分。在C++引入无名命名空间后,在文件中使用无名命名空间来定义变量和函数,也能起到与静态声明一样的效果,而且不需要每个变量和函数单独加static进行声明。2. 在C++中,当你使用无名命名空间(也称为匿名命名空间)时,其中的所有变量和函数默认具有内部链接性(internal linkage),这意味着它们只在定义它们的翻译单元(translation unit,通常是单个源文件)中可见。
2024-03-29 15:07:56
1606
1
原创 C++可直接 类名:: (作用域符)访问的成员及用typename区分AA::BB形式
在C++中,类的公有成员(包括公有数据成员、公有成员函数以及公有类型别名等)确实可以通过类名加作用域解析运算符()来直接访问,前提是该公有成员是静态的(对于数据成员和成员函数)或者是类型别名。对于非静态的公有数据成员和成员函数,你需要一个类的实例(对象)来访问它们。
2024-03-22 10:15:14
544
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人