1

Xcode が次のコードに対してエラーを発行しないことを発見して驚きましたが、これは C では無効です。

typedef enum : NSUInteger {
    FLAG_A = 1,
    FLAG_B = 2,
    FLAG_C = 4
} MyFlags;

これは、列挙型の基になる型を設定するための C# の構文と非常によく似た、基になる列挙NSUInteger型を作成するように見えます。MyFlags

この構文は表示どおりに機能しますか、それとも別の意味を持ちますか?

4

2 に答える 2

4

これは、列挙型の特定のサイズを確保するために使用される C++11 から借用した機能です。ABI が最終的に壊れることを恐れることなく、フレームワークのパブリック API で列挙型を使用できます。

Clang はこの機能を実装し、Objective-C で言語拡張として使用できるようにします。

于 2012-10-24T23:56:37.650 に答える
1

これは目的cでうまく機能します。これらのパラメーターには、列挙型で任意の値を設定できます。

于 2012-10-24T23:36:22.037 に答える