1. ホーム
  2. c

[解決済み] typedefと#defineはcで同じものですか?

2022-06-11 20:20:19

質問

もし typedef#define は、同じように c ?

どのように解決するのですか?

いいえ。

#define はプリプロセッサー・トークンであり、コンパイラー自身は決してこれを見ることはありません。

typedef はコンパイラトークンです:プリプロセッサーはそれを気にしません。

同じ効果を得るためにどちらかを使うことができますが、ニーズに合わせて適切なものを使う方がよいでしょう

#define MY_TYPE int
typedef int My_Type;

物事がquot;hairy" になったとき、適切なツールを使用すると、それを正しくすることができます。

#define FX_TYPE void (*)(int)
typedef void (*stdfx)(int);

void fx_typ(stdfx fx); /* ok */
void fx_def(FX_TYPE fx); /* error */