自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AI模型必选

文本模式下的AI 模型有三种方式,文本输入、图片和文档(PDF),虽然它能处理图片和文档,但是它只是一个语言模型,不能给你发图片。1、国内使用chatGPT接口二次开发的网站,有很多我随便发一个。2、“通义千问”:阿里云推出的一个超大规模的语言模型。输入文本描述,会给你生成相符的图片。①通义千问:AI语言模型。②通义万相:AI图像模型。

2024-01-04 18:03:16 1781

原创 网络编程面试笔试真题

嵌入式网络编程笔试面试真题

2023-10-18 16:53:37 467

原创 Linux笔试面试题

嵌入式面试笔试Linux真题

2023-10-18 16:27:42 435

原创 C/C++笔试面试真题

嵌入式开发笔试面试真题

2023-10-16 17:54:51 1308

原创 嵌入式底层笔试面试题

嵌入式开发笔试面试真题

2023-10-16 17:52:37 714

原创 Qt——对话框简介

在现代计算机应用程序中,对话框是用户界面设计的重要组成部分,用于与用户进行信息交互和数据输入。对话框可以分为独立对话框和定制对话框两大类,它们为用户和应用程序之间的交流提供了便捷的窗口。

2023-09-13 11:46:43 301

原创 Qt——事件处理详解

事件是Qt应用程序中的基本构建块,它们代表了一些特定的行为或状态变化。事件可以是鼠标点击、键盘输入、窗口大小改变、定时器事件等。每个事件都是一个对象,继承自QEvent类。

2023-08-29 00:54:07 1580

原创 Qt——Qt工作原理:事件驱动、信号与槽机制

Qt作为一个现代的GUI(图形用户界面)框架,采用了事件驱动的编程范式,并引入了信号与槽机制,以实现高度交互和松耦合的程序设计。下面详细解释了相关概念,以及如何在Qt中使用它们。

2023-08-26 17:43:27 1106

原创 Qt——QLineEdit控件常见的属性、方法和信号

描述:设置一个占位文本,当文本框为空时显示,用于提示用户输入的预期内容。用法:连接到这个信号的槽函数中,可以在用户按下回车键时执行相应操作。用法:连接到这个信号的槽函数中,可以在选择的文本变化时执行相应操作。用法:连接到这个信号的槽函数中,可以在文本发生变化时执行相应操作。用法:连接到这个信号的槽函数中,可以在光标位置变化时执行相应操作。用法:连接到这个信号的槽函数中,可以在文本被编辑时执行相应操作。用法:连接到这个信号的槽函数中,可以在编辑完成时执行相应操作。描述:当选择的文本发生变化时触发此信号。

2023-08-26 17:35:52 6022

原创 Qt——Qt 开发中所涉及的所有控件(基本控件、容器控件、布局控件、高级控件、其他控件、多媒体控件、定制控件)

Qt开发中提供了许多控件(Widgets)供开发者使用,用于构建图形用户界面(GUI)应用程序。

2023-08-26 16:48:16 3433

原创 Qt——QLabel控件常见的属性、方法和信号

QLabel是一个用于显示文本或图像的控件。它通常被用作标签或显示静态信息的区域。

2023-08-26 16:42:08 5568

原创 Qt——QPushButton控件的常见属性、方法和信号

这些信号表示了不同的按钮交互和状态变化,您可以将它们与相应的槽函数连接,以便在特定事件发生时执行所需的操作。,按钮将被指定为默认按钮,通常会显示一个默认的外观(例如,加粗的文本)。描述:设置按钮的"这是什么"帮助文本,通常用于上下文相关的帮助。描述:设置按钮的快捷键,用于在应用程序中触发按钮点击。描述:设置按钮的状态提示文本,通常在状态栏显示。描述:模拟按钮的点击动作,触发按钮的相应槽函数。用法:连接此信号以在按钮选中状态切换时执行操作。用法:连接此信号以在按钮被点击时执行操作。

2023-08-24 00:11:10 7607

原创 c与c++中struct的主要区别和c++中的struct与class的主要区别

struct 是一种用于定义复合数据类型的方式,与C相似。然而,C++中的struct不仅可以包含数据成员,还可以包含成员函数、访问控制和继承等概念,与类(class)的功能非常接近。换句话说,C++中的struct和class的区别主要是默认的访问控制和继承方式不同。c中struct 是一种用于组合多个不同数据类型的数据成员的方式。struct 声明中的成员默认是公共的,并且不支持成员函数、访问控制和继承等概念。C中的struct通常被用于将多个相关数据组合在一起,但没有类的其他功能。

2023-08-23 00:21:32 845

原创 c++——extern “C”的使用(cpp文件调用c文件)

extern “C” 是 C++ 提供的一个语法特性,用于在 C++ 代码中调用和使用 C 语言风格的函数和变量。C++ 和 C 在底层有一些不同的编译和链接约定,这会导致 C++ 编译后的函数名在链接时会带有额外的信息,与 C 代码的函数名不匹配。通过使用 extern “C”,我们可以告诉编译器按照 C 语言的约定来处理函数名和链接,从而实现 C 和 C++ 的混合编程。如果你在 C++ 代码中包含了一个 C 语言风格的头文件,你需要使用 extern “C” 来保证正确的链接。

2023-08-23 00:06:01 1171

原创 c++——函数重载

这些函数的参数个数、参数类型不同、顺序。这就是函数的重载(function overloading)。即对一个函数名重新赋予它新的含义,使一个函数名可以多用。函数重载允许我们使用相同的函数名来表示不同的行为,提高了代码的可读性和灵活性。

2023-08-22 23:52:53 406

原创 c++——默认参数和占位参数

C++允许赋予函数参数默认值,即在调用该函数时,可以不写某些参数的值,编译器会自动把默认值传递给调用语句中。

2023-08-22 23:26:37 465

原创 c++——内联函数

内联函数应该在头文件中定义,而不是在源文件中。如果在多个源文件中包含了同一个内联函数的定义,可能会引发“多次定义”的编译错误。

2023-08-22 23:07:39 319

原创 c++——引用(语法、引用特性、常引用、函数返回值引用和指针与引用的不同点)

我们知道引用并不开辟空间,所以a并没有开辟空间,而是n的引用,也就是n和a的地址会相同。如果不用static修饰n,则n变量在栈上开辟空间,如果调用一个其它的函数,a的值很有可能会发生改变,这样a的值得不到保障。所以需要常引用接收。用上面的例子就是,rb引用a时发生隐式转化,此时会创建一个临时变量tmp,先将a转化为int,再将tmp值赋给rb。:和隐式转化差不多,当返回的时候,会生成一个临时变量,该临时变量的值等于返回值。变量a是可读不可改写的,引用ra是可读可改写的,如果对ra改写,就会对a产生影响。

2023-08-21 00:29:19 194

原创 c++——c/c++中的static和const

在不同的上下文中,static 关键字可以用于改变变量或函数的存储区域。在函数内部,static 用于将局部变量的生存期从函数的生命周期扩展到整个程序的生命周期,并将其存储在静态存储区中。static 还可以用于限制变量、函数或类的作用域,使其仅在声明它们的文件中可见,而不是跨越整个程序的多个文件。这种情况下,static 在全局变量、函数和类的上下文中使用。在这个示例中,globalVar 被声明为静态全局变量,它的作用域限制在了声明它的文件 File1.cpp 中,其他文件无法直接访问。

2023-08-20 16:44:48 444

原创 c++——增强了(全局变量、变量和函数的都要有类型、类型转换、struct结构体、bool类型和三目运算符)

在c++中对全局变量、变量和函数的都要有类型、类型转换、struct结构体、bool类型和三目运算符的增强

2023-08-20 15:38:57 197

原创 c++——单例模式

单例模式确保一个类只有一个实例,并提供一个全局访问点以获取该实例。这通常通过让类的构造函数为私有,以防止外部直接实例化,然后提供一个静态方法来获取实例。

2023-08-19 00:47:56 558 1

原创 c++——静态成员变量、静态成员函数和const修饰的静态成员变量

①静态成员变量在内存中只有一份,多个对象共享一个静态变量②静态成员变量,必须类内声明,类外定义③静态成员变量可以通过类的作用域访问④静态成员变量可以通过类的对象访问。

2023-08-18 23:49:09 244

原创 C++——友元(友元函数、友元类和友元成员函数详解)

友元函数是在一个类中声明的一个非成员函数,但在类的内部声明该函数为友元。这意味着该函数可以访问该类的私有成员,包括私有变量和私有函数。友元函数的声明通常位于类的声明中,但其实现则位于类外部。1、友元函数:通过friend+普通函数友元函数是在一个类中声明的非成员函数,但在类的内部声明该函数为友元。这使得该函数可以访问该类的私有成员。private:public:// 声明友元函数// Getter函数// 友元函数实现

2023-08-18 23:23:17 4743 1

原创 c++——::作用域、命名空间、using(声明和编译指令)

::>运算符是一个作用域如果前面什么都没有加 代表是全局作用域。

2023-08-16 00:55:26 271 2

原创 网络编程——字节序和地址转换

是指多字节数据的存储顺序,数据在内存中存储的方式。

2023-08-08 20:14:14 469

原创 网络编程——数据包的组装和拆解

目标MAC地址(6字节),这是数据帧要发送到的目标设备的MAC地址。它唯一标识了数据帧的目的地。:源MAC地址(6字节), 这是数据帧的发送者的MAC地址。它唯一标识了数据帧的来源。:类型/长度字段(2字节),确定以太网头后面跟的是哪个协议0x0800 ip协议0x0806 arp协议0x0835 rarp协议(46-1500字节): 这是实际要传递的数据,它的长度可以在46字节到1500字节之间。如果数据不足46字节,会被填充至46字节,确保帧的最小长度。

2023-08-07 23:39:20 680 1

原创 网络编程——端口

类似 pid 标识一个进程: 在网络程序中,口号(port) 标识一个运行的网络程序。

2023-08-07 20:28:12 678

原创 网络编程——MAC地址、IP地址和子网掩码

MAC地址,即(Media Access Control Address),是一个用于唯一标识网络设备的物理地址。每个网络接口卡(NIC)都会被分配一个全球唯一的MAC地址,它通常由48bit的值十六进制数字组成,被分为6组,用冒号或连字符隔开。前三组是厂商ID后三组是设备ID,,也可以看作是设备的数字指纹。

2023-08-07 20:13:03 910

原创 网络编程——TCP/IP协议族(IP协议、TCP协议和UDP协议……)

IP协议又称特指为实现在一个相互连接的网络系统上从源地址到目的地传输数据包(互联网数据包)所提供必要功能的协议,是网络层中的协议。

2023-08-07 19:17:05 1449

原创 网络编程——深入理解TCP/IP协议——OSI模型和TCP/IP模型:构建网络通信的基石

TCP/IP协议,即,是一组用于在计算机网络中实现通信的协议。它由两个主要的协议组成:TCP(传输控制协议)和IP(互联网协议)。TCP负责确保数据的可靠传输,而IP则负责路由数据包以在网络中传递。TCP/IP协议簇还包含其他辅助协议,如UDP(用户数据报协议)和ICMP(互联网控制消息协议)等,以提供更广泛的网络功能。为了该少协议设计的复杂性,大多数网络模型均采用分层的方式来组织每一层利用下一层提供的服务来为上一层提供服务本层服务的实现细节对上层屏蔽。

2023-08-07 18:44:08 1658

原创 网络编程——多路复用——epoll机制

epoll 是 Linux 操作系统提供的一种 I/O 多路复用机制,用于监视多个文件描述符的状态并进行事件驱动的 I/O 操作。它是基于事件驱动的模型,通过将文件描述符注册到 epoll 内核事件表中,然后等待内核通知有事件发生,从而避免了阻塞式 I/O 和传统的轮询方式。epoll 可以同时处理大量的并发连接,并且能够高效地处理文件描述符上的事件。

2023-08-07 00:02:53 792

原创 网络编程——超时检测(select()、poll()和 setsockopt()的设置合理的超时检测机制)

