HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0721
ヘビMAX#includeを見ていて7未解決


ヘビMAX

リンク

2008/7/21(Mon) 22:07:02|NO.17512

ふと思ったのですが
#defineなどでひとつで大量のことを実行する命令を作って
それをインクルードすれば少ないメモリでやりたいことができて
HSPTVなどで便利ではないのでしょうか。
まあ、それができるのなら皆やっていると思うのですが。
いろいろ突っ込んでください。



この記事に返信する


レノス

リンク

2008/7/21(Mon) 22:16:19|NO.17514

#define で作ったマクロはスクリプトを置き換えているだけなので、
残念ながらできません……。


#define addAndPrint(%1,%2) mes ((%1)+(%2)) addandprint 23, 57 // ↓のようになる mes ((23)+(57))



エレキ掃除機

リンク

2008/7/22(Tue) 18:40:16|NO.17535

理解ができないのですが、
#deffuncの命令を#defineに置き換えればどうなのか、ということですね?



ヘビMAX

リンク

2008/7/22(Tue) 19:18:28|NO.17537

えっと、たとえば#defineでmes命令をmなどにして
そうしたものをインクルードしてくれば3文字打たなければいけないところ
1文字ですむじゃないですか、それができたらメモリの短縮になると思ったのですが
どうやらできないみたいですね。



エレキ掃除機

リンク

2008/7/23(Wed) 11:26:16|NO.17555

それはできますよ?

#define m mes m "mes君はお休みです"



Quiet

リンク

2008/7/23(Wed) 11:50:47|NO.17557

メモリというのはstart.axの容量ですか?
そうならば文字数などは容量に全く関係がありません(文字列とは関わりますが)。

ソースの容量であれば逆にその分容量が増えます。

>レノスさん
の言っている通り、スクリプトを置き換えているだけなのでどんなに詰めても
容量は変わりません。

mes "HSP" ;↑ ;この二つは同じ意味 ;↓ #define m mes m "HSP"



いかろ

リンク

2008/7/27(Sun) 10:36:15|NO.17678

メモリにはプログラム自体は皆さんが言っているように完璧な形で実行時にはおかれていま
す。
たぶんヘビMAXさんは変わらない数などは変数を使うより#defineで定義したほうが軽く
なるということと混同しているのではないでしょうか?
int型の場合たしか2^-31〜2^31間で表せるので2^62byte(bit?)のデータを勝手に
メモリに確保します。ところが10という数字を代入しただけではかなり無駄にメモリ
をつかっていることになりますよね。一方、#defineを使えばソースの内での置き換えだけ
なのでその数字は変数として確保されることはなく結果的にメモリの節約になるというわけ
です。

ちょっと自信ないので間違ってたら誰か指摘お願いしますorz



いかろ

リンク

2008/7/29(Tue) 20:53:24|NO.17731

>2^62byte(bit?)
32bit(4byte)の間違いでした



ONION software Copyright 1997-2023(c) All rights reserved.