posts - 116,  comments - 34,  trackbacks - 0

按照MS方式编程:匈牙利符号表示法 
匈牙利符号表示法包括许多与下列命名有关的约定:
     ①变量 ②函数 ③类型和常量 ④类 ⑤参数 
匈牙利符号表示法的前缀代码指导说明书: 

************************************************* 
前缀                         数据类型(基本类型) 
C                             字符 
BY                           字节 
N                            短整数和整数(表示一个数) 
I                             整数 
X,Y                        短整数(通常用于X坐标和Y坐标) 
CX,CY                   短整数(通常用于表示X和Y的长度,C表示计数) 
B                            布尔型 
W                           UINT(无符号数)和WORD(无符号字) 
L                             LONG(长整数) 
DW                         DWORD(无符号长整数) 
FN                           函数指针 
S                             串 
SZ,STR                  以0字节终止的字符串 
LP                           32位长整数指针 
H                             编号(常用于表示Windows对象) 
MSG                         消息 
************************************************* 
变量的命名:  

    应用匈牙利表示法,变量可用上表中的前缀代码来表示。另外,当一个变量是由一个或几个子名构成时,每一个子名都要以大写字母开头。下面是几个例子:
 
    char *szfileName; //a nulla terminated string:以0终止的字符串
 
    int *lpidate;         //a 32-bit pointer to an int:指向一个整型变量的32位的长指针 

    Bool bSemaphore;  //a boolean value 

    WORD dwMaxCount;  //a 32-bit unsigned WORD 

    尽管我们了解一个函数的局部变量没有说明,但是也有个别表示全局变量必须要以 g_ 开头: 

    int g_iXPos;          //a global x-position
 
    int g_iTimer;         //a global y-position 

    char *g_szString;     //a global NULL terminated string

函数的命名: 

    函数和变量的命名方式相同,但是没有前缀,换句话说,子名的第一个字母要大写。下面是几个例子: 

    int PlotPixel(int ix,int iy,int ic); 

    void *MemScan(char *szString); 

    而且,下划线是非法的。例如,下面的函数名表示是无效的匈牙利表示法:
 
    int Get_Pixel(int ix,int iy);
 
类型和常量的命名: 

    所有的类型和常量都是大写字母,但名字中可以允许有下划线。如:
 
    const LONG NUM_SECTORS=100;      // a C++ style constant 

    #define MAX_CELLS ;            // a C style constant 

    #define POWERUNIT 100;           // a C style constant 

    typedef unsigned char UCHAR;     // a user defined type 

类的命名: 

    类命名的约定可能要麻烦一点。但我也看到有很多人在使用这个约定,并独立地进行补充。不管怎么说,所有C++的类必须以大写C为前缀,类名字的每一个子名的第一个字母都必须大写:
 
class CVector   // the chinese mean of vector is 矢量 

public: 
    CVector(); 
    {
        ix=iy=iz=imagnitude=0; //the chinese mean of magnitude is 大小
    } 
    CVector(int x, int y, int z)  
    {
        ix=x;
        iy=y;
        iz=z;
    } 
...... 
private: 
    int ix,iy,iz;    //the position of the vector 
    int imagnitude; //the magnitude of the vector 
...... 

参数的命名: 

    函数的参数命名和标准变量命名的约定相同。但也不总是如此。如:
 
    UCHAR GetPixel(int x,int y);
 
    这种情况下,更准确的匈牙利的函数原型是: 

    UCHAR GetPixel(int ix,int iy); 

posted on 2005-10-26 09:59 萌芽的叶子 阅读(175) 评论(0)  编辑 收藏 引用 所属分类: asp.net
只有注册用户登录后才能发表评论。

<2006年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011

常用链接

留言簿(3)

随笔分类(115)

随笔档案(116)

文章分类(4)

相册

收藏夹(78)

.net中文社区

.net博客

.net英文社区

AJAX

ASP.NET 2.0

ASP.NET 学习

DataBase

ERP

E杂志

Html&Css

JavaScript

Microsoft

Open Sourse

SAP

WebCasts

WebServices

XML

其他

好友Blog

好文章连接

开发工具

控件

物流

职业经理人

设计模式

读书网站

非技术

项目管理

搜索

  •  

积分与排名

  • 积分 - 58436
  • 排名 - 106

最新评论

阅读排行榜

评论排行榜