ページ 1 / 1
ヘッダーファイルの#includeと#defineの順序について
Posted: 2017年10月23日(月) 02:13
by 77kokugov
C++を書いているんですが、
ヘッダーファイルに
コード:
#define W 1920;
#define H 1080;
#include<stdio.h>
~~~~~~
と書くとエラーがものすごい出てコンパイルできないのですが、
コード:
#include<stdio.h>
#define W 1920;
#define H 1080;
~~~~~~
とincludeとdefineを逆にするとコンパイル通って、エラーも何も起きません。
この違いとは何なのでしょうか?
Re: ヘッダーファイルの#includeと#defineの順序について
Posted: 2017年10月23日(月) 02:55
by MK5
違いですね。
上と下ではソースコードが違いますね。
実用上はその程度と思えます。
ただ、強いて言うならば、仮に質問者様のコンパイラにて、<stdio.h>内に"H"や"W"が定義されていた場合、上の例だと<stdio.h>内の定義で上書きされる場合や、下の例だと質問者様が定義した値で<stdio.h>内の値が上書きされたり、若しくは、エラーになる可能性は有るとは思えます。
因みにですが、
は別に<stdio.h>が無くても使えます。
また、分かっているのかもしれませんが、
自体が、ただ単に、その場所に<stdio.h>の中身を書く事と一緒の筈です。
そして、更に言うならば、実は、
自体を書かなくても良い事になっています。
※最近のコンパイラの話であり、古いコンパイラでは、書かないとNGな場合があります。