01、C/C++
文章平均质量分 63
miyunhong
这个作者很懒,什么都没留下…
展开
-
sizeof -----------转载
1. 定义: sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。 MSDN上的解释为: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t. 其返回值类型转载 2011-03-24 22:02:00 · 833 阅读 · 0 评论 -
动态链接库、静态链接库;动态链接、静态链接
转载自: http://www.cnblogs.com/dawen/archive/2010/09/22/1833031.html术语:动态链接库 静态链接库 动态链接 静态链接 其中动态链接库和静态链接库表示库本身文件,而动态链接和静态链接表示程序对库本身文转载 2011-08-24 12:51:35 · 693 阅读 · 0 评论 -
为什么需要 auto_ptr_ref
转载自: http://jarfield.iteye.com/blog/746062这几天开始拜读侯捷先生和孟岩先生的译作《C++标准程序库:自修教程与参考手册》 。两位先生确实译功上乘,读得很顺。但是读到P55页关于auto_ptr_ref的讨论,却百思不得其解:为什么需要转载 2011-08-20 17:09:02 · 559 阅读 · 0 评论 -
《Expert C Programming 》学习笔记
一、P19 将 char ** 类型 传给 const char ** 1 foo(const char **p){ } 2 3 void main(int argc, char **argv) 4 { 5 foo(arvg); 6 }原创 2011-03-26 20:59:00 · 1154 阅读 · 0 评论 -
strcpy,strncpy,strlcpy,memcpy
转载自:http://www.cnblogs.com/buffer/archive/2009/06/01/1493781.html1. strcpy我们知道,strcpy 是依据 /0 作为结束判断的,如果 to 的空间不够,则会引起 buffer overflow。strcpy转载 2011-03-14 15:59:00 · 704 阅读 · 0 评论 -
C/C++ ------ static 的作用
转自:http://blog.csdn.net/xiaocai0001/archive/2006/04/14/662921.aspx static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种在C/C++语言中使用, 第三种只在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面转载 2010-05-10 14:14:00 · 966 阅读 · 0 评论 -
如何理解stdlib.h里的_countof()宏
在stdlib.h里有一个宏_countof,如下:extern "C++"{template char (*__countof_helper(UNALIGNED _CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray];#defi转载 2011-03-22 19:41:00 · 616 阅读 · 0 评论 -
C++中的内部连接与外部连接(二) -------转载
转载自:http://blog.csdn.net/SpitFire/archive/2004/03/18/11302.aspx c)类定义总有内部连接,而非inline类成员函数定义总有外部连接,不论这个成员函数是静态、虚拟还是一般成员函数,类静态数据成员定义总有外部连接。 1.类的定义有内部连接。如果不是,想象一下你在4个cpp文件中include定义了类Base转载 2011-06-21 11:23:00 · 588 阅读 · 0 评论 -
C++中的内部连接与外部连接(一)-------转载
找了好久,转载自:http://blog.csdn.net/SpitFire/archive/2004/03/18/11301.aspx在说内部连接与外部连接前,先说明一些概念。 1.声明 一个声明将一个名称引入一个作用域; 在c++中,在一个作用域中重复一个声明是合法的 以下都是声明: int foo转载 2011-06-21 11:12:00 · 679 阅读 · 0 评论 -
大端 小端 的区别
转载自:http://www.sf.org.cn/Article/base/200606/18679.html因为现行的计算机都是以八位一个字节为存储单位,那么一个16位的整数,也就是C语言中的short,在内存中可能有两种存储顺序big-endian和litte-endian.考虑一个short整数0x3132(0x32是低位,0x31是高位),把它赋值给一个short变量,那么它在内存中的存储可能有如下两种情况:大端字节(Big-endian):----------------->>>>>>>>内存地址转载 2011-03-14 11:20:00 · 1010 阅读 · 0 评论 -
strcpy 的实现
<br />转载自:http://www.vcstudy.com/C/cshili/vcxuexi_1198.html<br />strcpy 看似是标准函数库里面最简单的函数了,谁都可以实现这个函数,<br /> 但是,并不一定谁都能实现的很好。林锐博士面试微软的时候,就做这个题目。<br /> 他也没有把这个题目完全的做对。建议你自己先动手写一个自己的,不要先看<br /> 答案。估计有 90%的人写出来的,达不到性能的要求。<br /> 标准答案是这样的:<br /> static char转载 2011-03-06 20:06:00 · 1014 阅读 · 1 评论 -
const 在C C++ 中的使用 和 区别-----------整理自网络
一、C中CONST的使用来自:http://blog.chinaunix.net/u/26828/showart_667881.htmlconst是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。 虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。 问题:const变量 & 常量转载 2010-09-24 21:47:00 · 4667 阅读 · 1 评论 -
谈三层结构与MVC模式的区别-------转载
<br />转载自:http://www.cnblogs.com/wisdomqq/archive/2009/04/29/1446579.html<br />在CSDN和园子里有朋友谈到三层与MVC的区别,以前也有人抛出这个问题,本人对来公司面试的朋友也偶乐会提这方面的问题。<br /> 那么我也来讲讲我对这两者的理解吧。<br /> 首先对这个题目,本身是存在问题的,“XX结构”与“XX模式”的区别?请问中国社会制度与美国人生活方式有什么区别?<br /> 这两者本身讲的是不同方向与角度转载 2010-09-21 15:32:00 · 562 阅读 · 0 评论 -
do{}while(0)宏定义的好处
<br /> <br />转载自:http://blog.ednchina.com/fpga2006/34658/message.aspx<br /> #define MACRO_NAME(para) do{macro content}while(0)<br /> 的格式,总结了以下几个原因:<br /> <br /> 1,空的宏定义避免warning:<br /> #define foo() do{}while(0)<br /> <br /> 2,存在一个独立的block,可以用来进行变量定义,进行比转载 2010-07-21 11:25:00 · 580 阅读 · 0 评论 -
typename 的 含义
来自: http://dev.yesky.com/13/2221013.shtml 问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? template class Widget;转载 2011-10-15 16:11:32 · 608 阅读 · 0 评论 -
协变、抗变
协变、抗变英文分别是 Covariance 、Contravariance ,形容词为 '-ce '==> '-t ' 这是数学和物理学术语,在OO领域中也有应用。 “共变”、“逆变”是一种译法,另外一种译法是“协变”、“抗变”。特别在OO领域,基本上都是用后面这组。此外还有“不变(Nonvariance)”。 在OO中,协变是指按照继承链正向改变,抗变是指逆向改变转载 2009-09-16 10:41:00 · 2476 阅读 · 0 评论 -
重载(overload)、覆盖(override) 重写 (overwrite)
一、重载(1)相同的范围(在同一个作用域中) ; (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。(5)返回值可以不同; 二、覆盖是指派生类函数覆盖基类函数,特征是: (1)不在同一个作用域(分别位于派生类与基类) ; (2)函数名字相同; (3)参数必须相同,即使参数协变也不行(4)基类函数必须有 virtual 关键字。(5)返回值相同(或原创 2009-09-16 09:20:00 · 1344 阅读 · 1 评论 -
boost 库 安装
http://blog.csdn.net/yockie/article/details/8856190第1步:先从官网(www.boost.org)下载最新版的BOOST源码,如图所示我这里下的是zip的那个第2步:编译源代码(放心.这里是傻瓜式的操作,很容易操作)(1)先把源代码放在E盘,例如 E:\boost_1_53_0(2)在源代码中转载 2016-10-20 12:46:02 · 595 阅读 · 0 评论 -
C++ 多重继承 虚拟继承的使用
转载自:http://www.cppblog.com/zmllegtui/archive/2008/10/28/65385.aspx面向对象编程语言中的多重继承指的是一个类别可以同时从多于一个父类继承行为与特征的功能。与单一继承相对,单一继承指一个类别只可以继承自一个父类。 重温Java,发现Java竟然不支持类多重继承(直接继承类),却允许接口的多重继承。。 C+转载 2016-10-28 15:12:25 · 2023 阅读 · 0 评论 -
去掉“正在更新IntelliSense”
使用VS2008或者2005时候,当切换配置,总是显示“正在更新IntelliSense...”。例如从Debug切换到Release,这时候VS开始更新IntelliSense,CPU占用上升到100%。 解决方法就是将/Microsoft Visual Studio 9.0/VC/vcpackages/feacp.dll改名,或者直接删除。反正用Visual Assist完全可转载 2014-08-15 11:04:55 · 2157 阅读 · 0 评论 -
(inline 和 宏 区别) || (const 和 #define区别)
__inline关键字已经使用KEIL4 ARM编译测试过,验证了宏定义和内联函数的区别,自己总结宏定义和内联函数都不生成代码段,程序运行也没有参数压栈开销内联函数检查调用参数的合法性,也可以进行参数类型转换一、inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它转载 2011-07-16 18:22:24 · 1087 阅读 · 0 评论 -
赋值运算符重载函数 返回引用和返回对象的区别
赋值重载符的定义 返回引用和返回对象的区别#include "stdafx.h"#include <string>using namespace std;class CStudent{public: CStudent(char *pName) :m_pName(NULL) { if (NULL == pName) { re原创 2016-04-14 10:19:14 · 4777 阅读 · 1 评论 -
VC编译选项 设置
在vc中debug版本中包含了很多调试信息,而release版本则是发布版,而这些信息都在编译开关中体现出来了。编译器的编译选项有速度优先和代码最小等选项,可以调节。还有其他信息。vc可以可以通过Settings -->Project-->C/C++-->Customize来设置这个编译开关,快捷键(ALT+F7)具体体现如下:/C:在预处理输出中保留注释语句/c:只编译,不连接,转载 2015-04-15 11:23:54 · 5413 阅读 · 1 评论 -
字符编码笔记:ASCII,Unicode和UTF-8
转载自:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html作者: 阮一峰日期: 2007年10月28日今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。转载 2015-02-05 14:40:02 · 554 阅读 · 0 评论 -
utf8汉字编码16进制对照
本文信息来自:http://blog.chinaunix.net/uid-25544300-id-3281847.htmlGB Unicode UTF-8 Chinese CharacterCode code# Code (coded in UTF-8)D2BB 4E00 E4 B8 80 一B6A1 4E01 E4 B8 81转载 2014-03-18 22:10:05 · 18621 阅读 · 0 评论 -
C++编译器与链接器工作原理
// 本文来自:http://blog.sina.com.cn/s/blog_5f8817250100i3oz.html 感谢!这里并没不是讨论大学课程中所学的《编译原理》,只是写一些我自己对C++编译器及链接器的工作原理的理解和看法吧,以我的水平,还达不到讲解编译原理(这个很复杂,大学时几乎没学明白)。要明白的几个概念: 1、编译:编译器对源文件进行编译,就是把源文件中的转载 2014-03-01 10:57:52 · 595 阅读 · 0 评论 -
C语言实现继承和多态
本文来自:http://blog.chinaunix.net/uid-20940095-id-66146.html 非常感谢!继承和多态是面向对象语言最强大的功能。有了继承和多态,我们可以完成代码重用。在C中有许多技巧可以实现多态。本文的目的就是演示一种简单和容易的技术,在C中应用继承和多态。通过创建一个VTable(virtual table)和在基类和派生类对象之间提供正确的访转载 2014-03-01 11:16:10 · 1201 阅读 · 0 评论 -
你的变量究竟存储在什么地方?
sfghttp://wenku.baidu.com/view/4a686136a32d7375a417804f.html智能指针http://baike.baidu.com/view/1391603.htmminix 3http://download.csdn.net/tag/minix3/track_scoresasdfad转载 2011-11-24 18:03:48 · 660 阅读 · 0 评论 -
C 字符串 库函数 的实现
http://blog.csdn.net/ammana_babi/article/category/257682/1转载 2011-07-16 21:11:18 · 536 阅读 · 0 评论 -
C/C++ ------ 函数参数 为指针或引用时 强制转化 非常危险
// class CAnimal{public: short int m_hight; short int m_age;};void GetLen(int &len){ len=0;}int main(){ CAnimal an; an.m_age =1; an.m_hight =1; GetLen((int&)an.m_age);// 危险 return 0;}原创 2010-06-28 16:34:00 · 701 阅读 · 0 评论 -
#pragma与__pragma的区别与联系
转自: http://hi.baidu.com/baiyw920/blog/item/7092d5fcdca37c1108244d73.html __pragma与#pragma的功能相同,所不同的是:1.#pragma是预处理器指令;__pragma是关键字。2.对于#pragma,warning,once等选项跟在其后面,中间以空格隔开;而对于__pragma,warn转载 2010-04-10 18:26:00 · 1128 阅读 · 0 评论 -
Inside the C++ Object Model 笔记1
Inside the C++ Object Model P73中讲到不管使用memcpy()或memset(),都只有在“class 不含任何由编译器产生的内部members”时才能有效运行,否则会导致那些“被编译器产生的内部members”的初值被改写。比如: #include using namespace std;class Shape{public: Sha原创 2009-11-24 14:15:00 · 479 阅读 · 0 评论 -
C++中class与struct的区别
来自天极网: http://dev.yesky.com/19/2580019.shtml很老的问题了。今天稍微总结了下,有遗漏的地方和错误的地方还望大家补充。 关于使用大括号初始化 class和struct如果定义了构造函数的话,都不能用大括号进行初始化 如果没有定义构造函数,struct可以用大括号初始化。 如果没有定义构造函数,且所有成员变量全是public的话,可以用大括号初转载 2009-11-19 17:49:00 · 464 阅读 · 0 评论 -
#pragma指令用法 字节对齐问题
转载自: http://www.jysls.com/thread-19975-1-1.html 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器转载 2009-11-13 09:42:00 · 905 阅读 · 1 评论 -
带参的main 函数
/*删除文本文件中所有以"//"开头字符串的C++程序。--------------------------------------------------------------------------------*/#include #include using namespace std;/********************arg原创 2009-11-06 10:19:00 · 668 阅读 · 0 评论 -
获得关于 错误信息 说明信息
IDE: VS2005 以下代码 报error C44301.cpp里有以下代码: fun(int a) { printf("abc");} 报下面的错误:1.cpp(15) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int原创 2009-11-05 14:23:00 · 706 阅读 · 0 评论 -
STL中map与hash_map容器的选择 ------------转载
转载自: http://show.rednet.cn/user1/213546/archives/2007/35467.html 这篇文章来自我今天碰到的一个问题,一个朋友问我使用map和hash_map的效率问题,虽然我也了解一些,但是我不敢直接告诉朋友,因为我怕我说错了,通过我查询一些帖子,我这里做一个总结!内容分别来自alvin_lee ,codeproject,codeguru.转载 2009-10-15 16:18:00 · 528 阅读 · 0 评论 -
#define与typedef -------------- 整理于网络
1)转载自: http://blog.ednchina.com/kingshen/229549/message.aspx typedef用法 与#define typedef根据名字就知道是对类的定义。但是值得注意的是,它并不定义新的类型,而是对已有的类型定义一个其他的名字。本人生就略愚,常常搞不清与#define的关系,难道仅仅是所定义得到的新类型所在的位置不同吗?首先我们仔细转载 2009-10-15 10:46:00 · 592 阅读 · 0 评论 -
static 成员变量 初始化问题
VS2005 环境下: 1.h /**************************************/#pragma once class Example {public: static double rate ; static const int vecSize=10; // 如果需要如下定义,则必须在类体中原创 2009-10-14 21:53:00 · 5566 阅读 · 0 评论 -
getch(),getche(),getchar()的区别
整理自网络:(1) getch()和getche()函数 这两个函数都是从键盘上读入一个字符。其调用格式为: getch(); getche(); 两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche() 函数却将读入的字符回显到显示屏幕上。#include "stdio.h" #include int main转载 2009-10-12 23:56:00 · 722 阅读 · 0 评论