#define的用法

#define N 100  ok
#define N 100; error
#define N = 100  error   int a[N] => int a[= 100] error
#define pin int*   pin a,b; error(a为int*,b为int)

2. 特殊用法

#define BEGIN {
#define END }

int main BEGIN
    printf("haha");
END

定义一个循环
#define LOOP for(;;)

重新定义数据类型
#define IT int

3.带参数的宏
#define MAX(x,y) ((x)>(y)?(x):(y))

4.宏的特殊单行定义
#define C(x) #x  将宏参数进行字符串字面量化并且加""号
const char* p = C(hello,world);
printf("p=%s\n",p);//结果为hello,world

5.define 的多行定义
define可以替代多行的代码,在每一个换行的时候加上一个"\"
#define func() printf("hello \
,world")

int main(void){
    func(); //hello ,world
    return 0;
}

6.在大规模的开发过程中最重要的是条件编译
#ifdef WINDOW
#endif
...
...
#ifdef LINUX
#endif

7.取消宏
#undef 标识符

8.条件编译
#ifdef XXX
#else
#endif

9.有用的宏
__LINE__被编译文件的行数(整型)
__FILE__被编译文件的名字(字符型)
__DATE__编译日期(字符型)
__TIME__编译时间(字符型)
printf("__LINE__:%d\n",__LINE__);  5
printf("__FILE__:%s\n",__FILE__);  01.c
printf("__DATE__:%s\n",__DATE__);  Dec 24 2016
printf("__TIME__:%s\n",__TIME__);  14:23:36

时间: 2024-10-11 11:25:28

#define的用法的相关文章

typedef和#define的用法与区别

一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef    int       INT;typedef    int       ARRAY[10];typedef   (int*)   pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点. 二.#define的用法 #define为一宏定义语句,通常用它来定义常量(包括无参量与带参量

C语言 typedef和#define的用法与区别

typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef    int       INT;typedef    int       ARRAY[10];typedef   (int*)   pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点. 二.#define的用法 #define为一宏定义

(转)typedef和#define的用法与区别

typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef    int       INT; typedef    int       ARRAY[10]; typedef   (int*)   pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点. 二.#define的用法 #define为一宏

C语言中#define的用法(转)

今天整理了一些#define的用法,与大家共享! 1.简单的define定义 #define MAXTIME 1000 一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写 if(i<MAXTIME){.........} 编译器在处理这个代码之前会对MAXTIME进行处理替换为1000. 这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用,这个问题在下面反映的尤为突出. 2.define的“函数定义”

【转】typedef和#define的用法与区别

typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef int INT; typedef int ARRAY[10]; typedef (int*) pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有"非直观性"等缺点. 二.#define的用法 #define为一宏定义语句,通常用它来定义常量(包括

c++ define的用法(转)

#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利.1 #define命令剖析1.1 #define的概念#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本.该命

#define的用法体会

#define 创建一个宏,该宏是标识符或参数化标识符与标记字符串的关联. 在定义宏之后,编译器可用标记字符串替换源文件中标识符的每个匹配项. 语法 #define identifier token-string #define identifier ( identifier 1 , ... , identifier n ) token-string 备注 1 #define 指令促使编译器用 token-string 替换源文件中 identifier 的每个匹配项. 仅当 identifie

define的用法与注意事项

#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对C语言的学习很不利.下面将分别对基本用法和特殊做详细介绍. 一.#define的基本用法1 #define命令剖析1.1   #define的概念#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为

typedef&amp;define的用法与区别

1.  typedef typedef故名思意就是类型定义的意思,但是它并不是定义一个新的类型而是给已有的类型起一个别名,在这一点上与引用的含义类似,引用是变量或对象的别名,而typedef定义的是类型的别名.typedef的作用主要有两点: 1.1  简化复杂的类型声明 简化复杂的类型声明,或给已有类型起一含义明确的别名:如: typedef bool (*FuncPointer)(int, double); //声明了一个返回 bool 类型并带有两个(int和double)形参的函数的指针