ifndef的作用?解决办法

ifndef的作用?
我遇见这样一个头文件:
#ifndef _MYMATH_H

#define _MYMATH_H

extern “C”

{

int Summary(int n);

int Factorial(int n);

}

#endif

请问,#ifndef _MYMATH_H和#define _MYMATH_H是什么意思呢?

------解决方案--------------------
#ifndef _MYMATH_H和#define _MYMATH_H 这两个宏用来防止重复包含头文件,如果在多个文件中重复包含某一头文件会出现错误,这两个宏在这里的意思是:如果没有定义_MYMATH_H就执行下面的语句,如果执行了就跳过下面的语句,类似if语句
------解决方案--------------------
防止该文件被重复包含

#ifndef _MYMATH_H 
如果没有定义 _MYMATH_H 

#define _MYMATH_H
就定义 _MYMATH_H
extern “C” 



int Summary(int n); 

int Factorial(int n); 



当第二次要包含该文件时,由于已经定义了_MYMATH_H
就不会在包含这些内容。