#define MAX 7
#define BUFFER 16
#define MODULO 8
typedef struct {
int x;
} BLAH;
私が持っている場合:
checkWindow(BLAH *b) {
int mod;
mod = b.MODULO;
}
具体的には、BLAH 構造体から MODULO にアクセスできますか?
#define MAX 7
#define BUFFER 16
#define MODULO 8
typedef struct {
int x;
} BLAH;
私が持っている場合:
checkWindow(BLAH *b) {
int mod;
mod = b.MODULO;
}
具体的には、BLAH 構造体から MODULO にアクセスできますか?
プリプロセッサ定義の意味を誤解していると思います。#define
-d 項目は変数のようにしか見えませんが、古典的な意味での変数ではありません: それらはテキスト置換です。これらは、コンパイラがプログラムのテキストを確認する前に、プリプロセッサによって解釈されます。プリプロセッサが完了するまでに、プログラムのテキストには 、 、または への参照がMAX
ありませBUFFER
ん。これが-d 変数にアクセスできない理由です。アクセスする変数はありません。MODULO
7
16
8
#define
すべての #defines は、コンパイル前に、それらが定義する「値」によってプレーン テキストで置き換えられます。これらは変数ではなく、プログラムを簡単に記述できるようにするための単純な構文です。#def のものは実際にはコンパイラに到達せず、プリプロセッサで解決されます。
さて、例の MODULO を単に 8 に置き換えた場合、結果のコードは意味をなすでしょうか? 意味がある場合は、コンピュータ プログラミング 101 コースを受講してください。