为了模板使用方便，将定义写入头文件，并增加了相应函数的注释