C/C++
qq506124204
这个作者很懒,什么都没留下…
展开
-
面试题(2)预处理、const、static、sizeof
1.#ifdef #else #endif指示符#ifdef指示符常用来判断一个预处理常量是否已被定义,比便有条件的包含代码。#ifndef与#ifdef作用相同,只是判断方式相反。#includestdio.h>#includestdlib.h>#define DEBUGint main(){ int i=0;char c; while(1)原创 2012-01-03 22:59:15 · 514 阅读 · 0 评论 -
数据类型转换 符号扩展
================ = 关于符号扩展 = ===================一、短数据类型扩展为长数据类型1、要扩展的短数据类型为有符号数的 进行符号扩展,即短数据类型的符号位填充到长数据类型的高字节位(即比短数据类型多出的那一部分),保证扩展后的数值大小不变如1:char x=10001001b;原创 2012-08-18 14:07:00 · 2293 阅读 · 0 评论 -
计算机基础部分 数据转换 移位问题
unsigned long i; /* unsigned long 类型为4字节*/char c1=0xa4;char c2=0x31;i = c2问:i = (用16进制格式) 如果:unsigned long i; /* unsigned long 类型为4字节*/char c1=0x74;char c2=0x31;i = c2原创 2012-06-08 15:18:42 · 910 阅读 · 0 评论 -
C_C++ 各种计时函数
对Windows平台下常用的计时函数进行总结,包括精度为秒、毫秒、微秒三种精度的5 种方法。分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock()不仅可以用在Windows 系统,也可以用于Linux系统。在Windows系统下三种,使用Windows提供的API接口timeGetTime()、 GetTickCount()及QueryP原创 2012-11-01 00:25:04 · 4090 阅读 · 5 评论 -
大端模式和小端模式
union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名; 共用体变量的地址和它的各个成员变量的地址相同,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间原创 2012-11-04 17:39:16 · 940 阅读 · 0 评论 -
C/C++ 获取命令行返回信息
std::string GetCmdInfo(const char * pszCmd){ //创建匿名管道 SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE}; HANDLE hRead, hWrite; if (!CreatePipe(&hRead, &hWrite, &原创 2012-11-18 20:46:52 · 3352 阅读 · 1 评论 -
哈佛大学景象
或许这再一次印证任何人每一次的成功背后都有不为人知的付出和汗水。 哈佛老师经常给学生这样的告诫:如果你想在进入社会后,在任何时候任何场合下都能得心应手并且得到应有的评价,那么你在哈佛的学习 期间,就没有晒太阳的时间。 作为闻名于世的学府,哈佛大学培养了许多名人,他们中有33位诺贝尔奖获得者、7位美国 总统以及各行各业的职业精英。究竟是什么使哈佛成为精英的摇篮?哈佛学子接受了什么样的转载 2013-01-19 18:55:12 · 743 阅读 · 0 评论 -
Makefile中 wildcard 用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符转载 2013-07-22 00:26:59 · 800 阅读 · 0 评论 -
C++ 学习(初级篇)
================== 第一部分 ==============================#include //////////////////////////////////////////////////////////////////////////// 基类(父类)class Animal{public: Animal(原创 2012-05-28 00:21:39 · 901 阅读 · 2 评论 -
GetMemory 讲解
void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( void ){ char *str = NULL; GetMemory( str ); strcpy( str, "hello world" ); printf( str );} 试题5:转载 2013-11-17 22:56:52 · 913 阅读 · 0 评论 -
按位异或运算 (正数异或负数)
正数反码:与原码相同负数反码:符号位为“1”,数值位按位 取反。 正数补码:与原码相同负数补码:求反加一记住:所有参与运算的都是以补码形式进行的 结果也是补码 因此也需要将补码转换成为原码的形式存在下面就以一个例子进行讲解:-2^3那么怎么转换成位补码呢?1.如果是负数的情况,那么将需要进行转换负数的补码:符号位为1,其余位为该数绝对值的原创 2012-04-29 10:58:26 · 10789 阅读 · 2 评论 -
OCX 控件使用GDI+ 问题(退出报内存 First-chance exception)
OCX 使用GDI+ 退出控件时候,报内存访问违例,。。 First-chance exception at ***.exe原创 2013-11-18 11:25:06 · 1716 阅读 · 0 评论 -
常用的宏符号
1、“/”解释:连接下一行例子:#define Link(tokenname) aa + / bb + / (tokenname)调用:a = Link(b);输出:a = aa + bb + b;2、“#@tokenname”解释:将tokenname变为字符'tokenname'例子:#define makechar(tokenname)原创 2013-12-28 19:57:00 · 1349 阅读 · 0 评论 -
导入库和静态库的区别
导入库编辑导入库只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息。目录1静态库2导入库和静态库的区别1静态库编辑目前以lib后缀的库有两种,一种为静态链接库(Static Library,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”原创 2014-01-25 20:10:39 · 1515 阅读 · 0 评论 -
setjmp.h setjmp/longjmp
setjmp.h是C标准函数库中提供“非本地跳转”的头文件:控制流偏离了通常的子程序调用与返回序列。互补的两个函数setjmp与longjmp提供了这种功能。setjmp/longjmp的典型用途是例外处理机制的实现:利用longjmp恢复程序或线程的状态,甚至可以跳过栈中多层的函数调用。成员函数int setjmp(jmp_buf env)建立本地的jmp_buf缓冲转载 2012-06-30 14:35:26 · 750 阅读 · 0 评论 -
闲来无事 练习基础知识
1、创建进程: STARTUPINFO si ; si.cb = sizeof(si); memset(&si,0,sizeof(si)); PROCESS_INFORMATION pi; si.wShowWindow = TRUE; BOOL bRet = CreateProcess(NULL,"notepad.exe",NUL原创 2012-06-21 00:36:58 · 1108 阅读 · 1 评论 -
面试题 引用和指针
1 引用简单理解引用就是一个变量的另一个名字,从这个名字的角度对变量可以加以修饰,同时拥有const指针的特性 ,所以在声明时必须初始化1 int a=1;2 const int b=4;3 int& ref_a;//必须初始化 :declared as reference but not initialized4 const int&原创 2012-01-03 23:26:53 · 558 阅读 · 0 评论 -
C语言运算符及其优先级汇总表口诀
C语言运算符及其优先级汇总表口诀圆下箭头一顿号非凡增减富强针地长三乘除,四加减,五移位千万别把鱼忘记,它在盛饭的厨子里小灯大灯灯灯不等爸喂鱼,舅疑惑,裸鸡也疑惑十三姨,十四父,十五逗,兜到低“圆下箭头一顿号”指的是第15级的运算符。正在装载数据……其中圆指的是运算符(),下指的是下标运算符[],箭头指的是指向结构体成员运算符->,原创 2012-04-27 00:00:31 · 554 阅读 · 0 评论 -
win32 socket的一个简单的例子
在visual c++里建两个win32控制台工程,分别编译下面的服务端和客户端服务端:#include #include #include #pragma comment(lib,"ws2_32.lib")#define NO_FLAGS_SET 0#define PORT (u_short)44965#define MAXBUFLEN 256//服务器 -- VC++原创 2012-04-27 01:03:38 · 7011 阅读 · 0 评论 -
VC内存泄露检查工具:Visual Leak Detector
初识Visual Leak Detector 灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很严重,在短时间内对程序不会有太大的影响,这也使得内存泄漏问题有很强的隐蔽性,不容易被发现。然而不管内存泄漏多么轻微,当程序长时间运行时,其破转载 2012-04-27 00:07:35 · 965 阅读 · 0 评论 -
dll的def文件与__declspec(dllexport)导出函数方式比较
【__declspec(dllexport) 方式】首先对C和C++编译(extern "C")与调用约定(__cdecl、__stdcall、__fastcall)进行组合测试:【C++编译】__declspec(dllexport) int add(int, int);__declspec(dllexport) int __cdecl add(int, int);转载 2012-04-29 00:55:47 · 793 阅读 · 0 评论 -
MultiByteToWideChar的与WideCharToMultiByte的参数详解
第一个就是宽字符到多字节字符转换函数,函数原型如下: int WideCharToMultiByte( UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cbMultiByte, LPCSTR lpDefaultChar,转载 2012-05-03 01:47:38 · 579 阅读 · 0 评论 -
字符编码转换_进制转换(GB2312,GBK,JNI,HexTOStr)
///////////////////////////////////////////////////////////////////////* ASCII 英文一个字节 gb2312,gbk 中文两个字节,英文一个字节 在中文系统中ansi一般指gb2312或gbk GB2312、GBK都属于双字节字符集 (DBCS) Utf-8 中文三个字节,英文一个字节 Unicod原创 2012-05-09 23:31:14 · 6962 阅读 · 0 评论 -
VC中的一些常用方法(20条)
//一、打开CD-ROMmciSendString(“Set cdAudio door open wait”,NULL,0,NULL);//二、关闭CD_ROMmciSendString(“Set cdAudio door closed wait”,NULL,0,NULL);//三、关闭计算机OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数转载 2012-05-31 22:31:33 · 1044 阅读 · 0 评论 -
获取时间
1、time_t 长整型语法定义: typedef long time_t; /* time value */2 、 time语法: #include time_t time( time_t *time );功能: 函数返回当前时间,如果发生错误返回零。如果给定参数time ,那么当前时间存储到参原创 2012-06-19 00:31:01 · 739 阅读 · 0 评论 -
CreateThread, AfxBeginThread,_beginthread, _beginthreadex的区别
CreateThread 是Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要轻易。在使用的过程中要考虑到进程的同步与互斥的关系(防止死锁)。线程函数定义为:DWORD WINAPI _yourThreadFun(LPVOID p转载 2012-07-07 18:54:36 · 624 阅读 · 0 评论 -
决不应该调用CreateThread
在写c++代码时,一直牢记着一句话:决不应该调用CreateThread。相反,应该使用Visual C++运行期库函数_beginthreadex。好像CreateThread函数就是老虎,既然这样为什么微软要开发这个函数呢?从网上找到的相关资料,现在汇总一下,在此对相关人员进行感谢! 摘自《windows 核心编程》: CreateThread函数是用转载 2012-07-09 00:20:12 · 2317 阅读 · 0 评论 -
Windows编程的剪贴板机制
Windows剪贴板 Windows剪贴板是一种比较简单同时也是开销比较小的IPC(IntERProcess Communication,进程间通讯)机制。Windows系统支持剪贴板IPC的基本机制是由系统预留的一块全局共享内存,用来暂存在各进程间进行交换的数据:提供数据的进程创建一个全局内存块,并将要传送的数据移到或复制到该内存块;接受数据的进程(也可以是提供数据的进程本身)获取原创 2012-06-27 21:59:34 · 897 阅读 · 0 评论 -
8421码与5421码区别 BCD
8421是最常用的二进制码,叫这个是因为四位8421码时,从左到右每个"1"代表的十进制数分别是"8"、"4"、"2"、"1" 如下: "1000" 为十进制 "8" "0100" 为十进制 "4" "0010" 为十进制 "2" "0001" 为十进制 "1" 5421码与此相同,每位一代表的是十进制的"5"、"4"、"2"、"1" 即: "1000" 为原创 2014-03-15 17:25:04 · 17397 阅读 · 1 评论