C++
文章平均质量分 67
C++
LtMamba
这个作者很懒,什么都没留下…
展开
-
Autotools -- Basic
构建大型 c/cpp 项目,自动生成大型 makefile 文件。原创 2024-02-03 21:12:36 · 209 阅读 · 0 评论 -
c/c++--__attribute__ 机制
_attribute__机制实际上是 GCC 的一种编译器命令,用来指示编译器执行实现某些高级操作。__attribute__可以设置。LLVM也借用了GCC的__attribute__,并进行了扩展。原创 2023-10-12 20:45:00 · 377 阅读 · 0 评论 -
c/c++--编译指令(预处理之后) #pragma
指示编译器。原创 2023-10-12 20:30:00 · 271 阅读 · 0 评论 -
c/c++--字节对齐(byte alignment)
的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系跟编译器有关.//用法如下struct bbbchar a;int b;//直接按照实际占用字节来对齐,其实就是相当于按照1个字节对齐了//这里计算sizeof(st3)=5。原创 2023-10-12 21:00:00 · 2250 阅读 · 1 评论 -
makefile -- Basic
make 工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式——。原创 2023-07-06 19:00:00 · 280 阅读 · 0 评论 -
linux--GCC--安装GCC编译器
打开官方网站GCC, the GNU Compiler Collection点击mirror(镜像界面)随便找个镜像地址点进去找个最新的点进去并下载具体安装步骤https://www.cnblogs.com/tankblog/p/5919901.html原创 2021-09-02 15:51:14 · 1322 阅读 · 0 评论 -
C++--Basic
【代码】C++--Basic。原创 2023-06-13 18:45:00 · 105 阅读 · 0 评论 -
Linux--ServerProgramming--(4)详解 I/O复用
I/O 复用能。I/O 复用本身是阻塞的。Linux 实现 I/O 复用的系统调用主要有。原创 2023-06-05 18:00:00 · 481 阅读 · 0 评论 -
c/c++--位操作
程序中任何变量、函数等在计算机中都是以二进制的形式存储。对他们的操作其实都是对二进制位的操作。位运算就提供了对这些二进制位进行操作的方式。。二进制数有三种编码形式:原码、反码和补码。原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。反码:整数的数值位按位取反(0→1,1→0),符号位不变。(负整数)补码:反码+1(负整数)。注意: 正整数(原码=反码=补码) 负整数(反码和补码都需要计算),而,而不是原码!原创 2023-06-04 14:24:45 · 534 阅读 · 0 评论 -
Linux--ServerProgramming--(2)socket
现在大多PC采用小端字节序,因此小端字节序又称为主机字节序。而大端字节序又称为网络字节序。原创 2023-06-03 08:45:39 · 280 阅读 · 0 评论 -
Linux--ServerProgramming--(3)详解高性能服务器程序框架
随着网络设计模式兴起,Reactor 和 Proactor 事件处理模式应运而生。半同步/半反应堆(half-sync/half-reactive)半同步/半异步(half-sync/half-async)不过可以使用 同步I/O 模拟出 Proactor 模式。服务器种类繁多,但基本框架一样,不同之处在于逻辑处理。上面提到I/O处理单元 包含。是最常用的 I/O 通知机制。原创 2023-06-01 17:02:21 · 792 阅读 · 0 评论 -
C++——开发框架
C++ framework原创 2023-01-30 15:38:12 · 3782 阅读 · 0 评论 -
CMake--Basic
一、CMake介绍 CMake 全名为 cross platform make。 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。 能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性。 cmake是跨平台项目管理工具,它用更抽象的语法来组织项目。 虽然,仍然是目标,依赖之类的东西,但更为抽象和友好,比如你可用math表示数学库,而不需要再具体指定到底是math.dll还是libmath.so, 【在wind原创 2022-03-18 09:55:43 · 1550 阅读 · 0 评论 -
Linux环境编程——编辑器
一、基础毫无疑问,Linux环境编程必须先拥有一台安装Linux系统的电脑(服务器、虚拟机)。二、Vi 或 VimVi 或 Vim Vi是 Linux系统 自带的文本编辑器,类似windows的记事本。 Vim 是 Vi的升级版。 Linux系统可通过一系列配置实现代码的编写。通过gcc命令将所写代码编译为可执行文件。此环境下一般使用 gdb 工具调试。gdb使用连接Vim使用连接三、Visual Studio CodeVisual Studio Code 是微软旗下可以安装到原创 2022-03-13 10:25:05 · 1562 阅读 · 0 评论 -
左移操作符<< 和右移操作符>>
参考链接**移位运算包含“逻辑移位”(logical shift)和“算术移位”(arithmetic shift)。****逻辑移位**:移出去的位丢弃,空缺位(vacant bit)用 0 填充。**算术移位**:移出去的位丢弃,空缺位(vacant bit)用“符号位”来填充,所以一般用在右移运算中。左移操作符<<左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负值),其右边空出的位用0填补,高位左移溢出则舍弃该高位。–例如:将a原创 2021-11-25 16:57:14 · 1057 阅读 · 0 评论 -
Linux系统编程-vi/vim Command
vivi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样.vimvim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息。vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。 这对于我们在Linux上进行一些配置文件的修改工作时是很棒的功能。vi的三种模式命令行模式:在命令行模式下,任何键盘输入都是命令.插入模式:替换模式:原创 2021-10-11 09:12:59 · 368 阅读 · 0 评论 -
C语言typedef的用法
参考链接一、概念C语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称。示例:typedef int BOOL;//定义一个布尔类型#define TRUE 1#define FALSE 0//定义好之后,就可以像使用基本类型数据一样使用它了,如下面的代码所示:BOOL bflag=TRUE;二、typedef的4种用法为基本数据类型定义新的类型名比如跨平台时,有的机子不支持long double,但有需要高精度的一个类型参与计算,那就可以进行如下定义:typ原创 2021-11-04 08:41:14 · 14965 阅读 · 1 评论 -
C++知识(1)面向对象编程(总2)
一、概念**数据结构**是存储具有复杂关系的数据更有助于后期对数据的再利用。主要学习数据存储方式。**过程式编程**是一种以执行程序操作的过程或函数为中心编写软件的方法。程序的数据通常存储在变量中,与这些过程是分开的。所以必须将变量传递给需要使用它们的函数。比如C语言。**面向对象OOP** 以创建和使用对象为中心。一个对象(Object)就是一个软件实体,它将数据和程序在一个单元中组合起来。对象的数据项,也称为其属性,存储在成员变量中。对象执行的过程被称为其成员函数。将对象的数据和原创 2021-11-02 16:52:20 · 369 阅读 · 0 评论 -
C++ 标准模板库(Standard Template Library)
一、STL概念STL 是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成,其中后面 4 部分是为前 2 部分服务的。** 构成含义:**STL的组成含义容器一些封装数据结构的模板类,例如 vector 向量容器、list 列表容器等。算法STL 提供了非常多(大约 100 个)的数据结构算法,它们都被设计成一个个的模板函数,这些算法在 std 命名空间中定义,其中大部分算法都包含在头文件 中,少部分位于头文件 中。迭代器如果一个类将 () 运原创 2021-11-01 15:01:56 · 1533 阅读 · 0 评论 -
Linux&C++ 语法知识
C++ 是在C语言的基础上增加新特性,从语法上看,C语言是 C++ 的一部分,C语言代码几乎不用修改就能够以 C++ 的方式编译。1. C++程序的命名规则C++头文件一般采用.h后缀,也用有.hpp的。C++程序文件一般采用.cpp后缀,也有用.cc的,建议采用.cpp,C++对程序文件的命名没有强制要求,采用.cpp为后缀是大部分程序员的习惯。2. C++程序的编译在某些操作系统中,C和C++是同一个编译器,在CentOS中,C的编译器是gcc,C++的编译器是g++。3. C++是面向对象原创 2021-10-26 13:50:55 · 598 阅读 · 1 评论 -
VS 查看C++类结构方法
#include <iostream>using namespace std;class father{public : int A;protected: int B;private: int C;};class son :public father{public : int D;};void main(){ cout << sizeof(son) << endl;//16 private的成员也被继承下来了,但是被隐藏掉了}原创 2021-07-06 15:00:44 · 791 阅读 · 0 评论 -
字符‘0‘和‘\0‘,及整数0的区别
字符’0’:char c = ‘0’; 它的ASCII码实际上是48。内存中存放表示:00110000字符’\0’ : ASCII码为0,表示一个字符串结束的标志。这是转义字符。整数0 :ASCII码为0,字符表示为空字符,NULL;数值表示为0;内存中表示为:00000000...原创 2021-10-13 10:30:33 · 1502 阅读 · 0 评论 -
TOOLS——SecureCRT8.5的下载、安装、注册、连接、用到的配置以及可能遇到的错误、常用快捷键
3、运行scrt85-64.exe开始安装下载后,解开压缩包,点击scrt85-64.exe开始安装。4、安装向导,下一步5、接受协议,下一步6、安装选项,下一步7、完全安装,下一步8、创建桌面快捷方式和菜单,下一步9、开始安装10、安装完成11、开始破解在安装包的注册机目录下,keygen.exe是破解文件,如果你没有看到这个文件,一定是被您电脑的杀毒软件拦截了,请关闭全部的杀毒软件,包括windows自带的防火墙。12、以系统管理员身份运行破解程序破解程序运行后原创 2021-10-10 11:30:08 · 11894 阅读 · 2 评论 -
Linux系统编程-GDB Command
参考链接1参考链接2//1.编译 一定要加ggcc -g MutiThreadParameter.cpp -o MutiThreadParameter -lpthread//2.利用gdb 读取代码gdb MutiThreadParameter//3.根据行数设置断点,比如下面是给18行设置断点b 18//4.执行程序run//5.单行执行语句n------------------------------------------------------//设置参数方法。先GDB进原创 2021-10-10 09:39:08 · 399 阅读 · 0 评论 -
C/C++--编译以及静态库和动态库的制作和使用
一、C语言由源代码生成可执行程序的过程如下C源程序->预处理->编译->优化程序->汇编程序->链接程序->可执行文件- 预处理过程:读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行转换。预处理过程还会删除程序中的注释和多余的空白字符。在C语言的程序中包括各种以符号#开头的编译指令,这些指令称为预处理命令。预处理命令属于C语言编译器,而不是C语言的组成部分,通过预处理命令可扩展C语言程序设计的环境。预处理指令是以#号开头的代码行,#号必须是该行除了原创 2021-09-29 14:12:34 · 4786 阅读 · 0 评论 -
C++常用函数
sizeofsizeof是一个操作符(operator)。其作用是返回一个对象或类型所占的内存字节数。可用于获取类、结构、共用体和其他用户自定义数据类型的大小.返回的是所占内存空间的大小。举例:char str[20]="0123456789";int a=strlen(str); //a=10; >>>> strlen 计算字符串的长度,以结束符 0x00 为字符串结束。int b=sizeof(str); //而b=20; >>>> si原创 2021-09-28 17:20:47 · 1304 阅读 · 0 评论 -
Command--makefile
参考链接原创 2021-09-28 11:22:02 · 360 阅读 · 0 评论 -
Linux&C++:网络编程(四)多线程
前言:学习编程一定要敲,接着测试,然后查资料,最后总结!!!一、线程的概念在同一个进程中,可以运行多个线程,运行于同一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享全局变量和对象,启动一个线程所消耗的资源比启动一个进程所消耗的资源要少。和多进程相比,多线程是一种比较节省资源的多任务操作方式。启动一个新的进程必须分配给它独立的地址空间,每个进程都有自己的堆栈段和数据段,系统开销比较高,进行数据的传递只能通过进行间通信的方式进行。二、多线程基础知识注意用命令查看线程时,进程ID都是一个,但原创 2021-09-26 16:50:17 · 355 阅读 · 0 评论 -
Linux&C++:网络编程(三)多进程
前言:学习编程一定要敲,接着测试,然后查资料,最后总结!!!一、进程的概念什么是进程?进程这个概念是针对系统而不是针对程序员的,对程序员来说,我们面对的概念是程序,当输入指令执行一个程序的时候,对系统而言,它将启动一个进程。进程就是正在内存中运行中的程序,Linux下一个进程在内存里有三部分的数据,就是“代码段”、”堆栈段”和”数据段”。”代码段”:顾名思义,就是存放了程序代码。“堆栈段”:存放的就是程序的返回地址、程序的参数以及程序的局部变量。“数据段”:则存放程序的全局变量,常数以及动态数据原创 2021-09-25 10:44:25 · 461 阅读 · 0 评论 -
Linux&C++:网络编程(二)信号
前言:学习编程一定要敲,接着测试,然后查资料,最后总结!!!一、为什么要掌握信号linux中程序是运行在后台的,没有交互的界面。那么就需要使用信号来给这些程序传递命令。服务程序运行在后台,如果想让中止它,强行杀掉不是个好办法,因为程序被杀的时候,程序突然死亡,没有释放资源,会影响系统的稳定,用Ctrl+c中止与杀程序是相同的效果。如果能向后台程序发送一个信号,后台程序收到这个信号后,调用一个函数,在函数中编写释放资源的代码,程序就可以有计划的退出,安全而体面。信号还可以用于网络服务程序抓包等,这是原创 2021-09-24 16:37:18 · 256 阅读 · 0 评论 -
Linux&C++:网络编程(一)最原始服务端及客户端代码实现和函数释义
前言:学习编程一定要敲,接着测试,然后查资料,最后总结!!!socket这个单词在C++网络编程中的含义socket中文就是插座。运行在计算机中的两个程序通过socket建立起一个通道,数据在通道中传输。socket把复杂的TCP/IP协议族隐藏了起来,对程序员来说,只要用好socket相关的函数,就可以完成网络通信。socket分类socket有两种通信机制,如下:流(stream)数据报(datagram)又称流socket数据报socket依赖协议基于原创 2021-09-23 17:27:01 · 506 阅读 · 0 评论