objective-c - 如果在变量前放置多个静态修饰符,这意味着什么?

标签 objective-c ios c

我只是在 Xcode 中闲逛,我发现以下语句可以编译并且它甚至不会发出警告,更不用说错误了:

static static static int static long static var[5];

这是怎么回事?这会使它成为 super DUPER 静态吗? :)

开个玩笑,为什么编译器允许重复使用静态修饰符?是否真的有理由允许人们这样做,或者编写编译器的人太懒了而不会引发错误?

最佳答案

我不是 Objective-C 开发人员,但该语言是否允许对修饰符进行任意排序(例如 static volatile extern)?如果是这样,那么它可能是编译器中的一个良性错误,在读取修饰符(在这种情况下为“static”)后返回到它再次接受任何修饰符终端的状态,并且会一直这样做直到遇到变量的类型。连续的 static 声明不会与任何先前的修饰符相矛盾,因此不会引发任何错误;所以基于此,我希望 volatile volatile volatile int x; 也能工作。

关于objective-c - 如果在变量前放置多个静态修饰符,这意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11977285/

相关文章:

objective-c - 为 iOS5 编译 FFMPEG 时出现大问题

ios - KeyboardWillShowNotification

ios - 如何使用 xib 创建自定义 View

xcode - didSelectRowAtIndexPath 中的详细信息项显示为 null

c - 如何获取当前日期和时间并将其以正确的格式保存到 char* 数组中?

C:如何在换行后中断 scanf

ios - 找不到 Accella Mobile SDK IOS

iphone - 背景中的 UILocalNotification 响亮的声音

ios - 一行中的多个函数调用

c - 赋值从指针生成整数而不进行强制转换 [-Werror]