0
注意:我正在使用Xcode最新版本附带的目标C编译器。为什么我可以修改const __restrict指针而不是typdef'd版本?
为什么说这是合法的:
void verySpecial(const float* __restrict foo, const int size) {
for (int i = 0; i < size; ++i) {
// ... do special things ...
++foo; // <-- Should be illegal to modify const pointer?
}
}
但是,如果我使用typedef,它做什么,我认为它应该做的。
typedef float* __restrict RFloatPtr;
void verySpecial(const RFloatPtr foo, const int size) {
for (int i = 0; i < size; ++i) {
// ... do special things ...
++foo; // <-- Now this is a compiler error.
}
}
那么,什么是在typedef定义不同的情况下,什么不我明白?阅读__restrict会让我的大脑受到伤害,我甚至不确定这是否重要。
First Apple's没有使用gcc或llvm的objective-c编译器。 –
@AnoopVaidya哼,什么? – 2013-04-17 17:50:07
无论如何。这是XCode附带的编译器。应用商店中最新版本的XCode。 –