dポイントプレゼントキャンペーン実施中!

Cの初心者です、宜しくお願いします。
下のようなヘッダを作成して、別のファイルに#includeして、走らせて見ました。

そこで疑問点ですが、
「mm」については置き替えが出来て、計算処理をしているのですが、「mm」の型宣言をしていません、これでもエラーにならないのは何故でしょうか。
普通に「mm」という変数とした場合(「mm」をヘッダーとして#includeしなかった場合)にはint型を宣言していないとエラーになると思うのですが。

また、「hh」については、そのまま「hh」がprintfされています。
文字の場合の置き替えは、使えないということでしょうか。

宜しくお願いします。


/*header_2.h*/

#define hh HEADER練習
#define mm 100

================================================

#include "header_2.h"

int main(void)
{
int aaa = 50 ;

printf("%d\n\n" , mm);
printf("hh");
printf("%d\n\n" , mm * 100);
printf("%d\n\n" , mm * aaa);

return 0;
}

A 回答 (3件)

mm は変数じゃなくて、100に置き換わる目印です。

エディタで「すべてを置換 mm を 100 に」というのを行ったのと同じ。

ただし、文字列" "や' 'の中では置き換わりません。そのため、

#define hh "HEADER練習"

printf(hh);

とする必要があります。
    • good
    • 0
この回答へのお礼

notnotさん、回答有り難う御座いました。

>mm は変数じゃなくて、100に置き換わる目印です。
だから、intの宣言が不要ということでしょうか????

文字列については分かったのですが、、、、、、

お礼日時:2009/09/27 02:33

#defineについて調べましょう。



その上でわからないことがあったら再質問してください。

C言語の入門書にも必ず載っていることです。

自分で調べず「わからないから教えて」じゃプログラムなんて作れません。
    • good
    • 0

あえて言わせてもらうけど, 「初心者」ってのは「調べないことを正当化するための文言」じゃないよ.


どこまで調べたの?
    • good
    • 0

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