我认为答案是否定的,而且我通常不会在浏览源代码时遇到问题,但是我对 C/C++ 有点陌生,找不到该常量的声明位置。
我CMD_REQ_REDIS_MGET
在Thehiredis-vip 客户端库中寻找 Redis。我对此进行了 github/google 搜索,并在两个文件中得到了五次出现的结果。我还尝试使用 grep 查找源代码中的字符串。
$ grep -rnw ./ -e "CMD_REQ_REDIS_MGET"
./command.c:241: case CMD_REQ_REDIS_MGET:
./command.c:574: r->type = CMD_REQ_REDIS_MGET;
./hircluster.c:3257: if (command->type == CMD_REQ_REDIS_MGET) {
./hircluster.c:3446: if (command->type == CMD_REQ_REDIS_MGET) {
./hircluster.c:3480: if (command->type == CMD_REQ_REDIS_MGET) {
源代码不包含任何二进制文件,应该是自包含的。它不包括任何来自外部资源的与 Redis 相关的库,所以我刚刚困惑了几个小时。
我需要知道的原因是我正在尝试添加另一个像它一样的常量,并且我不断收到声明尚未找到的错误,所以我想知道这里是否发生了与 C 相关的任何黑魔法只是不知道。
编辑:想指出这段代码实际上会按原样编译。