当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 很多人对C/C++中的整型不太了解,导致代码移植的时候出现问题,
 

 

    摘要:普通类对象的内存布局首先我们从普通类对象的内存布局开始。c000为一个空类,定义如下:struct c000{}; 运行如下代码打印它的大小及对象中的内容。print_size_detail(c000) 结果为:the size of c000 is 1the detail of c000 is cc 可以看到它的大小为1字节,这是一个占位符。我们可以看到它的值是0xcc。在debug模式下,这表......
 ·函数对象概述    »显示摘要«
    摘要:顾名思义,就是在某种方式上表现得象一个函数的对象。典型地,它是指一个类的实例,这个类定义了应用操作符operator()。 函数对象是比函数更加通用的概念,因为函数对象可以定义跨越多次调用的可持久的部分(类似静态局部变量),同时又能够从对象的外面进行初始化和检查(和静态局部变量不同)。例如:class sum { int val; public:sum(int i) :val(i) { }oper......


C/C++中的整型常识
上一页   ...

a. 出于效率考虑,应该尽量使用int与unsigned int;

typedef unsigned char ubyte; 【程序编程相关:MBGA

b. 当需要指定容量的整型时,不应该直接使用short.int.long等,因为在不同的编译器上她们的容量不相同.此时应该定义她们相应的宏或类型,比如在vc++6.0中,可以如下定义: 【推荐阅读:.NET Remoting编程简介

typedef unsigned short int uword; 【扩展信息:TSOPII

typedef   signed char sbyte;

typedef   signed short int sword;

typedef unsigned int udword;

typedef   signed int sdword;

typedef unsigned __int64 uqword;

typedef   signed __int64 sqword;

然后在代码中使用 ubyte.sbyte.uword 等,这样当代码移植的时候只需要修改相应的类型即可.

定义自己的类型虽然在代码移植的时候只需要修改一处即可,但仍然属于源代码级别的修改,所以 c++ 2.0 中将这些类型定义在模板中,可以做到代码移植时无需修改代码.

c. 在定义char时,一定要加上 signed 或 unsigned,因为她的正负在不同的编译器上并不相同.

d. 不要想当然的以为char是1字节长,因为她的长度在不同的编译器上并不相同


 ·linux上搭建c/c++ide开发环境    »显示摘要«
    摘要:redhat linux上面没有提供anjuta软件包,上面提供了一个glade应用程序界面设计工具。linux上面使用anjuta和glade以及glademm软件包可以搭建一个linux下面进行c/c++软件开发的ide环境,可以进行gtk+/gnome的应用程序开发。 以前开发 linux 程序时写出好的图形化用户界面比较难。在 gimp 工具包 (gtk)诞生之后,这件事就变得比较容易......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE