無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
へたれ

無題

#1

投稿記事 by へたれ » 16年前

教えていただきたいのですが、
#define O 10000
といった感じにOに10000の容量をとるのは分かるのですが、
この確保できる容量は、各PCによって違うものなのでしょうか?それとも共通で決まっているものなのでしょうか?

ざこ

Re:無題

#2

投稿記事 by ざこ » 16年前

defineは文字列を文字列で置き換えるのではないでしょうか
私も初心者なんでよくわかりませんけど。
http://www9.plala.or.jp/sgwr-t/c/sec18.html 参照です。

御津凪

Re:無題

#3

投稿記事 by 御津凪 » 16年前

#define はマクロ定義文です。
簡単に言えば、
#define O 10000
の場合、 O を 10000 に置き換えてくれるものです。
#define N 10
int main(){
    int i;
    for(i=0;i<N;i++){ // N回繰り返す(この場合は10回)
        printf("i = %d\n",i);
    }
    return 0;
}
主に固定値や簡単な共通処理などに使われます。
上記の例で、 10 を 100 に代えれば、 N は 100 に置き換わり、
100 回ループします。

本題ですが、その O が何を意味しているかで意味合いが変わります。
(固定値、最大数、など)
「容量」という単語から、何かの量を表すものでしょうか?

Dixq (管理人)

Re:無題

#4

投稿記事 by Dixq (管理人) » 16年前

#define N 10000

int arr[N];

みたいに使っていらっしゃるのでしょうか?
ローカル変数で、大きな配列を作ろうとして困っていらっしゃるのでは無いかと思います。
そんな時は、前にstaticと付けるか、グローバル変数にしてはどうでしょう。

lbfuvab

Re:無題

#5

投稿記事 by lbfuvab » 16年前

英語でdefineは「定義する」と言う意味がありますので、
#define A 1000
を「Aを1000と定義する」と考えるといいと思いますよ。

へたれ

Re:無題

#6

投稿記事 by へたれ » 16年前

皆様、回答本当にありがとうございます。
まず質問の説明が不十分だったことを誤ります。

今回のdefineの使い方としてはDixg様の言うとおり大きな配列に当てようとし、困っていました。
staticをつけてグローバル変数にして解決することが出来ました。

ざこ様
サイトの紹介ありがとうございます。これから参考にしていきたいと思います。
御津凪様
丁寧な説明でありがとうございます。
Dixg様
説明不測の質問ですいませんでした。また回答ありがとうございました。

へたれ

Re:無題

#7

投稿記事 by へたれ » 16年前

すいません解決しました。

閉鎖

“C言語何でも質問掲示板” へ戻る