摘要:
背景:在C&C++中一、inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。表达式形式的宏定义一例:#define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种形式呢:1. 首先谈一下在C中使用这种形式宏定义的原因,C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处理器实现,没有了参数压栈,代码生成等一系列的操作,因此,效率很高,这是它在C中被使用的一个主要原因。2. 这种宏定义在形式上类似于一个函数,但在使用它时,仅仅只是做预处理器 阅读全文
摘要:
这是没有引入任何头文件时,如果使用"NULL",编译器会报错:没有定义NULL。此时可用下面代码定义。#undef NULL //#undef 是在后面取消以前定义的宏定义#if defined(__cplusplus) //区别于#ifdef,#if defined的意思是如果在编译这几行之前,已经定义过(&& || && ||)等标识符#define NULL 0 //#define是预处理宏定义命令#else#define NULL ((void *)0)//NULL ((void*)0) C中的“标准”写法,NULL被替换为一个voi 阅读全文