gpt4 book ai didi

c - #define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX 有什么作用?

转载 作者:太空宇宙 更新时间:2023-11-04 04:28:18 25 4
gpt4 key购买 nike

浏览MRI的代码,我发现这些#define我不明白:

#define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX
#define ROBJECT_EMBED ROBJECT_EMBED
enum {
ROBJECT_EMBED_LEN_MAX = 3,
ROBJECT_EMBED = RUBY_FL_USER1,

ROBJECT_ENUM_END
};

那些 #define 有什么意义?他们似乎什么都不做...

此代码可在 ruby​​ github 存储库的 ruby/include/ruby/ruby.h 文件中找到。

最佳答案

#define 可以在编译时使用#ifdef 测试定义是否存在。 (您不能在编译时测试枚举是否存在。)

由于 C 预处理器不进行递归替换,因此定义一个符号本身实际上什么也不做;该符号被自身替换一次,然后正常传递给编译器。

关于c - #define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39113492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com