随笔分类 -  深入C++

上一页 1 2
静态链接到CRT(LIBCMT.lib)的隐患
摘要:转自:http://www.codeproject.com/Articles/22642/What-Every-Computer-Programmer-Should-Know-About-W When the CRT/C++ Library is linked statically, then all its code is embedded into the resulting exec... 阅读全文
posted @ 2013-02-06 16:30 qinfengxiaoyue 阅读(692) 评论(0) 推荐(0)
C/C++:函数的编译方式与调用约定以及extern “C”的使用
摘要:函数在C++编译方式与C编译方式下的主要不同在于:由于C++引入了函数重载(overload),因此编译器对同名函数进行了名称重整(name mangle)。因此,在C++中引 用其他C函数库时,需要对声明使用的函数做适当的处理,以告知编译器做出适应的名称处理。 函数的调用约定涉及了函数参数的入栈顺序、清栈主体(负责清理栈的主体:函数自身还是调用函数者?)、部分名称重整。 如,在C编译方式下... 阅读全文
posted @ 2013-02-04 15:48 qinfengxiaoyue 阅读(12441) 评论(0) 推荐(1)
C++ : 编译单元、声明和定义、头文件作用、防止头文件在同一个编译单元重复引用、static和不具名空间
摘要:转 自:http://www.cnblogs.com/rocketfan/archive/2009/10/02/1577361.html 1. 编译单元:一个.cc或.cpp文件作为一个编译单元,生成.o。 2. 普通数据类型的定义、声明,函数的定义、声明(类函数是一样的)。 extern int x; // 变量是声明,并未实际分配地址,未产生实际目标代码 void pr... 阅读全文
posted @ 2013-02-03 15:36 qinfengxiaoyue 阅读(1677) 评论(0) 推荐(0)
C++/C宏定义中## 连接符与# 符的含义
摘要:转自: 1.http://blog.csdn.net/believefym/article/details/1836162 2.http://www.yunsec.net/a/school/ymbc/C/2009/1027/1243.html ## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可 以是第一个或者最后一个... 阅读全文
posted @ 2013-02-03 00:24 qinfengxiaoyue 阅读(9296) 评论(0) 推荐(0)
const关键字的深度解析
摘要:转自:http://www.cnblogs.com/zhengyuhong/archive/2011/12/23/2299713.html 注意:当const修饰函数的输入参数和返回值时,一定是和对象的指针或引用结合在一起的。这既保证了函数的效率(传入、返回的对 象指针或引用不必像传值那样经过函数内部临时对象的构造、赋值、析构等过程 [这里的“传值”指的是传对象的值,不是传内置数据 的值] ... 阅读全文
posted @ 2013-02-02 18:31 qinfengxiaoyue 阅读(301) 评论(0) 推荐(0)
转:C 和 C++ 字符串字面量的比较
摘要:转自:http://bbs.chinaunix.net/viewthread.php?tid=936821 ================================================== Keywords: String Literal, Object, Array, Lvalue Author: whyglinux<whyglinux AT gmail DOT ... 阅读全文
posted @ 2013-02-02 16:39 qinfengxiaoyue 阅读(1161) 评论(1) 推荐(0)
C/C++中声明指针变量时星号是靠近变量名还是靠近类型?
摘要:摘自<<C和指针>>3.23int *a;int* a;两者意思相同且后者看上去更为清楚:a被声明为类型为 int* 的指针. 但是,这并不是一个好技巧,原因如下:int* b, c, d;人们很自然地以为这条语句把所有三个变量声明为指向整形的指针, 但事实上并非如此. 我们被它的形式愚弄了. 星号实际上是表达式 *b 的一部分, 只对这个标识符有用. b 是一个指针, 但其余两个变量只是普通的整形. 要声明三个指针, 正确的语句如下:int *b, *c, *d; 阅读全文
posted @ 2013-02-02 00:59 qinfengxiaoyue 阅读(6669) 评论(0) 推荐(1)
关于字符串字面量的地址小测试
摘要:使用VC2008.#include<iostream>using namespace std;int main(){cout<<"hello"[0]<<"hello"[1]<<"hello"[2]<<"hello"[3]<<"hello"[4]<<"的长度是:"<<sizeof("hello")<<endl;cout<<"hel 阅读全文
posted @ 2013-02-02 00:57 qinfengxiaoyue 阅读(347) 评论(0) 推荐(0)
转一篇比较清晰简单的C++文件操作
摘要:from:http://www.vckbase.com/document/viewdoc/?id=1439用C++进行简单的文件I/O操作原文出处:Simple File I/O Using C++ 序论 我曾发表过文件输入输出的文章,现在觉得有必要再写一点。文件 I/O 在C++中比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。 一、ASCII 输出 为了使用下面的方法, 你必须包含头文件 <fstream.h> (译者注:在标准C++中,已经使用 <fstream> 取... 阅读全文
posted @ 2013-02-02 00:49 qinfengxiaoyue 阅读(425) 评论(1) 推荐(0)
C++八大金刚
摘要:1、Essentital c++---lippman---C++之父,旁枝暂略,主攻核心,轻薄短小,初学者 2、The c++ programming language----C++之父,技术权威,用词深峻,思想深远,c++百科全书代表,圣经。 3、c++ Primer----lippman---纵横书市十数年,c++最佳教本,c++百科全书代表。 4、Inside the c++ obje... 阅读全文
posted @ 2013-01-31 23:17 qinfengxiaoyue 阅读(389) 评论(0) 推荐(0)
#pragma预处理命令
摘要:#pragma可以说是C++中最复杂的预处理指令了,下面是最常用的几个#pragma指令: #pragma comment(lib,"XXX.lib") 表示链接XXX.lib这个库,和在工程设置里写上XXX.lib的效果一样。 #pragma comment(linker,"/ENTRY:main_function") 表示指定链接器选项/ENTRY:main_function #pragma ... 阅读全文
posted @ 2012-06-05 01:12 qinfengxiaoyue 阅读(36330) 评论(1) 推荐(12)
#pragma comment linker 下的 /subsystem:windows 与 /subsystem:console
摘要:关键字:#pragma comment linker /subsystem:windows /subsystem:console 转自:http://blog.csdn.net/lostangels/article/details/2027642 操作系统装载应用程序后,做完初始化工作就转到程序的入口点执行。程序的默认入口点实际上是由连接程序设置的,不同的连接器选择的入口函数也不尽相同。在VC+... 阅读全文
posted @ 2012-05-27 00:16 qinfengxiaoyue 阅读(1985) 评论(1) 推荐(1)
Windows风格与C/C++风格:UNICODE VS _UNICODE 与 TEXT() VS _T()
摘要:转自:http://www.mouseos.com/win64/TEXT_T.html 在 Windows 上编程,当使用字符串时常会使用: TEXT() 宏 _T() 宏 这两个宏作用是对字符串常量进行分类,下面的代码中: LPTSTR lpStrA = TEXT("Hello"); LPTSTR lpStrB = _T("Hello"); 使用 TEXT() 与 _T() 效果是一样的。... 阅读全文
posted @ 2012-05-26 23:56 qinfengxiaoyue 阅读(680) 评论(0) 推荐(0)
VC预定义宏
摘要:一、ANSI C标准预定义宏 __LINE__ 、__FILE__ 、__DATE__ 、__TIME__、__STDC__ 、__TIMESTAMP__ MSDN上的注解: __DATE__ The compilation date of the current source file. The date is a string literal of the form Mmm dd yyyy... 阅读全文
posted @ 2012-05-26 23:49 qinfengxiaoyue 阅读(1399) 评论(0) 推荐(0)
#ifdef 中的逻辑与或操作
摘要:关键字:ifdef 逻辑与或 编译预处理 转自:http://blog.chinaunix.net/uid-126438-id-2924676.html 原本用宏定义包起来的代码类似如下: #ifndef A // codes #endif // A 现在要加入一个宏定义 B,实现类似这样的条件判断(而实际上这样是不行的): #ifndef A && ifdef B 其实应该这样: #i... 阅读全文
posted @ 2012-05-26 23:40 qinfengxiaoyue 阅读(3488) 评论(0) 推荐(1)
C++ :enum及其使用
摘要:转自:http://blog.csdn.net/erazy0/article/details/5463837 为了说明这个手法具体该咋用,咱举一个简单的例子来说事儿。比方说要开发一个网络程序,其中需要统计各种网络协议的数据包数量。 ★版本1 假设一开始只需要处理HTTP和FTP两种协议。有些同学不假思索,立即会声明如下两个整数用于统计: int nCntHttp = 0;int nCntF... 阅读全文
posted @ 2012-05-26 23:37 qinfengxiaoyue 阅读(563) 评论(0) 推荐(0)
C++: std::string 与 Unicode 如何结合?
摘要:关键字:std::string Unicode 转自:http://www.vckbase.com/document/viewdoc/?id=1293 一旦知道 TCHAR 和_T 是如何工作的,那么这个问题很简单。基本思想是 TCHAR 要么是char,要么是 wchar_t,这取决于_UNICODE 的值: 1: // abridged from tchar.h 2: ... 阅读全文
posted @ 2012-05-26 23:32 qinfengxiaoyue 阅读(14116) 评论(0) 推荐(1)
C++标准库(一)
摘要:转自:http://hi.baidu.com/why0813/blog/item/850ea46eecf658db80cb4a6a.html C++标准库非常大。在C++标准中,关于标准库的规格说明占了密密麻麻300多页,这还不包括标准C库,后者只是 "作为参考"包含在C++库中。 当然,并非总是越大越好,但在现在的情况下,确实越大越好,因为大的库会包含大量的功能。标准库中的功能越... 阅读全文
posted @ 2012-05-26 19:58 qinfengxiaoyue 阅读(327) 评论(0) 推荐(0)

上一页 1 2