1.魔术数字

if(nCount>1024) 这里1024即为魔术数字,因为从字面不能看出来任何特殊的含义。

应改为#define MAX_UDP_SIZE

if(nCount>MAX_UDP_SIZE)

2.利用宏来实现一段代码,看起来是一个函数,但是由于在预编译阶段被替换,因此虽然实现了功能,相比函数而言,却没有函数调用的开销。

3.字符化运算符—— #@. 用于创建一个字符,类似## ,注: 非ANSI-C中的特性,GCC不支持,VC可以,例如#define makechar(x) #@x    char a=makechar(x);##连接字符串。#把后面的字符当做字符串来处理。

4._DEBUG _FILE_ _LINE_ _TIME_ _DATE_ 这些宏的定义

5.变量名-内存块-内容,常量不可用作左值,亦不可使用地址操作符。不能定义引用数组。数组不能整体复制。

6.数组名是常量,不能改变它的值,

posted on 2011-05-10 13:41  kangwang1988  阅读(173)  评论(0编辑  收藏  举报