C++中#ifndef的含义现有一个Log.h头文件.头文件里内容如下:#ifndef SU_LOG_H_#define SU_LOG_H_#endif疑问:文件名不是Log.为什么#ifndef的时候的时候,写的是SU_LOG_H_,而不是#ifndef LOG_H_,我知道ifndef是为了避
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 16:12:44
C++中#ifndef的含义现有一个Log.h头文件.头文件里内容如下:#ifndef SU_LOG_H_#define SU_LOG_H_#endif疑问:文件名不是Log.为什么#ifndef的时候的时候,写的是SU_LOG_H_,而不是#ifndef LOG_H_,我知道ifndef是为了避
C++中#ifndef的含义
现有一个Log.h头文件.头文件里内容如下:
#ifndef SU_LOG_H_
#define SU_LOG_H_
#endif
疑问:文件名不是Log.为什么#ifndef的时候的时候,写的是SU_LOG_H_,而不是#ifndef LOG_H_,我知道ifndef是为了避免重复编译,但是不明白后面跟的SU_LOG_H_是什么含义,以前一直以为#ifndef后面跟的要跟.h的文件名一致呢
C++中#ifndef的含义现有一个Log.h头文件.头文件里内容如下:#ifndef SU_LOG_H_#define SU_LOG_H_#endif疑问:文件名不是Log.为什么#ifndef的时候的时候,写的是SU_LOG_H_,而不是#ifndef LOG_H_,我知道ifndef是为了避
定义成空的呗
这就是个小技巧, 为了防止两次include同一个头文件.
第一次include的时候由于 ns_telnet_h没定义,所以宏里面的内容(也就是头文件的全部内容了) 会被编译. 而第二次include它的时候由于 ns_telnet_h已经被定义,所以宏里面的内容不会被编译. 这个宏没define成任何有意义的东西,是因为实际上只是需要ns_telnet_h存在就可以,它的内容无所谓
以上回答你满意么?