VC++
文章平均质量分 81
Hk_Jovi
这个作者很懒,什么都没留下…
展开
-
浅谈大小端存储
最近学习SOCKET,将大小端存储做一个总结:小端(Big-Endian)模式: 内存的低地址存数据的低位,内存的高地址存数据的高位。大端(Little-Endian)模式:内存的低位存数据的高位,内存的高地址存数据的低位。首先我们定义一个unsigned int i = 0x12345678;我们看看内存中的存储即:高内存地址保存高位0x12,依次向低内原创 2015-06-16 15:10:37 · 642 阅读 · 0 评论 -
浅谈C++类大小以及内存布局
写代码不自然的都会用到有关Class的内容,现在我来浅谈一下关于Class大小以及内存布局的一些问题。 (1)空类class CEmpty{};//size = 1注原创 2015-05-23 20:51:27 · 666 阅读 · 0 评论 -
浅谈Interlocked operations
Interlocked系列的原子操作函数,你了解到什么程度呢?原创 2015-06-30 17:19:06 · 1001 阅读 · 0 评论 -
C语言 printf计算顺序和压栈顺序初探
不同编译器产生的结果不同,本文测试环境为VS2013和VC6. 先看以下代码:原创 2015-05-13 17:28:33 · 810 阅读 · 0 评论 -
浅谈C++结构体的内存对齐
最近在认真学习C++基础,就此对于结构体的内存对齐做个学习笔记原创 2015-05-24 17:58:15 · 671 阅读 · 0 评论 -
C++智能指针的实现
C++智能指针实现(多线程安全)原创 2015-07-02 01:50:32 · 795 阅读 · 0 评论 -
进程、线程同步互斥学习 —— 互斥器
进程、线程同步互斥学习 —— 互斥器介绍以及封装原创 2015-06-26 13:34:38 · 489 阅读 · 0 评论 -
浅谈线程同步方法性能比较
简要将Win32编程中的四种同步方式的性能作比较,分别有CriticalSection,Semaphore,Mutex,Event。原创 2015-06-27 00:29:48 · 816 阅读 · 0 评论 -
进程、线程同步互斥学习 —— 事件
进程、线程同步互斥学习 —— 事件以及封装原创 2015-06-26 21:02:32 · 433 阅读 · 0 评论 -
C++函数可变参数实现原理探究——以实现printf为例
当我们构建函数时,如果我们希望得到的是不定的参数,那我们应该怎么办呢?下面几个关键的macro上场:#define _ADDRESSOF(v) (&reinterpret_cast(v))typedef char* va_list;#define _INTSIZEOF(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) -1))#defi原创 2015-06-06 00:14:26 · 587 阅读 · 0 评论 -
C语言优先级之计算总结
今天在网上博客上发现一个很好的优先级记忆方法,链接:http://blog.csdn.net/skywalker_leo/article/details/6237222此贴用来积累关于优先级的计算:(1) int x = 7,y =3; 1 ? ++x,++y:--x,--y; std::cout解:根据优先级,实际代码执行是这样的:(1? ++x , +原创 2015-05-29 06:23:12 · 684 阅读 · 1 评论 -
进程、线程同步互斥学习 —— 信号量
进程、线程同步互斥学习 —— 信号量 以及 信号量封装原创 2015-06-25 17:15:45 · 444 阅读 · 0 评论 -
进程、线程同步互斥学习 —— 临界区
进程、线程同步互斥学习 —— 临界区 以及 临界区封装原创 2015-06-18 18:52:01 · 580 阅读 · 0 评论 -
浅谈指针的偏移
记得当初学习指针的时候,总是把指针和地址混为一谈,总以为说到指针就是指某个地址而已,后来加强对各类指针的认识以后,才认识到指针不止是简单的地址。指针是一种类型,通过类型可以声明一个变量并保存一个内存地址,不同类型的指针对保存的地址会有不同的解释,编译器根据指针的类型(对应的偏移量)解引用出相应的数据。首先在32位程序设计里,指针大小为4bytes,满足2^32 寻址范围。到底偏原创 2015-06-17 19:02:44 · 4516 阅读 · 0 评论 -
浅析Scanf源码
记得当初从C语言学习开始就使用scanf,关于scanf的用法也略知一二,对使用scanf出现的问题并未进行深刻探究,故笔者打算对scanf实现进行探究。如何找到scanf源码关于VC中的CRT代码在 VS目录下的\VC\crt\src中,我们就先把scanf.c扒出来。int __cdecl scanf ( const char *format,原创 2015-06-16 19:54:07 · 13540 阅读 · 1 评论 -
float的内存布局
我们在代码中常常用到float与double,相比于int等类型,很多人并不知道float与double的存储方式。我对float存储方式做个总结原创 2015-06-16 17:59:41 · 815 阅读 · 0 评论 -
__cdecl 与 _stdcall 的栈平衡
各类关于VC的书中都多少写到:1、_stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈。2、__cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函数采用从右到左的压栈方式。注意:对于可变参数的成员函数,始终使用__cdecl的转换方式。__原创 2015-06-11 13:52:08 · 1795 阅读 · 1 评论