0

私は構造を持っています

struct CounterRange {
    NSInteger min;
    NSInteger max;
};

NSMakeRange のような構造体にパラメータを設定したい:

NSMakeRange(unsigned int loc, unsigned int len)

コード行は以下のようになります

obj.counterRange = MakeCounterRange(10, 20);

たとえば、MakeCounterRange は構造を設定するマクロになると思います。しかし、私はそれがどのように機能するかを推測できる同じものを作ったことはありません.

4

2 に答える 2

1

単に:

#define MakeCounterRange(a, b) { a, b }

注: マクロを使用すると、一般的に作業が簡単になり、より少ない文字数で作業を行うことができます。ここではそうではないので、わざわざ使用することさえありません。

于 2013-03-13T16:43:16.263 に答える
1

関数を使用するだけです。必要に応じてインラインにすることもできます。NSRange.h から NSMakeRange の定義を適合させることができます。

NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
    NSRange r;
    r.location = loc;
    r.length = len;
    return r;
}

あなたの構造体は NSRange によく似ています。なぜそれを使わないのですか?

于 2013-03-13T16:41:24.633 に答える