#ifdef 与#endif 在函数中的作用?及其用法?

问题描述:

#ifdef 与#endif 在函数中的作用?及其用法?
CV_IMPL CvCapture * cvCreateFileCapture (const char * filename)
{
CvCapture * result = 0;
#ifdef WIN32
if (! result)
result = cvCreateFileCapture_Win32 (filename);
#endif
#ifdef HAVE_FFMPEG
if (! result)
result = cvCreateFileCapture_FFMPEG (filename);
#endif

#ifdef HAVE_XINE
if (! result)
result = cvCreateFileCapture_XINE (filename);
#endif
#ifdef HAVE_GSTREAMER
if (! result)
result = cvCreateCapture_GStreamer (CV_CAP_GSTREAMER_FILE, filename);
#endif
#ifdef HAVE_QUICKTIME
if (! result)
result = cvCreateFileCapture_QT (filename);
#endif

if (! result)
result = cvCreateFileCapture_Images (filename);
return result;
}

条件编译的宏,根据宏定义指定变量与否来决定是否编译被
#ifdef和#endif所包括进来的整段语句块.