对#ifndef的理解

由于对#ifndef的用法不太理解,在询问了老师#ifndef的含义以及查找资料后,对#ifndef总结了以下几点:

<1> #ifndef是宏定义的一种,是三种预处理功能(宏定义,文件包含和条件编译)中的其中一种:条件编译。

<2> 条件指示符#ifndef的作用和目的是:避免变量的重复定义,防止重复包含和编译同一个头文件。例如:有两个文件同时include了div.h这个文件,这两个文件其中一个先编译了,那么_DIV_H_已经被定义了,当编译第二个文件的时候,在#ifnef的时候就会自动跳出div.h这个文件的重复编译,避免了重复编译div.h文件。。

<3> 一般格式: #ifndef <标识>
                    #define <标识> 

                    ...do something...

                   #endif

      注:1. 标识的命名规则一般是头文件名全大写,前面加下划线,并把文件名中的“.”也变成下划线,例如我们编写程序时用的stdio.h,写为下面的形式:

           #ifndef _STDIO_H

           #define _STDIO_H

           ...do something...

           #endif

           2. #ifndef 和 #endif 要同时使用,如果只有#ifndef,没有#endif,可能会报错。

 

posted @ 2015-04-20 22:12  涂江凤  阅读(790)  评论(1编辑  收藏  举报