プロが教えるわが家の防犯対策術!

至急です!
マクロ定義で
#define NUMBER 10とし
関数で max(double max[],int NUMBER)
としたら
in expansion of macro"NUMBER@とエラーになりました!
なんでですか

「至急です! マクロ定義で #define」の質問画像

A 回答 (3件)

いまどき


「in expansion of macro"NUMBER@」
としか出さないコンパイラなど存在しないと思うけどねぇ.

なんでエラーメッセージを全部書かない?
    • good
    • 1

> #define NUMBER 10とし



NUMBERは10に置き換えられますから、

> 関数で max(double max[],int NUMBER)
> としたら

max(double max[],int 10)

って書かれてるのと同じですから、エラーになるんだと思います。

--
ちなみに、どうすればいいのか?って聞かれても、添付の画像の文字も潰れてて、何をどうしたいのか分からないので、答えるのは難しいです。


強いて言うなら、C++なんかの関数の定義で、第2引数を省略したときに、NUMBERで定義してる10をデフォルト値として渡したいとかなら、

max(double max[],int n = NUMBER)

とか。

C++で引数を省略できる関数を作るには - Sakura scope
http://www.nishishi.com/blog/2005/12/abbreviatio …
    • good
    • 1

>#define NUMBER 10とし


>関数で max(double max[],int NUMBER)

プリプロセッサを通過すると…
max(double max[],int 10)
になります。
仮引数の変数名が10…ですか????


ちなみに貼られている画像は潰れていてろくに読めません。
読もうという気も起きませんが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています