- 博客(64)
- 资源 (1)
- 收藏
- 关注
原创 C++ 中,using namespace std
适合快速原型开发和小型项目 污染全局命名空间:引入所有 std 符号,可能与其他第三方库冲突(如 boost::shared_ptr vs std::shared_ptr).🔍 关键原则:最小化命名空间污染,优先通过显式限定或选择性引入保持代码清晰。显式限定:直接使用 std::cout、std::vector。✅ 推荐使用:小型项目、局部作用域、明确无冲突的场景。⚠️ 避免使用:头文件、全局作用域、大型多人协作项目。方法 代码示例 适用场景。缺点(潜在风险)。
2025-05-16 15:37:49
261
原创 c++,linux,多线程编程详细介绍
在Linux环境下使用C++进行多线程编程,可利用POSIX线程(pthread)或C++11标准库。线程是进程中的执行单元,共享进程的地址空间和数据,但拥有独立的执行栈和寄存器状态。多线程编程可提高程序响应性、充分利用多核资源,但需注意线程安全和资源竞争问题。线程池通过预创建一组线程,并将任务提交到任务队列中,由空闲线程执行任务。线程池可有效管理线程资源,提高程序性能。
2025-05-16 15:18:47
248
原创 c++,windows,多线程编程详细介绍
在 Windows 平台上使用 C++ 进行多线程编程,可以通过 C++11 标准库 或 Windows API 实现。
2025-05-15 21:34:38
319
原创 Makefile -------- 简单介绍
Makefile 是用于自动化构建 C/C++ 等项目的工具,通过定义规则和依赖关系,实现代码的编译、链接等过程的自动化。它是 Unix/Linux 环境下最常用的构建工具之一,也是 GNU Make 的核心配置文件。
2025-05-15 16:40:20
505
原创 在C++中进行套接字编程时,主要使用以下头文件
如socket(), bind(), connect(), listen(), accept(), send(), recv()等。如inet_pton(), inet_ntop(), htonl(), htons(), ntohl(), ntohs()如getaddrinfo(), getnameinfo(), gethostbyname()C++20工作草案中的<std/net> (尚未正式发布)这些库提供了更C++友好的接口和更好的异常处理。包含套接字相关函数和结构体的基本定义。
2025-05-14 18:37:24
361
原创 C++ 套接字函数详细介绍
C++ 中的套接字编程主要通过 BSD 套接字 API 实现,涉及网络通信的基本操作。常用的函数包括 socket() 用于创建套接字,bind() 用于绑定地址和端口,connect() 和 listen() 用于建立连接,send() 和 recv() 用于数据传输,以及 close() 和 shutdown() 用于关闭套接字。此外,setsockopt() 和 getsockopt() 用于设置和获取套接字选项,inet_pton() 和 inet_ntop() 用于 IP 地址的文本与二进制格式转
2025-05-14 18:31:51
514
原创 UDP协议详细讲解及C++代码实例
UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、简单的、基于数据报的传输层通信协议。无连接:不需要建立连接即可发送数据。不可靠:不保证数据包的顺序和到达。高效:由于没有复杂的连接和可靠性机制,UDP传输效率较高。适用场景:适用于实时性要求高、可以容忍少量数据丢失的场景,如视频流、实时游戏等。UDP协议通过无连接、简单高效的特性,适用于实时性要求高的场景。上述代码示例展示了UDP客户端和服务端的完整交互流程,适用于需要高效传输且能容忍少量数据丢失的场景。
2025-05-13 21:08:07
431
原创 TCP协议详细讲解及C++代码实例
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。面向连接:通信前需建立连接(三次握手),结束后需释放连接(四次挥手)。可靠性:通过序列号、确认应答(ACK)、超时重传、校验和等机制确保数据无丢失、无重复、按序到达。流量控制:使用滑动窗口机制,动态调整发送速率,避免接收方缓冲区溢出。拥塞控制:通过慢启动、拥塞避免、快速重传、快速恢复等算法避免网络拥塞。
2025-05-13 20:57:19
535
原创 ubuntu---100条常用命令
本文总结了 Ubuntu 系统中 100 条常用命令,涵盖文件管理、系统信息、用户权限、网络配置、软件包管理等多个方面。文件管理部分包括 ls、cd、rm 等命令,用于查看、切换、删除文件和目录。系统信息与管理部分涉及 top、ps、df 等命令,帮助用户监控系统资源和进程。用户与权限管理部分包括 sudo、chmod、passwd 等命令,用于管理用户和文件权限。网络配置与管理部分介绍了 ifconfig、ping、ssh 等命令,用于网络连接和远程操作。软件包管理部分涉及 apt-get、dpkg 等命
2025-05-13 17:32:25
328
原创 c++ 中的函数
能使名字方便使用,是任何程序设计语言的一个重要特征!我们现实生活中经常会碰到一些字在不同的场景下具有不同的意思,比如汉语中的多音字“重”。当我们说: “他好重啊,我都背不动!”我们根据上下文意思,知道“重”在此时此地表示重量的意思。如果我们说“你怎么写了那么多重复的代码?维护性太差了!”这个地方我们知道,“重”表示重复的意思。同样一个字在不同的场景下具有不同的含义。那么在c++中也有一种类似的现象出现,同一个函数名在不同场景下可以具有不同的含义。
2025-05-11 23:38:08
993
原创 c++中 引用的用法
引用是c++对c的重要扩充。在c/c++中指针的作用基本都是一样的,但是c++增加了另外一种给函数传递地址的途径,这就是按引用传递(pass-by-reference),它也存在于其他一些编程语言中,并不是c++的发明。变量名实质上是一段连续内存空间的别名,是一个标号(门牌号)程序中通过变量来申请并命名内存空间通过变量的名字可以使用存储空间对一段连续的内存空间只能取一个别名吗?c++中新增了引用的概念,引用可以作为一个已定义变量的别名。
2025-05-10 19:02:31
252
原创 c、c++----- const区别
const单词字面意思为常数,不变的。它是c/c++中的一个关键字,是一个限定符,它用来限定一个变量不允许改变,它将一个对象转换成一个常量。A = 100;//编译错误,const是一个常量,不可修改c语言全局const会被存储到只读数据段。c++中全局const当声明extern或者对变量取地址时,编译器会分配存储地址,变量存储在只读数据段。两个都受到了只读数据段的保护,不可修改。*p = 200;以上代码在c/c++中编译通过,在运行期,修改constA的值时,发生写入错误。
2025-05-10 18:10:05
1064
原创 c++ 了解
temp在内存中有地址,10没有,但是可以Read到它的值。在c++中可以放在赋值操作符左边的是左值,可以放到赋值操作符右面的是右值。左值为Lvalue,L代表Location,表示内存可以寻址,可以赋值。c++语言三目运算表达式返回值为变量本身(引用),为左值,可以赋值。在C++,不同类型的变量一般是不能直接赋值的,需要相应的强转。右值为Rvalue,R代表Read,就是可以知道它的值。c语言三目运算表达式返回值为数据值,为右值,不能赋值。有些变量即可以当左值,也可以当右值。
2025-05-10 13:02:07
154
原创 c++ using使用
它不会影响任何其他的文件,所以可以在每一个实现文件中调整对命名空间的控制。比如,如果发现某一个实现文件中有太多的using指令而产生的命名冲突,就要对该文件做个简单的改变,通过明确的限定或者using声明来消除名字冲突,这样不需要修改其他的实现文件。**注意:**使用using声明或using编译指令会增加命名冲突的可能性。也就是说,如果有名称空间,并在代码中使用作用域解析运算符,则不会出现二义性。我们刚讲的一些东西一开始会觉得难一些,这些东西以后还是挺常用,只要理解了它们的工作机理,使用它们非常简单。
2025-05-10 12:10:58
258
原创 Python中,正则表达式,
在Python中,正则表达式(Regular Expressions,简称regex)是一种强大的文本处理工具,用于匹配、查找和替换字符串中的模式。提供正则表达式支持。以下是一些常见的正则表达式规则和示例,帮助你更好地理解和使用正则表达式。常用正则表达式符号和规则。
2025-05-08 12:46:26
422
原创 python--------文件内容读取、写入、修改
要将内容写入文件,你可以使用 open() 函数,并指定写入模式(‘w’)。如果需要访问用户的主目录,可以使用 os.path.expanduser(“~”)。要将修改后的内容写回文件,你可以使用 open() 函数和 write() 方法。要读取文件的内容,你可以使用 open() 函数,并指定读取模式(‘r’)。如果文件较大,或者你需要逐行处理内容,可以使用 for 循环逐行读取文件。在读取文件内容后,你可以对内容进行修改。如果你想在文件的末尾追加内容而不是覆盖它,可以使用追加模式(‘a’)。
2025-05-06 21:38:38
1114
原创 C语言中,sizeof关键字(详细介绍)
在C语言中,sizeof 是一个,用于计算变量、数据类型或表达式在。它不是一个函数,,且的常量(除非操作数是变长数组,VLA)。
2025-05-03 09:08:20
512
原创 C语言中,extern关键字用法的(详细介绍)
声明(不分配内存):使用extern关键字声明变量,表示引用外部定义的变量。// 声明,告诉编译器该变量在其他地方定义定义(分配内存):不带extern的全局变量是实际的定义。// 定义,编译器会为其分配内存示例:跨文件共享全局变量// 定义全局变量// 声明外部变量// 正确引用file1.c中的global_var。
2025-05-03 05:55:55
445
原创 C语言中 typedef 关键字
在C语言中,typedef 关键字用于为现有数据类型定义新的别名(类型重命名),其核心目的是提高代码可读性和简化复杂类型的声明。以下是其用法详解及典型场景:2.典型用法与示例1) 简化基础类型名称2. )为结构体/联合体/枚举定义别名避免重复书写 struct、union 或 enum 关键字:3. )简化复杂类型声明尤其适用于函数指针、数组指针等复杂类型:4. )跨平台可移植性统一不同平台下的数据类型:与 #define 的区别示例:最佳实践
2025-05-01 03:56:00
516
原创 C语言中 volatile 关键字的作用总结
volatile 的核心价值在于确保变量的内存可见性,适用于硬件交互、中断及简单多线程场景,但需结合具体需求判断是否需额外同步机制。在需要严格内存顺序的场景(如多核CPU),需使用内存屏障指令(如 __sync_synchronize())而非仅依赖 volatile。当多个线程共享变量且无同步机制时(如简单嵌入式系统),volatile 可确保线程读取最新值,但无法替代锁或原子操作。强制编译器每次访问 volatile 变量时都直接从内存中读取或写入最新值,而非使用寄存器中的缓存值。
2025-05-01 03:26:50
278
原创 C语言 字符串
字符串是内存中一段连续的char空间,以’\0’(数字0)结尾。字符串常量是由双引号括起来的字符序列,如“china”、“Cprogram”,“$12.5”等都是合法的字符串常量。
2025-04-30 03:28:49
767
原创 C语言 命名规则
良好命名:int student_count;标识符只能由字母(A-Z/a-z)、数字(0-9)和下划线(_)组成,且不能以数字开头。同一项目中需保持命名风格统一,例如模块化前缀(如Timer_start())。不良命名:int a;下划线分隔(如student_name)常见于Unix风格代码。禁止使用C语言的关键字(如int、return等)作为标识符。常量和宏定义建议全大写并用下划线分隔(如MAX_SIZE)。小驼峰(如studentAge)多用于变量和函数。
2025-04-30 01:16:41
734
原创 C语言的头文件
C语言的头文件(Header File)是以.h为扩展名的文本文件,包含声明性内容(如函数原型、宏定义、类型定义等),用于实现代码的模块化、复用和接口标准化。头文件保护:通过#ifndef、#define、#endif确保内容仅被编译一次14。声明性内容:仅包含函数原型、宏、类型定义等,不包含函数实现或全局变量定义7。头文件保存函数/变量的声明,.c文件保存具体实现,提升代码可维护性37。#ifndef EXAMPLE_H // 头文件保护,防止重复包含。
2025-04-29 01:02:11
150
原创 Ubuntu-----常用命令
示例:ls 目录内容示例:ls -l 以长格式列出目录详细内容示例:ls -a 增加显示隐含目录蓝:目录;绿:可执行文件;红:压缩文件;浅蓝:链接文件;灰:其他文件;红底白字:错误的链接文件。
2025-04-13 02:18:53
630
原创 c语言----------内存管理----5
类型 作用域 生命周期auto变量 一对{}内 当前函数static局部变量 一对{}内 整个程序运行期extern变量 整个程序 整个程序运行期static全局变量 当前文件 整个程序运行期extern函数 整个程序 整个程序运行期static函数 当前文件 整个程序运行期register变量 一对{}内 当前函数全局变量 整个程序 整个程序运行期类型 作用域 生命周期 存储位置。
2025-01-15 11:08:31
802
原创 c语言------指针----6
指针变量也是变量,是变量就可以任意赋值,不要越界即可(32位为4字节,64位为8字节),但是,任意数值赋值给指针变量没有意义,因为这样的指针就成了野指针,此指针指向的区域是未知(操作系统不允许操作此指针指向的内存区域)。但是,野指针和有效指针变量保存的都是数值,为了标志此指针变量没有指向任何变量(空闲可用),C语言中,可以把NULL赋值给此指针,这样就标志此指针为空指针,没有任何指针。但是,不能取寄存器变量,因为寄存器变量不在内存里,而在CPU里面,所以是没有地址的。//打印a,b的地址。
2025-01-14 20:27:37
903
原创 c语言----数组----4
在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来——称为数组。数组就是在内存中连续的相同类型的变量空间。同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的。数组属于构造数据类型一个数组可以分解为多个数组元素:这些数组元素可以是基本数据类型或构造类型。按数组元素类型的不同,数组可分为:数值数组、字符数组、指针数组、结构数组等类别。int a[10];char s[10];
2025-01-12 20:33:37
1091
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人