C/C++
文章平均质量分 51
朴实的语法,褪去语法糖理解本质。
hercu1iz
i am a robot.
展开
-
2021/10/05-位运算
《2021年10月5日》 【连续第5天总结】复习位运算在内存中的处理原创 2021-10-05 23:29:50 · 52 阅读 · 0 评论 -
__builtin_expect的使用
https://turingsec.github.io/builtin_expect/转载 2021-09-06 11:42:29 · 145 阅读 · 0 评论 -
参数数量可变的函数
参数数量可变的函数#include "stdafx.h"#include<stdio.h>#include<stdlib.h>#include<string.h>#include<stdarg.h>int fun(int num, ...) //...代表可变参数定义{ int i; int result; int sum=0; va_list parg; //va_list原型是char *类型 va_start(par原创 2021-07-11 21:16:08 · 113 阅读 · 0 评论 -
C++类与对象
类与对象类介绍(Class)结构定义结构结构声明内存分布定义说明访问结构点运算符---访问结构变量成员指针访问结构变量成员类型相同的结构体变量可以整体赋值类定义类(class,struct,union)类由成员构成类中public,protected,private类说明访问对象成员this指针构造函数与析构函数构造/析构函数原型初始式 的构造函数形式赋值构造函数(参数是自身类的一个对象)两种调用复制构造函数的方法深复制和浅复制静态成员静态成员函数友员函数(friend)友员函数访问私有数据成员友员类总结原创 2021-06-20 18:23:05 · 549 阅读 · 0 评论 -
C艹数组(各种姿势详解)
数组概念一维数组的定义一些初始化的实例一维数组访问指针偏移计算指针数组实例解析指向数组的指针数组探讨数组名aa和&aa多维数组定义多维数组二维数组访问数组作为函数参数随机函数动态存储New 和 Delete操作符字符数组与字符串字符数组存放字符串字符串的访问总结概念数组是由一定数目的同类元素顺序排列而成的结构类型数据一个数组在内存占有一片连续的存储区域数组名是存储空间的首地址数组的每个元素用下标变量标识一维数组的定义格式:类型 标识符 [表达式]类型数组元素类型标识符原创 2021-05-02 10:34:15 · 1492 阅读 · 0 评论 -
C++面向对象高级编程OOP
Object Oriented Programming概念:Object Based (基于对象) vs. Object Oriented (面向对象)头文件防止重复声明头文件的布局class的声明Class Template(模板)inline(内联)函数constructor(构造函数)参数传递::pass by value vs. pass by reference (to const)返回值传递:return by value vs. return by reference (to const)fr原创 2021-04-26 20:38:27 · 338 阅读 · 0 评论 -
PE_静态链接库/动态链接库
静态链接库/动态链接库静态链接库创建一个静态链接库使用静态链接库(两种方法)方法一方法二静态链接库的缺点:动态链接库创建一个动态链接库使用动态链接库(两种方法)方法一隐式链接方法二显示链接(利用API函数)使用.def文件导出动态链接库中的函数(隐藏函数名)静态链接库创建一个静态链接库1.创建项目:Win32 Static Library不用勾选选项,直接完成即可。2.随便创个类(方便一步到位获得xxx.h文件和xxx.cpp文件,当然你也可以选择自己分别创建这两个文件)3.完成后把里面构造原创 2021-03-31 00:38:16 · 557 阅读 · 0 评论 -
预处理器 | #
预处理器#argument结构由预处理器转换为字符串常量argument。##操作符用于把它两边的文本粘贴成同一个标识符。原创 2021-03-25 13:02:18 · 89 阅读 · 0 评论 -
动态内存分配
动态内存分配为什么需要动态内存分配所需头文件函数原型开辟空间未初始化释放空间开辟空间初始化为0修改原先已分配的内存块内存泄漏问题为什么需要动态内存分配数组存在空间容易被写死,动态内存分配能动态开辟空间大小。所需头文件stdlib.h函数原型开辟空间未初始化void *malloc(size_t) 开辟的是以字节为单位;开辟的空间未初始化;同时一定要记得检查分配是否成功;//检查验证代码int *p;p = malloc(size_t);if(p == NULL){ pri原创 2021-03-18 12:48:54 · 190 阅读 · 0 评论 -
注意:字符串常量 | 字符串变量
字符串常量直接声明如 char *a = “abcdef”字符串变量数组声明或者动态分配内存如 char a[] = “abc” 等价于 char a[] = {‘a’, ‘b’, ‘c’}字符串头文件头文件string.h常用处理字符串标准库函数size_t strlen(char const *string)char *strcpy(char *dst, char const *src)char *strcat(char *dst, char const *src)int *st原创 2021-03-16 22:31:44 · 119 阅读 · 0 评论 -
K&R C转义符
K&R C转义符符号含义\a警告字符\b退格键\f迸纸字符\n换行符\r回车符\t水平制表符\v垂直制表符\ddd1~3个八进制数字\xddd…十六进制注意:任何十六进制都可能包含在\xddd序列中,但如果结果值大小超过了表示字符的范围,则结果就是未定义。...原创 2021-03-06 10:19:40 · 185 阅读 · 0 评论 -
PWN_格式化字符串格式字符
格式化字符串格式字符格式含义%c输出字符,配上%n可用于向指定地址写数据。%d输出十进制整数,配上%n可用于向指定地址写数据。%x输出16进制数据,如%ix表示要泄漏偏移i处4字节长的16进制数据,x表示要泄漏偏移i处4字节长的16进制数据,%ix表示要泄漏偏移i处4字节长的16进制数据,lx表示要泄漏偏移i处8字节长的16进制数据,32bit和64bit环境下一样。%p输出16进制数据,与%x基本一样,只是附加了前缀0x,在32bit下输出4字节,在64bi原创 2021-03-04 13:49:19 · 520 阅读 · 2 评论 -
预测处理指令
预测处理指令更完美的注释更完美的注释C中我们常常使用///**/构成注释,但它们并不将其真正从源文件中删除更好的方法是使用预处理指令#if 0 statements#endif更多预处理指令详细参照预处理指令...原创 2021-03-04 13:38:31 · 181 阅读 · 1 评论 -
__attribute__
attribute_attribute 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。https://blog.csdn.net/qlexcel/article/details/92656797转载 2021-02-19 20:35:53 · 102 阅读 · 0 评论 -
C_位域(位段)
位域在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit),这就是位域。C语言标准规定,位域的宽度不能超过它所依附的数据类型的长度。通俗地讲,成员变量都是有类型的,这个类型限制了成员变量的最大长度,:后面的数字不能超过这个长度。C语言标准还规定,只有有限的几种数据类型可以用于位域。在 ANSI C 中,这几种数据类型是 int、signed int 和 unsigned int(int 默认就是 signed int);到了 C99,_Bool 也被支持了。域成员往往不原创 2021-02-19 20:31:13 · 139 阅读 · 2 评论 -
指针_褪去语法糖
指针前言指针->内存内存---用来存放东西指针(大小/类型/作用域)指针本质结束语前言是否你也曾上学时刚接触指针时理解和运用起来一脸懵,而书上的概念却有生涩难懂?其实当你完全掌握理解了指针的时候,这些问题都将迎刃而解,无论多级指针都可以褪去语法糖看其本质。(其实并没多级指针这概念,只是为了让人们更好理解才附加的)。有些东西理解起来可能很轻松,但表述出来确又是一回事。这也是很多书对指针的解释让人很难理解的原因。不过没关系,相信看完以下内容各位对指针能有新的理解,废话不多数看下直奔主题。指针-&g原创 2021-01-25 20:34:04 · 280 阅读 · 0 评论