1

デバイスごとに異なるパラメータを定義したいのですが、以下のようにコンパイルミスをしてしまいました。

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

#if IS_IPAD                   //invalid token at start of a preprocessor expression
#define defaultHeight 475
#else
#define defaultHeight 175
#endif

自分の目的に合った正しい文法を知りたいです、ありがとう!

4

2 に答える 2

10

あなたができること:

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define DEFAULT_HEIGHT ((IS_IPAD) ? 475.0 : 175.0)
于 2012-06-23T07:36:49.507 に答える
2

プリプロセッサではこれを行うことはできません。プリプロセッサの条件付きマクロは、コンパイル時の定数式のみを受け入れます。代わりに、次のような C コードを使用します。

float defaultHeight;
if (IS_IPAD)
{
    defaultHeight = 475;
}
else
{
    defaultHeight = 175;
}

ところで、プリプロセッサ#defineマクロに小文字の名前を付けるのは悪い習慣です。デフォルトの高さにマクロを使用する場合は、

#define DEFAULT_HEIGHT value

代わりは。

于 2012-06-23T06:23:45.403 に答える