.h .hpp 头文件中进行 flag 的声明.cc .cpp 源文件中进行 flag 的定义bool:布尔类型int32:32 位有符号整数类型int64:64 位有符号整数类型uint32:32 位无符号整数类型uint64:64 位无符号整数类型double:双精度浮点类型string:C++ 字符串类型通过形如 DECLARE_type 的宏进行 flag 的声明:
// flags.hpp
#ifndef FLAGS_HPP_
#define FLAGS_HPP_
#include "gflags/gflags.h"
DECLARE_int32(demo_flag_int32);
DECLARE_bool(demo_flag_bool);
#endif
通过形如 DEFINE_type 的宏进行 flag 的定义
// flags.cpp
#include "../inc/flags.hpp"
DEFINE_int32(demo_flag_int32, 0, "A int32 demo flag.");
DEFINE_bool(demo_flag_bool, false, "A bool demo flag.");
完成 flag 的定义后,gflags 将自动为 flag 生成形如 FLAGS_name 的全局变量,例如上文中 demo_flag_int32 和 demo_flag_bool 对应的全局变量分别为 FLAGS_demo_flag_int32 和 FLAGS_demo_flag_bool。
gflags 中包含三种对 flag 的赋值操作:命令行赋值、flagfile 赋值和变量赋值。