2016-04-29 14 views
0

これはちょっと変です。私は次の関数を宣言:単純なマクロを関数の引数として渡すと、 '関数呼び出しで引数が少なすぎます'

void setMeshAttribute(int& ID, int attribute, int value); 

と私が呼ぶ:

setMeshAttribute(mesh_1_id, 0 ,0); 

私は全く問題を取得していません。しかし、その後、私は

#define XE_MAX_VERTICES 0 

を定義してみてください:

setMeshAttribute(mesh_1_id, XE_MAX_VERTICES, 0); 

私は '関数呼び出しの数が少なすぎる引数の私に言って、XE_MAX_VERTICESでエラーが発生します。コンパイラがXE_MAX_VERTICESを0に置き換え、すべてがうまくいくはずです。 Apperentlyそれではない。

私はここで間違っていますか?

この種の問題に対処するための質問が既にある場合は、自分で見つけられなかったので、リンクしてください。

+5

[最小限で完全であり、検証可能な例](http://stackoverflow.com/help/mcve)がなければ、何かするのは非常に難しいでしょうが、推測します。 –

+2

プリプロセッサの出力を見てください(gccの-Eフラグ)。 –

+1

説明したように、うまく動作します。 –

答えて

0

これはちょうどばかだ。代わりに

#define XE_MAX_VERTICES 0 

の私が持っていた:また

#define XE_MAX_VERTICES 0; 

セミコロンもそこにいなかったことから、私の質問のコードは、たくさん助けていません。

私の例が検証可能でなければならないと教えてくれたJoachim Pileborgに感謝します。

関連する問題