
C++/C
文章平均质量分 56
yinchuofan1985
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
__FUNCTION__,__LINE__
编译器内置的宏__FUNCTION__:源代码的函数名__LINE__:源代码行号__FILE__:源代码文件名 ANSI C标准中有几个标准预定义宏(也是常用的):__LINE__:在源代码中插入当前源代码行号; __FILE__:在源文件中插入当前源文件名; __DATE__:在源文件中插入当前的编译日期 __TIME__:在源文件中插原创 2012-09-18 16:00:40 · 502 阅读 · 0 评论 -
extern "C" 的用意
转载自:http://blog.youkuaiyun.com/wujian53/article/details/706975前些天,编程序是用到了很久以前写的C程序,想把里面的函数利用起来,连接发现出现了找不到具体函数的错误:以下是假设旧的C程序库C的头文件/*-----------c.h--------------*/#ifndef _C_H_#define _C_H_extern i转载 2012-11-12 11:14:27 · 378 阅读 · 0 评论 -
windows 下获取时间函数
GetLocalTime:获取当地时间GetSystemTime:获取UTC时间 const string TIME_FORMAT_DATE = "YYYYMMDD";const string TIME_FORMAT_STANDARD = "YYYY-MM-DD HH:MM:SS";const string TIME_FORMAT_STANDARD_TICK = "YYYY-MM-原创 2012-10-18 10:26:11 · 529 阅读 · 0 评论 -
c++ 时间类型详解 time_t
Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广告采用。 目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Unix转载 2012-10-18 09:43:28 · 1407 阅读 · 0 评论 -
c++ 实现的BlockingQueue
1、BlockingQueue类#include "thread/Critical.h"#include "thread/Codition.h"#include "thread/Lock.h"#include using namespace std;const unsigned int DEFAULT_MAX_SIZE = 100;templateclass Blocking原创 2012-10-16 17:39:45 · 1666 阅读 · 0 评论 -
【模式】单件模式及其多线程版本
很多情况下需要将我们编写的程序中的类在一定范围内只保留一个实例,例如出于性能考虑,我们不希望反复实例化这个对象,用完了后再将它销毁,然后又用到这个类型的某些服务,再实例化,用完了再销毁,如此反复,不如做个全局的,实例化后,一直用到本程序功能结束,但是全局的又有一些问题。 经典的Singleton模式可以为我们提供一个简单的解决方案,他提供了一个全局访问点,用来访问这个唯一实例,简转载 2012-10-15 13:40:10 · 933 阅读 · 0 评论 -
C++的可移植性和跨平台开发[6]:多线程
最近一个多月写的帖子比较杂,导致本系列又好久没更新了。结果又有网友在评论中催我了,搞得我有点囧。今天赶紧把多线程篇补上。上次聊操作系统的时候,由于和OS有关的话题比较琐碎,杂七杂八说了一大堆。当时一看篇幅有点长,就把多进程和多线程的部分给留到后面了。 ★编译器 ◇关于C运行库选项 先来说一个很基本的问题:关于C运行库(后面简称CRT:C Run-Time)的设置。本来不想聊这么低级的问题转载 2012-09-22 15:54:23 · 1315 阅读 · 0 评论 -
C++可移植性和跨平台开发[4]:硬件体系相关
这次聊的话题主要是和硬件体系有关的。比如你的程序需要支持不同类型的CPU(x86、SPARC、PowerPC),或者是同种类型不同字长的CPU(比如x86和x86-64),这时候你就需要关心一下硬件体系的问题。 ★基本类型的大小 C++中基本类型的大小(占用的字节数)会随着CPU字长的变化而变化。所以,假如你要表示一个int占用的字节数,千万不要直接写“4”(顺便说一下,直接写转载 2012-09-22 15:04:27 · 484 阅读 · 0 评论 -
C++的可移植性和跨平台开发[3]:异常处理
★小心new分配内存失败 早期的老式编译器生成的代码,如果new失败会返回空指针。我当年用的Borland C++ 3.1似乎就是这样的,现在这种编译器应该不多见了。如果你目前用的编译器还有这种行为,那你就惨了。你可以考虑重载new操作符来抛出bad_alloc异常,便于进行异常处理。 稍微新式一点的编译器,就不是仅仅返回空指针了。当new操作符发现内存告急,按照标准的规定(参转载 2012-09-22 15:03:43 · 569 阅读 · 0 评论 -
C++的可移植性和跨平台开发[2]:语法
目前还有相当一部分开发人员在使用老式编译器干活,这些老式编译器可能对C++98支持不够。因此,当你的代码移植到这些老式的编译器上时,可能会碰到一些稀奇古怪的问题(包括编译出错和运行时错误)。下面这些注意事项有助于你绕过这些问题。 强调一下,后面提到的好几个条款都是通过回避C++的新语法来保证移植性。如果你用的是新式编译器,那么你可以不理会这些条款。 ★小心for循环变量的作用域转载 2012-09-22 15:02:42 · 511 阅读 · 0 评论 -
C++可移植性和跨平台开发[5]:操作系统
上一个帖子提到了"硬件体系"相关的话题,今天来说说和操作系统相关的话题。C++跨平台开发中和OS相关的琐事挺多,所以今天会啰嗦比较长的篇幅,请列位看官见谅 :-) 为了不绕口,以下把Linux和各种Unix统称为Posix系统。 ★文件系统(FileSystem以下简称FS) 刚开始搞跨平台开发的新手,多半都会碰上和FS相关的问题。所以先来聊一下FS.归纳下来,开发中容易碰上的F转载 2012-09-22 14:46:59 · 690 阅读 · 0 评论 -
采用C++的ACE库实现的一个通用的C/S架构通信程序(最终版)
转自:http://blog.youkuaiyun.com/chenruichuan/article/details/384476ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++ Wrapper Facade(包装外转载 2012-11-24 11:52:37 · 465 阅读 · 0 评论