网络编程中的超时检测是确保程序高性能和可靠性的关键一环。本文介绍了多种超时检测方法,包括使用 select()、poll() 函数,设置 setsockopt() 选项,使用时间戳和定时器,以及使用非阻塞套接字等。具体的使用方法取决于编程需求和特定的情况。合理地选择并使用这些方法,可以有效地避免程序长时间阻塞,并保障系统在网络故障或其他异常情况下的稳定运行。在进行网络编程时,请务必重视超时检测,并根据实际情况选择适合的方法,从而提高网络应用的性能和健壮性。

2023-08-06 23:15:59 2734

原创 IO进线程——库的制作(静态库、动态库)

库的制作,包括静态库和动态库

2023-08-01 22:13:31 314

原创 IO进、线程——线程(线程的创建、线程的退出、线程的回收、线程的分离和多线程并发编程)

线程是进程的一部分,是任务调度的最小单位。一个进程可以包含多个线程,这些线程可以并发执行,共享进程的资源,但每个线程都有自己的执行路径。在多核处理器上,多个线程可以同时运行,提高了程序的性能和响应能力。下面将对线程的创建、退出、回收和分离。

2023-07-31 00:50:32 806

原创 IO进、线程——进程间通信的IPC对象(共享内存、消息队列和信号灯集)

进程间通信(IPC,Inter-Process Communication)是指不同进程之间进行信息交换和数据共享的机制。在多进程编程中,进程间通信是非常重要的,它允许不同的进程之间进行协调和合作,从而实现更复杂的任务。在Linux/Unix操作系统中,提供了多种IPC对象,其中包括共享内存、消息队列、信号量等。这些IPC对象允许进程之间共享数据、发送消息和进行同步操作。接下来,我们将详细介绍和这三种常用的进程间通信IPC对象。

2023-07-29 15:18:27 316

原创 IO进、线程——进程间通信的信号通信:kill()、raise()、alarm()、pause()、signal()

信号是进程间通信中一种简单而有效的机制,用于通知进程发生了某个事件。当某个进程产生一个信号时,它可以向其他进程发送信号,并触发接收进程的信号处理函数。信号机制可以用于进程之间的异步通信,比如在一个进程执行的过程中,另一个进程可以通过发送信号来中断或修改其执行行为。信号是内核进程通知用户进程应该干什么了。

2023-07-29 14:37:55 287

原创 IO进、线程——无名管道pipe()和有名管道mkfifo()

无名管道是一种的通信机制,只能用于具有父子关系的进程之间或者同一进程的不同线程之间的通信。无名管道是一种无名管道的读写操作是阻塞的,如果没有数据可读,则读取操作会阻塞,直到有数据可读为止;如果管道已满,则写入操作会阻塞,直到有空间可写入为止。

2023-07-29 11:05:22 296

原创 IO进、线程——线程间通信的同步与互斥。信号量、互斥锁(PV操作)和条件变量

在多进程编程中,进程之间可能会共享某些资源,例如共享内存、文件、数据库等。当多个进程同时访问这些共享资源时,就会产生竞争条件(Race Condition),导致数据不一致或者出现错误。为了避免竞争条件,保证进程之间的正确协作,需要使用同步与互斥机制来对共享资源进行管理。

2023-07-29 00:17:05 369

原创 IO进、线程——守护进程

守护进程的创建通常通过fork()系统调用实现。,该子进程是调用进程(父进程)的副本。父进程会继续执行fork()之后的代码,而子进程将继续执行从fork()调用处开始的代码。,确保不会成为僵尸进程。子进程将继续执行后续的守护进程代码。

2023-07-28 19:46:03 202

原创 IO进、线程——进程的创建、退出、回收、fork()和vfork的区别、exit()和_exit()区别、exec函数族

因为它们在成功执行时会替换当前进程的代码和数据,导致当前进程的执行流被新程序替代,从而不会返回到exec函数调用的位置。vfork的返回值与fork相同,但在子进程中不能依赖返回值来区分父子进程,因为vfork在子进程中返回之前,父进程是被阻塞的,所以返回值并不代表是父进程还是子进程。这样做的效果是当前进程的执行内容会被新的程序替换,从而使得原来的进程变成了新程序的进程。arg0:是要执行的程序的名称(通常传递给argv[0]),之后的参数是要传递给新程序的命令行参数列表,最后以NULL结尾。

2023-07-28 19:29:33 386

空空如也

空空如也

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

TA关注的人

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