ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 05:14

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 6 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2005年7月08日(金) 20:15 
オフライン

登録日時: 2005年5月31日(火) 13:31
記事: 205
お住まい: 大阪市
ActiveBasic4.02.00で(多分最新版でも同じことが発生するかもしれませんが)、たとえば
コード:
Sub MusicFileOpen(FileName As BytePtr)
(処理)
End Sub
というSubがあり、それを呼び出すとき、
コード:
MusicFileOpen(Mid$(buffer,hTop+2))
(Mid$を何かの文字列に代入?すればエラーはなくなると思いますが・・・)
を使うと、
MainWnd.sbp(48) - "MusicFileOpen関数の第1パラメータ"はポインタ(以下略)
と出るのですが、自分的には
MainWnd.sbp(48) - "MusicFileOpen"関数の第1パラメータはポインタ(以下略)
が良いと思うのですが、どうでしょうか?
自分的には関数の部分だけを「"」で囲うほうが良いんじゃないかと思いまして・・・・・
まぁ、ほとんどエラーの内容が分かるので、気にしてないんですけど、一応気になりましたので(微妙に矛盾…)、投稿しておきます。
皆さんはどうなんでしょうかね?


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2005年7月08日(金) 21:36 
オフライン

登録日時: 2005年5月31日(火) 07:49
記事: 162
コンパイラの内部事情なので、仕方ないです。
例えば、コンパイラが内部で次のようなフォーマットを保持していたとしましょう。
  1. %s関数の第%dパラメータ
  2. "%s"はポインタ変数型です。文字列演算を指定することはできません
C言語の sprintf()関数のようなもので 1. の %s には "MusicFileOpen" という文字列が、%d には "1" という文字列が格納されたとします。
これをバッファに格納しておき、2. の %s にそのままこのバッファを格納すると、

 "MusicFileOpen関数の第1パラメータ"はポインタ変数型です。文字列演算を指定することはできません

という文字列が生成されるわけです。
このように多重的に sprintf()関数を利用するのならば、ダブルクォートの移動は不可能ですよね。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2005年7月09日(土) 00:20 
オフライン

登録日時: 2005年5月31日(火) 13:31
記事: 205
お住まい: 大阪市
> このように多重的に sprintf()関数を利用するのならば、ダブルクォートの移動は不可能ですよね。

そうなんですか。勉強になります。回答ありがとうございます。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2005年7月09日(土) 00:49 
オフライン

登録日時: 2005年5月31日(火) 01:10
記事: 26
お住まい: 岡山県
でも、全角の”は、使おうとすれば使えると思いますが?

コンパイラは全角を文字として認める特性があるので(yacc/lexを少し経験したときに思いました)


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2005年7月09日(土) 14:05 
これは、製作上の都合だと思います。
以下のコードで実現できます。
コード:
#include <stdio.h>

void main()
{
	char* pmsg = "\"%s\" 関数の第%dパラメータ";
	char* pmsg2 = "%sはポインタ変数型です。文字列演算を指定することはできません";
	char sztmp[256];
	char szmsg[256];
	
	sprintf(sztmp, pmsg, "MusicFileOpen", 1);
	sprintf(szmsg, pmsg2, sztmp);
	printf(szmsg);
	
}


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2005年7月09日(土) 15:44 
"コンパイラの内部事情"とは、"制作上の事情"と言うことなんですね。
失礼しました。


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 6 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[10人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean