摘要:
1.枚举的定义枚举类型定义的一般形式为:enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如: 该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。2.枚举变量的说明如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:enum weekday{ sun,mou,tue,wed,thu,fri,sat };enum weekday a,b,c;或者为:enum weekday{ sun 阅读全文
摘要:
一、typedef的用法 typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。二、#define的用法 #define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了,但也因此难以发现潜在的错误及其它代码维护问题,它 阅读全文
摘要:
解决外部符号错误:_main,_WinMain@16,__beginthreadex -!t'my`yK 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: m1+4#' libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main (gd){j LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved extern 阅读全文
摘要:
/*------------------------------------------------------------------------ HELLOWIN.C -- Displays "Hello, Windows 98!" in client area (c) Charles Petzold, 1998-----------------------------------------------------------------------*/#include <windows.h>LRESULT CALLBACK WndProc (HWND, 阅读全文
摘要:
#include "stdio.h"#include "malloc.h"typedef int elemtype;struct node{ elemtype data; struct node *next;};typedef struct node NODE;NODE * creat(NODE *head){ NODE *p,*q; elemtype i; head=(NODE*)malloc(sizeof(NODE)); scanf("%d",&(head->data)); p=head; while(p->d 阅读全文
摘要:
移码(又叫增码)是符号位取反的补码,(先将符号位取反,再取补码,意思就是正数只将+变为1,负数将-变为0,再取补): X=+1011 [X]移=11011 符号位“1”表示正号 X=-1011 [X]移=00101 符号位“0”表示负号一般用做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0。 一、原码 求原码:X≥0,则符号位为0,其余照抄; X≤0,则符号位为1,其余照抄。 【例1】X=+1001001 [X]原 = 01001001 【例2】X=-1001001 [X]原 = 11001001 二、反码 求反码:若X≥0,符号位为0,其余照抄; 若X≤0,符号位为1,其余按位取反. 阅读全文
摘要:
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include <iostream>using namespace std;class CExample {private: int a;public: CExample(int b) { a=b;} void Show () { cout<<a<<endl; }};int main(){ CExample A(100); CExample B=A; B.Show 阅读全文
摘要:
Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前身。当然是传说了,但足见他的功力。另一个传说是,1980年初的时候,DARPA让BBN在Berkley Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN TCP/IP加入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封喉,很快就写出 阅读全文
摘要:
一:宏定义不能换行,若要换行须用换行符\运算符重载:结论1:对二元运算符,将它重载为一个友元函数比重载为一个成员函数要便于使用。以支持交换率作为一个友元函数,二元运算符不要求第一个参数一定为某类的对象。结论2:对一元运算符,将它重载为一个成员函数最恰当。重载为友员函数也可以。妙招:给指针变量取别名char a = 'M';char *p = &a;char * &pr = p;(取别名首先也是一个指针 故char * 然后才是引用符号,所以char * &pr = p;以及由此推演 给指针的指针取别名 char ** &pr = p;数组名和数组 阅读全文
摘要:
为什么C程序中定义结构时经常要用到typedef呢?如: typedef struct _AM_WIN_MenuText { int idc; int message; } AM_WIN_MenuText; 为什么不直接把结构名定义为AM_WIN_MenuText然后使用就可以了。 取个类型的别名有什么作用呢? --------------------------------------------------------------- 那是因为不取别名的话,每次定义都要加struct ----------------------------------------------------.. 阅读全文