C语言 百分网手机站

C语言的关键字define的使用

时间:2020-10-01 08:47:42 C语言 我要投稿

C语言的关键字define的使用

  其实在写代码的时候,关键字还是用的比较多的,这里主要就平常中用到的常用关键字进行总结,便于更全面的理解其在代码中的意图。下文主要介绍C语言的'关键字define的相关内容。

  1 、防止一个头文件被重复包含

  当我们的程序很大很大时,比如超过20000行时,我们很可能没有办法对所有的文件都有清楚的了解,特别是.h

  文件,那么我们怎么做才能避免include时重复包含呢 答案就是#define

  如下:

  a.h b.h c.h 三个文件

  a.h 内容

  int variable_a;

  b.h 内容

  #include "a.h"

  int variable_b;

  c.h内容

  #include "a.h"

  #include "b.h"

  int c;

  那么c.h就包含了两次a.h,那如何避免呢

  #ifndef A_H

  #define A_H

  //头文件A

  #endif

  这样就可以保证a.h只会被包含一次

  2、简单替换

  #define MACRO_A 15

  后面出现的MACRO_A 都会被替换为15这个数

  3、带参数的替换

  #define ABS( a ) ( ((a)>0) ? (a) : (-(a)) )

  可以使用宏替换来实现简单的函数。

  以下是#define的高级用法

  4、高级用法

  define中的三个特殊符号:#,##,#@

  #defineConn(x,y) x##y

  #defineToChar(x) #@x

  #defineToString(x) #x

  (1)x##y表示什么?表示x连接y,举例说:

  intn=Conn(123,456);/* 结果就是n=123456;*/

  char*str=Conn("asdf","adf");/*结果就是 str = "asdfadf";*/

  (2)再来看#@x,其实就是给x加上单引号,结果返回是一个const char。举例说:

  char a = ToChar(1);结果就是a='1';

  做个越界试验char a = ToChar(123);结果就错了;

  但是如果你的参数超过四个字符,编译器就给给你报错了!

  error C2015: too many characters in constant :P

  (3)最后看看#x,估计你也明白了,他是给x加双引号

  char* str = ToString(123132);就成了str="123132";


【C语言的关键字define的使用】相关文章:

C语言中define的使用方法11-28

C语言关键字static的使用12-02

C语言关键字const的使用11-22

C语言register关键字的使用11-01

C语言的关键字enum的使用11-30

总结C语言中const关键字的使用11-29

C语言中const关键字的使用方法10-05

C语言中32个关键字使用详解11-19

C语言for循环的使用10-06