C/C++
咖啡老猫
这个作者很懒,什么都没留下…
展开
-
关于typedef的用法总结
2012-12-12 08:24 4689人阅读 评论(43) 收藏 举报目录(?)[-]基本定义用途一与define的区别用途二减少错误用途三 直观简洁用途四平台无关性用途五掩饰复合类型用途六代码简化用途七typedef 和存储类关键字storage class specifier 在C还是C++代码中,typedef都使用的转载 2012-12-25 10:19:34 · 412 阅读 · 0 评论 -
QT QString与中文问题
首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。[喝小酒的网摘]http://blog.const.net.cn/a/4027.htm很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那转载 2014-02-07 09:15:36 · 1056 阅读 · 0 评论 -
C++类的私有成员变量和函数的隐藏
我们在写C++的代码的时候,尤其是给三方提供库的情况下,所提供的类头文件中包含了很多的私有的变量和函数,对于调用和开发的人来说都是很繁琐的一件事情,最近在写QT代码的时候发现对其私有的东西隐藏很好,仔细研究,其实就是对这个类提供一个私有的类,然后通过宏对这个类进行使用,非常方便。 通过研究发现移植到其他的C++代码中也是非常好的一件事情,现将这个东东班门弄斧的整理一下,以供大家参考原创 2013-11-22 11:18:24 · 10833 阅读 · 0 评论 -
关于setsockopt
功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:转载 2013-01-11 11:33:01 · 598 阅读 · 0 评论 -
C++ 类中定义常量的方法
1.在类定义体内定义枚举常量; 例如:class A{public: enum { THREAD_NUM = 100, MEM_BLOCK_SIZE = 1024, PORT = 8080 };};这样定义出来的常量值在程序运行过程中是不能被修改的,编译的时候就已经确定了这些常量的值;2.在类定义体中声明使用stati转载 2012-12-18 11:00:27 · 1346 阅读 · 0 评论 -
C/C++中怎样获取日期和时间
摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字: UTC(世界标准时间), Calendar Time(日历时间)转载 2012-12-14 12:15:09 · 719 阅读 · 0 评论 -
_com_util::ConvertStringToBSTR和_com_util::ConvertBSTRToString修正版
//implement our own conversion functions//------------------------//// Convert char * to BSTR ////------------------------//inline BSTR ConvertStringToBSTR(const char* pSrc){ if(!pSrc) retur转载 2012-12-14 12:11:04 · 1186 阅读 · 0 评论 -
C语言中auto,register,static,const,volatile的区别
1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。 2)register 这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。 3)static 常见的两种用途:转载 2012-12-13 09:12:01 · 1080 阅读 · 0 评论 -
Linux动态库的编译与使用
Linux下的动态库以.so为后缀,我也是初次在Linux 下使用动态库,写一点入门步骤,以便以后能方便使用。第一步:编写Linux程序库文件1.动态库接口文件//动态库接口文件getmaxlen.h#ifndef _GETMAXLEN_H_#define _GETMAXLEN_H_int getMaxLen(int *sel,int N);转载 2012-12-13 09:11:17 · 12767 阅读 · 0 评论 -
C语言字节对齐
文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访转载 2012-12-13 09:09:04 · 388 阅读 · 0 评论 -
C++ Thread
一 简单实例比较简单的代码,创建10个线程,其中使第4个线程在一创建就挂起,等到其他的线程执行的差不多的时候再使第4个线程恢复执行。 #include #include #include #define THREAD_NUM 10 DWORD WINAPI PrintThreads (LPVOID); int main () { HANDLE hThread[TH转载 2009-07-10 15:07:00 · 2882 阅读 · 0 评论 -
vs2008 配置 wxwidgets 环境
1 、去官网 下载一个wxMSW版本的 wxWidgets 。有安装版和 压缩版的, 我这采用当时最新的 wxMSW-2.8.112、解压或者安装源文件包 假如路径是:3、编译 用vs2008打开 D:\wxMSW-2.8.11\build\msw\wx.dsw 然后出现转换工程的界面,选择全部。 然后,配置编译的转载 2012-12-12 12:11:43 · 578 阅读 · 0 评论 -
指针的魅力 (已修正)[转载]
序指针说:love me,love me!但是他对指针说:I hate u,I hate u!…… 。说起工具不得不让我想起一样东西——锄头,因为原人类有了锄头才使人类文明进入了开荒造田的农业时代,解决了温饱,开启了人类新纪元。可以这么说吧锄头使人类文明得到进步,没有锄头也就没有今天的我们,其地位与重要性可想而知。那么我们的指针何以能发挥像锄头那样惊人的魅力转载 2012-12-12 12:08:34 · 584 阅读 · 0 评论 -
内存整理(C/C++)
#include #include #include #include #pragma comment (lib,"psapi.lib") BOOL test(){ HANDLE SnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(SnapShot==NULL) {转载 2012-12-12 12:07:43 · 933 阅读 · 0 评论 -
控制台程序设置背景色和前景色
#include #include bool SetConsoleColor(WORD forceGroundColor, WORD backGroundColor);bool SetConsoleColor(WORD Color);int main(){ SetConsoleColor(FOREGROUND_INTENSITY | FOREGROUND_RED , BACKGROU转载 2012-12-12 11:29:15 · 3652 阅读 · 0 评论 -
extern作用详解
extern 作用1:声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。例1:创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.cpp:int iRI;int main(){//.....}//B.cppint iR转载 2012-12-12 12:12:23 · 532 阅读 · 0 评论 -
FTP应答码&响应码
FTP应答码&响应码 2010-10-28 22:29110: 重新启动标记应答。 120: 在n分钟内准备好 125: 连接打开准备传送 150: 打开数据连接200: 命令成功202: 命令失败211: 系统状态212: 目录状态213: 文件状态214: 帮助信息215: 名字系统类型 220: 新用户服务准备好了 221: 服务关闭控转载 2012-12-12 12:09:43 · 23986 阅读 · 0 评论 -
UTF8 GB2312互转
//UTF-8到GB2312的转换char* U2G(const char* utf8){int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);wchar_t* wstr = new wchar_t[len+1];memset(wstr, 0, len+1);MultiByteToWideChar(CP_UTF8, 0, utf8转载 2014-02-21 09:00:35 · 1221 阅读 · 0 评论