【部分转载】C/C++中的联合体union及CPU大小端判定

摘要: 大小端不同会给程序员进行代码移植时带来麻烦,记得之前接手的第一个嵌入式平台的项目就是将工程从X86架构移植到PowerPC架构上,从此走向嵌入式开发的不归路^_^。三年以来,主要涉及到都是嵌入式RTOS应用软件的开发,包括多种硬件接口下的通信,多任务,多块CPU板卡进行同一块资源的互斥访问,多块板卡进行数据采集时的时间不确定性造成采集不同步,大批量数据安全实时通信,多块板卡之间的节拍同步等问题。目前也正开始接触linux操作系统的kernel开发及驱动编写等工作。可以说写此篇blog并且此篇头的感慨,完全是之前一次Atheros面试引起的...在C/C++程序的编写中,当多个基本数据类型或复合 阅读全文
posted @ 2012-03-14 17:04 菜丝inside 阅读(655) 评论(0) 推荐(0)

设计模式之Singleton

摘要: Singleton是我项目中运用最多的设计模式了,虽然简单,却能大大降低模块耦合性。通过该模式,最多只能创建该类的一个实例。个人理解,Singleton就不再需要别的模块来聚合本模块,其表现形式最大特点就是构造函数的访问权限是private的,由第一个依赖本模块的其它模块进行实例化。笔者一直从事安全软件的研发,会在软件运行初期通过调用各个模块的Init()来实现单例的实现,而这个过程由于在初始化线程中串行执行,也有效避免了多线程下单例的互斥问题。不过下述文章仍会介绍下多线程开发单线程互斥问题。类的声明:View Code //Singleton.hnamespace DP{#ifnde... 阅读全文
posted @ 2012-03-14 16:47 菜丝inside 阅读(286) 评论(0) 推荐(0)

总结一下类型名定义变量

摘要: 先看两个类的定义class A{ static int struct_cnt;public: A( ) { struct_cnt++; }public: void Print() { printf("A is construced:%d\n",struct_cnt); }};int A::struct_cnt = 0; class B{ static int struct_cnt;public: B(int inpara) { struct_cnt++; }public: void... 阅读全文
posted @ 2012-03-14 13:08 菜丝inside 阅读(247) 评论(0) 推荐(0)

[转载]模板函数的声明和定义都放在一起

摘要: 一个模板函数,把声明和定义分别放在.h文件和.cpp文件种,如果不调用这个函数的话,编译连接都能通过,但是如果调用这个函数的话,连接就有错误如下: --------------------Configuration: IRSEG - Win32 Release------------------ -- Compiling... Location.cpp Linking... Location.obj : error LNK2001: unresolved external symbol "void __cdecl output_vector(class std::vector< 阅读全文
posted @ 2012-03-14 11:33 菜丝inside 阅读(915) 评论(0) 推荐(0)

设计模式之Bridge

摘要: 之前写博一直在csdn,但是上面的服务器时好时坏,发文会丢。发现这边园子还不错,因此转到这里来了。第一篇就介绍一下我对Bridge的理解。UML工具使用Enterprise Architect, 工程使用VC2008编译通过。先贴出类的关系:class CProductA继承自class Bridge, 具备其属性pIfc, 该属性是指向CIfOperator(接口)的指针. C++不存在真正意义上的接口, 只是一个纯虚类; 具备GetImp()操作方法用以获得通过接口传过来的实例; 重写(覆盖,override)Attribute().class Br... 阅读全文
posted @ 2012-03-14 11:07 菜丝inside 阅读(212) 评论(0) 推荐(0)