2. C/C++
文章平均质量分 58
jiji262
关注互联网,关注web2.0,关注ajax。
展开
-
波兰式计算器程序(C++)
写的时候才发现原来这么一个小程序也是这么的不容易,费了好办天劲,总发现算法只能满足大部分的情况,后来索性放下程序,仔细研究算法规律,突然发现,其实比想象中的要简单许多。在网上找到的代码有好几百行,简直不是人看的呵呵。发现自己的编程能力真的有待提高:》66dc3dd8/**//**********************************题目:波兰式计算器/* 以下是几个标准的表达式:原创 2007-04-29 21:22:00 · 2239 阅读 · 0 评论 -
宏定义中的do...while(0)
http://blog.csdn.net/smartptr/archive/2007/06/13/1650257.aspx如果你是C++程序员,我有理由相信你用过,或者接触过,至少听说过MFC, 在MFC的afx.h文件里面, 你会发现很多宏定义都是用了do...while(0)或do...while(false), 比如说:#define AFXASSUME(cond) do { b转载 2007-11-13 10:59:00 · 876 阅读 · 0 评论 -
Intel CPU 的多媒体指令集
自Intel Pentium MMX 处理器开始,处理器新增SIMD(SingleInstruction MultipleData)多媒体指令集,可把多个批次性的指令组变成单一指令,以提升数据处理能力,后来Intel基于MMX指令发展出SSE(StreamingSIMD Extensions)指令集,直至Penryn处理器已发展至SSE4指令集。MMX:1997年发布,全名为 MultiMedia原创 2007-11-13 11:02:00 · 2879 阅读 · 0 评论 -
32位CPU所含有的寄存器
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32位CPU有4个32位的通用转载 2007-11-13 10:56:00 · 2635 阅读 · 0 评论 -
函数命名规则及调用约定(__cdecl,__stdcall,__fastcall)
假设有一个函数add声明如下(这里默认使用_cdecl调用方式): int add(int x,int y) { return x + y; }在C语言中,add函数被多数C编译器编译后在符号库中的名字不是add,而是_add。而在C++编译器中,int add(int x,int y)会编译成类似_add_int_int这样的名字,C++依靠这种机制来实现函数重载转载 2007-11-13 10:53:00 · 3721 阅读 · 0 评论 -
C语言中的运算符及其优先级
C语言中的运算符及其优先级 优先级 运算符 名称或含义原创 2007-10-13 14:27:00 · 1560 阅读 · 1 评论 -
伪随机数
标准库(被包含于中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void); 从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。 函数二:void srand(unsigned seed); 参数seed是rand()的种子,用来初始化rand()的起始值。 可以认为rand()在每次被调用的时候,它会查转载 2007-10-25 14:49:00 · 869 阅读 · 0 评论 -
malloc()和calloc()的区别及calloc 实现
函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。 malloc()函数有一个参数,即要分配的内存空间的大小: void *malloc(size_t size); calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。 void *calloc(size_t原创 2007-10-22 17:04:00 · 1404 阅读 · 0 评论 -
VLSM 与CIDR的比较/什么是CIDR/什么是VLSM
VLSM 与CIDR的比较/什么是CIDR/什么是VLSMCIDR : netmask 缩短 VLSM: netmask 增长使用CIDR聚合地址的方法与使用VLSM划分子网的方法类似。在使用VLSM划分子网时,将原来分类IP地址中的主机位按照需要划出一部分作为网络位使用;而在使用CIDR聚合地址时,则是将原来分类IP地址中的网络位划出一部分作为主机位使用。+++++++++转载 2007-09-26 11:26:00 · 19782 阅读 · 3 评论 -
C++中文件的读写
无论读写都要包含头文件读:从外部文件中将数据读到程序中来处理对于程序来说,是从外部读入数据,因此定义输入流,即定义输入流对象:ifsteam infile,infile就是输入流对象。这个对象当中存放即将从文件读入的数据流。假设有名字为myfile.txt的文件,存有两行数字数据,具体方法:int a,b;ifstream infile;infile.open("myfile.txt");转载 2007-10-21 20:28:00 · 2146 阅读 · 0 评论 -
C语言文件操作之----文件的读写
当文件按指定的工作方式打开以后,就可以执行对文件的读和写。下面按文件的性质分类进行操作。针对文本文件和二进制文件的不同性质,对文本文件来说,可按字符读写或按字符串读写;对二进制文件来说,可进行成块的读写或格式化的读写。1. 读写字符 C提供fgetc和fputc函数对文本文件进行字符的读写,其函数的原型存于stdio.h头文件中,格式为: int fgetc(FILE *stream)转载 2007-10-21 20:05:00 · 48933 阅读 · 6 评论 -
如何理解C++中的动态绑定(dynamic binding)
如何理解C++中的动态绑定(dynamic binding) 在浏览C++论坛时,我总是能发现很多C++初学者的提问帖子,都是关于动态绑定的。基本大意就是不完全理解动态绑定该如何理解,造成一些面试或者实际编程上的困扰。本文就是针对这个问题作出的解答。作者并非技术大牛,不当之处还请大家在评论中指出,在下万分感谢。 我对于C++动态绑定的理解,一句话,就是编译器用静态分析的方法加上虚拟函数的转载 2007-10-20 16:42:00 · 2573 阅读 · 0 评论 -
C++ string祥解
之 所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题………首先,为了在我们的程序中使用转载 2007-10-22 11:37:00 · 1279 阅读 · 0 评论 -
农历200年算法(1901~2100)[C语言]
下面的三个表格是农历数据表 LunarCalendarTable 的结构。总共使用了32位整数的0~23位。 6 5 4原创 2007-09-23 21:19:00 · 2572 阅读 · 0 评论 -
const 有什么用
关键字const并不能将一个变量转换成一个常量。一个带const限定符的符号仅仅是表示这个符号不能用于赋值。也就是说这个符号的值是只读的; const限定符不能阻止程序通过内部或者外部方法来修改这个值。const限定符最有用之处仅仅是限定实参指针,表示这个函数将不会改变实参指针指向的 数据,但其他的函数可能会。这可能实const限定符在c和c++中最普遍的用法。1:const限定符用在数据上。原创 2007-09-16 21:08:00 · 1100 阅读 · 0 评论 -
static有什么用?
(1)局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, static, register(谭浩强, 第174-175页)与auto类型(普通)局部变量相比, static局部变量有三点不同1. 存储空间分配不同auto类型分配在栈上, 属于动态存储类别, 占动态存储区空间, 函数调用结束后自动释放, 而static分配在静态存储区, 在程序整个运行期间都不释放. 两者之间原创 2007-09-16 20:57:00 · 2721 阅读 · 0 评论 -
C和C++实现Stack
/************************************************************************//* 使用c++实现Stack *//*****************************************************原创 2007-09-09 16:21:00 · 3573 阅读 · 1 评论 -
C++:类的大小(sizeof)
#include stdio.h>#include iostream>using namespace std;class a...{};class a2...{};class b : public a...{};class c : public virtual b...{};class d : public a, public a2...{};int main()...{ cout "原创 2007-09-01 15:29:00 · 796 阅读 · 0 评论 -
数组和指针 [C专家编程]
中的一个关于指针和数组的例子, Page216char ga[] = "abcdefghijklm";void my_array_func(char ca[10]){ printf("address of array param = %#x /n", &ca); printf("addr(ca[0]) = %#x /n", &(ca[0])); printf("addr(ca[原创 2008-08-25 18:57:00 · 671 阅读 · 0 评论