掲示板ランキング  プラスター(肩こり・腰痛・筋肉痛の塗り薬)


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.7194

配列
投稿者---win(2007/03/01 15:47:27)


Windwsのプログラムなんですが、int型の配列に文字列を代入する事は
できるんですか?教えてください。


    HDC hdc;
    PAINTSTRUCT ps;

    int iCount , iWidth = 0;

    static const int syscolor[] = {
        COLOR_3DDKSHADOW ,    COLOR_3DFACE ,
        COLOR_3DHILIGHT ,     COLOR_3DLIGHT ,
        COLOR_3DSHADOW ,      COLOR_ACTIVEBORDER ,
        COLOR_ACTIVECAPTION , COLOR_APPWORKSPACE ,
        COLOR_BACKGROUND ,    COLOR_BTNTEXT ,
        COLOR_CAPTIONTEXT ,   COLOR_GRAYTEXT ,
        COLOR_HIGHLIGHT ,     COLOR_HIGHLIGHTTEXT ,
        COLOR_INACTIVEBORDER ,COLOR_INACTIVECAPTION ,
        COLOR_INFOBK ,        COLOR_INFOTEXT ,
        COLOR_MENU ,          COLOR_MENUTEXT ,
        COLOR_SCROLLBAR ,     COLOR_WINDOW ,
        COLOR_WINDOWFRAME ,   COLOR_WINDOWTEXT
    };





この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:配列 7195 jazz 2007/03/01 15:59:42
<子記事> Re:配列 7198 wis 2007/03/02 11:05:06


No.7195

Re:配列
投稿者---jazz(2007/03/01 15:59:42)


> int型の配列に文字列を代入する事はできるんですか?

この内容と、コードとが結びつきません。
もしかして、COLOR_3DDKSHADOWなど、
ヘッダーファイルかどこかでおそらく
#define COLOR_3DDKSHADOW 0xff00ff
のように定義していると思われる内容を、
"COLOR_3DDKSHADOW"という文字列だと勘違いしていらっしゃいませんか?





この投稿にコメントする

削除パスワード

No.7196

Re:配列
投稿者---win(2007/03/01 16:22:15)



さっそくの回答どうもありがとうございます。

文字列は、#define定義されているんですね。
Cの知識に自信がないもので、もしかしたら
intの配列に、文字列を代入する時があるのかと
疑問に持ちまして。
お答えどうもありがとうございます。




この投稿にコメントする

削除パスワード

No.7197

Re:配列
投稿者---jazz(2007/03/01 16:32:33)


> 文字列は、#define定義されているんですね。

仮に、どこかのヘッダーファイルに
#define COLOR_3DDKSHADOW 0xff00ff
という記述があるとして、
COLOR_3DDKSHADOW
は文字列「ではありません」。





この投稿にコメントする

削除パスワード

No.7198

Re:配列
投稿者---wis(2007/03/02 11:05:06)


>int型の配列に文字列を代入する事は
このサイトのプリプロセスをご覧になって、
文字列1とあるので勘違いなさっているのでしょうか?
http://www9.plala.or.jp/sgwr-t/c/sec18.html

#define 文字羅列1 文字羅列2
上記はプリプロセスでコンパイル実行前に
ソースコード上の「文字羅列1」を「文字羅列2」に全て
置換することを意味します。

defineはあくまでも置換なので、定義された識別子には、
「char」「int」と言ったような明確な型は存在しません。



この投稿にコメントする

削除パスワード

No.7287

Re:配列
投稿者---金魚ちゃん(2007/03/22 16:08:37)


win さんのソースの COLOR_3DDKSHADOW記号定数というもので文字列ではありません。
この記号定数は wis さんの説明にあるとおりプリプロセス処理の段階で定数値の文字列に
置き換わるのです。つまり、ソースファイルを見やすくするために意味のある数値を英字で
表せるのです。決して COLOR_3DDKSHADOW が文字列の "COLOR_3DDKSHADOW" というわけでは
ありません。

文字列は文字で囲みます。
つまり、COLOR_3DDKSHADOW という文字列を表現したいのならば "COLOR_3DDKSHADOW"となります。
また、int 型の配列には文字列はセットできません。ただし、文字列のアドレスを int 型に
キャストしての代入は出来ますが、文字列をセットするわけではありません。注意!



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