诗和远方

#ifndef, #define

#ifndef x                 //先测试x是否被宏定义过

#define x

   程序段1blabla~    //如果x没有被宏定义过,定义x,并编译程序段 1

#endif   

  程序段2blabla~   //如果x已经定义过了则编译程序段2的语句,“忽视”程序段 1


条件指示符#ifndef 的最主要目的是防止头文件的重复包含和编译。


在c语言中,对同一个变量或者函数进行多次声明是不会报错的。所以如果h文件里只是进行了声明工作,即使不使用# ifndef宏定义,一个c文件多次包含同一个h文件也不会报错。 使用#ifndef可以避免下面这种错误:如果在h文件中定义了全局变量,一个c文件包含同一个h文件多次,如果不加#ifndef宏定义,会出现变量重复定义的错误;如果加了#ifndef,则不会出现这种错。


#ifdef  x

    程序1blabla~

#endif


#ifndef  x

#define x

    程序段 1

#else

    程序段 2

#endif


#if 表达式

    程序段 1

#else

    程序段 2

#endif

当“表达式”值为真时。编译程序段1。否则则编译程序段2。当没有程序段2时,直接是#if---#endif

Related
C 语言编译器2019年07月03日
C 语言标准2019年07月03日
C语言预处理器指令2019年06月20日
为什么include .h文件而不是include .c文件?2019年06月20日
#ifndef, #define2019年06月20日
C语言宏定义和宏定义函数2019年06月18日

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Catalog
标签列表
最新
最热
常用网站
站点信息
  • 文章总数:2016
  • 页面总数:1
  • 分类总数:17
  • 标签总数:518
  • 评论总数:0
  • 浏览总数:592287
Archives
Copyright © 2017-2019 www.my889.com Some Rights Reserved.
推荐使用 Chrome 浏览器浏览本站
沪ICP备17052342号
Sitemap XML