C++
游吟诗人的博客
职场新人
展开
-
C/C++中volatile关键字详解
1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a hint to a compiler th转载 2016-09-06 23:49:06 · 453 阅读 · 0 评论 -
__stdcall,__cdecl,__fastcall的区别
__stdcall,__cdecl,__fastcall的区别一、三者区别一览表 __stdcall__cdecl__fastcall参数传递方式右->左 压栈右->左 压栈左边开始的两个不大于4字节(DWORD)的参数分别放在ECX和EDX寄存器,其余的参数仍旧自右向左压栈传送转载 2016-11-20 00:58:04 · 384 阅读 · 0 评论 -
c/c++强制类型转换
c/c++强制类型转换Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:代码:int转载 2016-10-31 14:52:13 · 380 阅读 · 0 评论 -
static_cast、dynamic_cast、const_cast和reinterpret_cast总结
static_cast、dynamic_cast、const_cast和reinterpret_cast总结原文地址:http://www.jellythink.com/archives/205前言这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中确实经常使用的。俗话说的好,不懂自己写的代码的程序员,不是好的程序员;如果一个程序员对于自己转载 2016-11-10 20:47:38 · 354 阅读 · 0 评论 -
联合体(union)的使用方法及其本质
有些基础知识快淡忘了,所以有必要复习一遍,在不借助课本死知识的前提下做些推理判断,温故知新。1.联合体union的基本特性——和struct的同与不同union,中文名“联合体、共用体”,在某种程度上类似结构体struct的一种数据结构,共用体(union)和结构体(struct)同样可以包含很多种数据类型和变量。不过区别也挺明显:结构体(struc转载 2016-09-26 22:20:55 · 783 阅读 · 0 评论 -
详解大端模式和小端模式
详解大端模式和小端模式一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下转载 2016-09-26 22:08:28 · 378 阅读 · 0 评论 -
虚函数的底层实现机制
1、多态的实现机制 C++在基类中声明一个带关键之Virtual的函数,这个函数叫虚函数;它可以在该基类的派生类中被重新定义并被赋予另外一种处理功能。通过指向指向派生类的基类指针或引用调用虚函数,编译器可以根据指向对象的类型在运行时决定调用的目标函数。这就实现了多态。2、实例[cpp] view plain copy #i转载 2016-09-26 21:52:07 · 520 阅读 · 0 评论 -
C++的函数重载
——每个现象后面都隐藏一个本质,关键在于我们是否去挖掘写在前面:函数重载的重要性不言而明,但是你知道C++中函数重载是如何实现的呢(虽然本文谈的是C++中函数重载的实现,但我想其它语言也是类似的)?这个可以分解为下面两个问题1、声明/定义重载函数时,是如何解决命名冲突的?(抛开函数重载不谈,using就是一种解决命名冲突的方法,解决命名冲突还有很多其它的方法,这里就不论述了)2、当转载 2016-09-26 21:48:49 · 374 阅读 · 0 评论 -
c语言中的sizeof(面试、笔试常考)
大部分公司在招聘技术职位面试的时候,都会考c语言基础,而sizeof是他们最喜欢考的知识点,现总结如下:1、定义 sizeof是C语言的一种单目操作符,它并不是函数。sizeof操作符以字节形式给出了其操作数所占存储空间的大小。操作数可以是一个表达式或括在括号内的类型名。操作数所占存储空间的大小由操作数的类型决定。作用就是返回一个对象或者类型所占的内存字节数。2、语法转载 2016-09-22 00:28:10 · 1043 阅读 · 0 评论 -
C语言宏定义##连接符和#符的使用
C语言宏定义##连接符和#符的使用 C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号。比如下转载 2017-01-09 22:15:59 · 499 阅读 · 0 评论