Tôi nghĩ câu trả lời là không, và tôi thường không gặp khó khăn khi xem mã nguồn, nhưng tôi hơi mới với C/C++ và không thể tìm thấy nơi mà hằng số này được khai báo.Có cách nào đề cập đến hằng số C không bao giờ được xác định/khai báo không?
Tôi đang tìm kiếm CMD_REQ_REDIS_MGET
trong The hiredis-vip client library for Redis. Tôi đã làm một github/google tìm kiếm cho điều này và có kết quả trong chính xác hai tập tin cho năm lần xuất hiện. Tôi cũng đã cố gắng grep cho chuỗi trong mã nguồn.
$ 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) {
Mã nguồn không chứa bất kỳ tệp nhị phân nào và được cho là độc lập. Nó không bao gồm bất kỳ thư viện nào từ các nguồn bên ngoài có liên quan đến Redis, và vì vậy tôi vừa bị nhầm lẫn trong một vài giờ. Lý do tôi cần biết là tôi đang cố gắng thêm một hằng số khác giống như nó, và tôi tiếp tục nhận được lỗi mà tuyên bố đã không được tìm thấy, vì vậy tôi tự hỏi nếu có bất kỳ ma thuật đen xảy ra ở đây với C mà tôi không biết.
EDIT: Bạn muốn chỉ ra rằng mã này trên thực tế sẽ biên dịch như vậy.
bạn có chắc chắn bạn đang thực hiện grep ở mức phù hợp không? các định nghĩa như vậy thường nằm trong tệp .h. –
@ Jean-FrançoisFabre Tôi đang thực hiện nó ở gốc của git repo –