C语言命名规范

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言命名规范相关的知识,希望对你有一定的参考价值。

请问下C语言函数命名的规范或者习惯,变量指针命名的规范或者习惯。最好是微软公司的,谢谢!请不要给网址,行列最好清晰。

匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推广给了全世界的Windows开发人员。下面将介绍匈牙利命名法,后面的例子里也会尽量遵守它和上面的代码风格。还是那句话,并不是要求所有的读者都要去遵守,但是希望读者作为一个现代的软件开发人员都去遵守它。

a Array 数组

b BOOL (int) 布尔(整数)

by Unsigned Char (Byte) 无符号字符(字节)

c Char 字符(字节)

cb Count of bytes 字节数

cr Color reference value 颜色(参考)值

cx Count of x (Short) x的集合(短整数)

dw DWORD(unsigned long) 双字(无符号长整数)

f Flags (usually multiple bit values) 标志(一般是有多位的数值)

fn Function 函数

g_ global 全局的

h Handle 句柄

i Integer 整数

l Long 长整数

lp Long pointer 长指针

m_ Data member of a class 一个类的数据成员

n Short int 短整数

p Pointer 指针

s String 字符串

sz Zero terminated String 以0结尾的字符串

tm Text metric 文本规则

u Unsigned int 无符号整数

ul Unsigned long (ULONG) 无符号长整数

w WORD (unsigned short) 无符号短整数

x,y x, y coordinates (short) 坐标值/短整数

v void 空

有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。

前缀 类型 例子

g_ 全局变量 g_Servers

C 类或者结构体 CDocument,CPrintInfo

m_ 成员变量 m_pDoc,m_nCustomers

VC常用前缀列表:

前缀 类型 描述 例子

ch char 8位字符 chGrade

ch TCHAR 16位UNICODE类型字符 chName

b BOOL 布尔变量 bEnabled

n int 整型(其大小由操作系统决定) nLength

n UINT 无符号整型(其大小由操作系统决定) nLength

w WORD 16位无符号整型 wPos

l LONG 32位有符号整型 lOffset

dw DWORD 32位无符号整型 dwRange

p * Ambient memory model pointer 内存模块指针,指针变量 pDoc

lp FAR* 长指针 lpDoc

lpsz LPSTR 32位字符串指针 lpszName

lpsz LPCSTR 2位常量字符串指针 lpszName

lpsz LPCTSTR 32位UNICODE类型常量指针 lpszName

h handle Windows对象句柄 hWnd

lpfn (*fn)() 回调函数指针 Callback Far pointer to CALLBACK function lpfnAbort

参考资料:http://hi.baidu.com/chaosaco/blog/item/b7a5f7c49decfead8326ac0e.html

参考技术A

A.常量全部大写 如果有多个单词组成,用下划线分割,如:MAX_VALUE

B.变量从第二个单词,每个单词的首字母大写,如:int arrayOne[5] = 0;

C.类名和函数名每个单词的首字母都大写,如:ArrayOption


其他:

    单词尽量合理,适当,达意。

    千万不要用拼音!很反感!

    尽量避免a,b,c等无实际含义的名字


不同平台有不同的命名风格:

windows下属于上面的命名风格

linux/unix 多用下划线区分单词

以上是关于C语言命名规范的主要内容,如果未能解决你的问题,请参考以下文章

代码规范:unix_c命名风格和java命名风格

请教一个简单的C与C++的命名规则问题

go语言代码规范指南

GO 编码规范

10分钟了解代码命名规范(JavaPython)

C系列变量命名规范