Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 有人能给我解释一下这个语法吗#定义散列“U是实(h)((h)>;=2)”的;_C_C Preprocessor - Fatal编程技术网

C 有人能给我解释一下这个语法吗#定义散列“U是实(h)((h)>;=2)”的;

C 有人能给我解释一下这个语法吗#定义散列“U是实(h)((h)>;=2)”的;,c,c-preprocessor,C,C Preprocessor,我试着从这里得到帮助。但是找不到这样的例子。此语法取自Glib/ghash.c #define HASH_IS_REAL(h_) ((h_) >= 2) 这定义了一个接受参数的宏。编译C文件时,编译器运行预处理器,并用宏定义的规则替换出现的HASH\u is\u REAL 如果你的代码 int x = 18; if(HASH_IS_REAL(x)) { } 预处理器将此更改为 int x = 18; if(((x) >= 2)) { } 有关宏和C预处理器的更多信息,请参阅和

我试着从这里得到帮助。但是找不到这样的例子。此语法取自
Glib/ghash.c

#define HASH_IS_REAL(h_) ((h_) >= 2)

这定义了一个接受参数的宏。编译C文件时,编译器运行预处理器,并用宏定义的规则替换出现的
HASH\u is\u REAL

如果你的代码

int x = 18;
if(HASH_IS_REAL(x))
{
}
预处理器将此更改为

int x = 18;
if(((x) >= 2))
{
}
有关宏和C预处理器的更多信息,请参阅和
.

似乎很简单。如果参数>=2,则计算结果为1。这只是测试
h
是否大于或等于2;我错过什么了吗?请张贴一个使用它的例子。为什么一个大于或等于2的值意味着“散列是实的”是另一个问题,不过…我必须理解这个文件的函数g_hash_table_