在Objective-C中,我在处理块等时经常使用__typeof__(obj)
.为什么不使用__typeof(obj)
或typeof(obj)
呢.
什么时候用哪个?
在Objective-C中,我在处理块等时经常使用__typeof__(obj)
.为什么不使用__typeof(obj)
或typeof(obj)
呢.
什么时候用哪个?
__typeof__()
和__typeof()
是C语言的特定于编译器的扩展,因为标准C不包含这样的运算符.标准C要求编译器在语言扩展的前面加上双下划线(这也是为什么您永远不应该为自己的函数、变量等这样做的原因)
typeof()
是完全相同的,但将下划线抛出窗口时,要理解每个现代编译器都支持它.(实际上,现在我想起来了,Visual C++可能不支持.但是它支持decltype()
,它通常提供与typeof()
相同的行为.)
这三个词的意思都是一样的,但没有一个是标准的C,因此一致性编译器可以 Select 使任何一个词的意思不同.