
c++
OS_Net_DCE
专注于操作系统(linux,windows),网络,分布式系统,c++
展开
-
LD_PRELOAD实现API劫持
API劫持主要是利用动态链接技术,通过预先加载SO,隐藏符号。达到动态替换API的功能。API劫持技术可用于热补丁等领域。原创 2021-04-17 17:46:36 · 1647 阅读 · 0 评论 -
cland-tidy简介
最近几天在关注clang-tidy,有一些体会,简单做一些笔记。分享给感兴趣的朋友们,也是给将来的自己看。1、clang-tidy是基于AST的静态检查工具。因为它基于AST,所以要比基于正则表达式的静态检查工具更为精准,但是带来的缺点就是要比基于正则表达式的静态检查工具慢一点。也是因为它基于AST,所以clang-tidy运行的时候需要知道编译命令。2、clang-tidy不仅仅可以做静态检查,还可以做一些修复工作。3、clang-tidy是基于LibTooling的工具。而LibTooling是一个库,转载 2020-08-07 20:15:34 · 924 阅读 · 0 评论 -
c++实现pimpl
原文链接:https://blog.youkuaiyun.com/lihao21/article/details/47610309 Pimpl(pointer to implementation, 指向实现的指针)是一种常用的,用来对“类的接口与实现”进行解转载 2020-08-03 10:18:15 · 238 阅读 · 1 评论 -
c++编译error: declaration of anonymous class must be a definition
错误原因想声明一个匿名类,却没有一个类体结构。比如如果有下面的代码,就会出现这样的错误#define optional#include <iostream>#include <map>class optional;int main(int argc, char *argv[]){ std::cout<<"1111"<<std::endl;}常见导致该问题的错误在作类前置声明的时候,若有宏定义和类名冲突,即会导致该问题解决当原创 2020-07-20 20:47:37 · 6700 阅读 · 0 评论 -
关于模板函数声明与定义的问题
c++ primer上说:c++模板函数的声明与定义通常放在头文件中,而普通的函数通常是声明放在头文件中,定义放在源文件中,为什么会有这样的区别呢?模板函数与普通成员函数到底有什么区别?测试代码:tem.h#ifndef _TEM_H#define _TEM_Htemplate T add(T a,T b);//{//return a+b;//}原创 2016-01-08 21:20:37 · 15151 阅读 · 1 评论 -
C++中内置变量初始化及private继承相关
1.关于C++中内置变量初始化问题 1.1对于static 变量 无论是局部变量还是全局变量,均会执行默认初始化,据我理解,若是全局变量,则由编译器在编译时便确定了其地址,此时执行默认初始化。若是局部变量,则一样,编译器在编译时扫描到函数内部的局部变量时,此时也为它在静态存储区分配了空间。就是说无论是全局的还是局部的,都是在编译阶段就确定了它的虚拟址,因此由编译原创 2016-05-06 20:53:42 · 1755 阅读 · 0 评论 -
c语言函数调用全过程
函数栈桢: 从高地址到低地址依次是: 函数参数 返回地址 ebp 局部对象下面分析一段代码的过程: int g(int x,int y) { int c=1; return x +y+ c; }int f(int x) { int a=5; int b=4; return g(a,b); }int main(void) { return f(8原创 2016-02-25 18:22:45 · 683 阅读 · 0 评论