
C++
王林森linux
这个作者很懒,什么都没留下…
展开
-
__attribute__机制介绍
1. __attribute__GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)__attribute__前后都有两个下划线,并且后面会紧跟一对原括弧,括弧里面是相应的__attribu转载 2013-12-30 22:27:26 · 401 阅读 · 0 评论 -
c++中__declspec用法总结
转载自:http://pangpengzhouwenwen.blog.163.com/blog/static/3007819220081182742178/1. __declspec(align(16)) struct SS{ int a,b; }; __declspec(align())与#pragma pack()是一对兄弟,前者规定了对齐的最小值,后者规定了对齐的最转载 2013-12-17 08:59:08 · 497 阅读 · 0 评论 -
标准C++中的string类的用法总结
标准C++中的string类的用法总结相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C+转载 2013-12-19 14:49:36 · 421 阅读 · 0 评论 -
C++开源库
前阵子写了《C++ 的“武”和“功”》。谈到C++语言知识,属于“功”,而那些强大的C++库,属于“武”,属于十八般武艺。这篇文章我首先把《白话C++》书中讲到C++库,及相关工具,简单做个介绍。这些库我是怎么为C++初学者挑出来的呢?(一)、它们必须都是开源产品,又为什么要是开源的呢? 1.1、十年前的国内C++学习者,可以完全不必理会开源库,但在几年,编程界中转载 2014-01-03 17:43:39 · 435 阅读 · 0 评论 -
__thread 和 __typeof__关键字
__thread:在多线程变成中,使用于global变量,使每个线程都私有一份。static __thread int count;void *function1(void *argc){printf("porgran pid:%u, the function1 pthread id is %lu, count:%d\n",getpid(), pthread_self(), c转载 2013-12-21 17:50:21 · 554 阅读 · 0 评论 -
RDTSC命令详解
操作码指令说明0F 31RDTSC将时间标签计数器读入 EDX:EAX说明将处理器的时间标签计数器的当前值加载到 EDX:EAX 寄存器。时间标签计数器包含在 64 位 MSR 中。MSR 的高 32 位加载到 EDX 寄存器,低 32 位加载到 EAX 寄存器。处理器每时钟周期递增时间标签转载 2013-12-27 21:47:18 · 638 阅读 · 0 评论 -
_declspec(naked) 使用
最近学习驱动开发,在写绕过inline hook的代码时,有个问题困扰了我一天,最后发现原来是在内嵌汇编时,没有使用_declspec(naked)导致的,看来是偶的基础知识掌握的不牢固啊(得补一下了,磨刀不误砍柴功),在此给记录一下,给自己一个警示。对于jmp类型的hook, 如果自己的过程没有使用_declspec(naked),那么系统会自动给添加一些额外的代码,控制堆栈转载 2013-12-27 21:44:23 · 625 阅读 · 0 评论 -
C++ 关键字typeid
在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和typeid。 dynam转载 2014-01-16 13:54:11 · 428 阅读 · 0 评论 -
常用hash算法及评测
转自: http://yuhuafx.blog.hexun.com/58369610_d.htmlRS hash 算法unsigned int RSHash(char* str, unsigned int len){ unsigned int b = 378551; unsigned int a = 63689;转载 2016-03-04 13:19:16 · 522 阅读 · 0 评论