宏定义,用在这是,是告诉编译器一些事。
比如说,我加入了一个文件里,#include 两个文件 L1.H ,L2.H
但是,事实上,L1.H包含了L2.H,如果两个文件都载入,那就没有必要了。
问题里的Log.h就是类似的,如果没有SU_LOG_H,就定义一个。宏相当于一个标记,编译器根据这个宏是否存在,作出一些你看不见的操作。
当然,用途很多。你只需要记住,ifndef的意思就是,在编译的时候,如果没有定义XXX,就执行下面的操作。
定义成空的呗
这就是个小技巧, 为了防止两次include同一个头文件。
第一次include的时候由于 ns_telnet_h没定义,所以宏里面的内容(也就是头文件的全部内容了) 会被编译。 而第二次include它的时候由于 ns_telnet_h已经被定义,所以宏里面的内容不会被编译。 这个宏没define成任何有意义的东西,是因为实际上只是需要ns_telnet_h存在就可以,它的内容无所谓
以上回答你满意么?