すれ立てるまでもない質問はここで 第70刷

このエントリーをはてなブックマークに追加
799デフォルトの名無しさん
if (変数名 == true)
って書くのと
if (true == 変数名)
では、どう違うのでしょうか?
800デフォルトの名無しさん:2005/10/13(木) 12:24:16
>>799
変数名 が論理型ならば
if (変数名)
と書くのが正しい。
801デフォルトの名無しさん:2005/10/13(木) 12:42:00
>>799
アセンブラレベルまで知らないからよくわからんが、
レジスタの使い方とか、順番が違うかも知らん
だが少なくとも、プログラムの動作上気にするような違いなどない

>>800
アナタニホンゴワカリマスカ?
802デフォルトの名無しさん:2005/10/13(木) 13:08:03
普通は最適化されてどれも同じコードになると思う。
if (変数名 == true)
if (true == 変数名)
if (変数名)
803デフォルトの名無しさん:2005/10/13(木) 14:09:37
>>799
==を=にタイポしたとき
(変数名 = true)だとコンパイル通ってしまって、
初歩的なバグとなりやすい

逆に、(true = 変数名)だったら、
trueに代入できねーからコンパイラが怒ってくれて分かりやすい

みたいな話しを聞いたことはある
804デフォルトの名無しさん:2005/10/13(木) 14:11:53
>>799
変数を後に持ってくるのって、確か間違って代入演算子にしちゃった時に
if (var = 1)だとエラーでないが、if (1 = var)だとエラーになるからじゃなかったっけ?

まぁ最近のコンパイラはWarning出してくれるし、見にくいからvar == 1でいいだろ
805デフォルトの名無しさん:2005/10/13(木) 14:25:56
>>803
(゚д゚)・・・・
806デフォルトの名無しさん:2005/10/13(木) 14:30:54
ちょっとずれるけどC/C++で
if(f()==g())の評価順は決まってる?
807デフォルトの名無しさん:2005/10/13(木) 14:54:36
|| && カンマ演算子 三項演算子以外は全て評価順が不定
808デフォルトの名無しさん:2005/10/13(木) 14:56:41
>>805
コンパイラがif(a=0)を警告してくれない太古の昔に
真顔でそういうことを主張していた人間がいたのだよ。
809デフォルトの名無しさん:2005/10/13(木) 15:09:13
今でも別にif(a=0)は警告してくれないと思うが
とりあえず、VC++6.0のコンパイラはそんな警告してくれんかったな
810デフォルトの名無しさん:2005/10/13(木) 15:18:06
>>809
まず、そのコンパイラは最近のものとは言い難い
(出たのいつだと思ってるんだ?)

次に、警告レベルを上げろ
811デフォルトの名無しさん:2005/10/13(木) 15:25:15
>>806
Cでは決まっていない。 C++は知らん。
812デフォルトの名無しさん:2005/10/13(木) 15:31:40
>>809
VC++6.0 は 警告レベル4(/W4)で出た。
813デフォルトの名無しさん:2005/10/13(木) 15:31:54
>>810
>出たのいつだと思ってるんだ?
たかだか5,6年前

>次に、警告レベルを上げろ
んなことしたら警告がまんどくせぇ
814811:2005/10/13(木) 15:33:44
ごめん、解答済みだったのね。>>807見落としてた。
815デフォルトの名無しさん:2005/10/13(木) 15:34:20
>>803
こんな流れになるのが分かってたからみんなあえて黙ってたのに・・・。
816デフォルトの名無しさん:2005/10/13(木) 15:36:58
>>815
今更嘆いても遅いけどな・・・
てか、==を=にするヤツなんて居たのか・・・
817803:2005/10/13(木) 16:04:35
そーだったのか、空気読めなくてオスマントルコ
818デフォルトの名無しさん:2005/10/13(木) 18:29:26
>>816
他の言語から来るとつい習慣てのもある。
819デフォルトの名無しさん:2005/10/13(木) 18:47:47
>>816
居る。
もちろん、== と = の違いが分かってないわけじゃないのよ。
(違い分かってない人が >>803 みたいな予防線張るわけないし。)
ついうっかりやっちゃうのよ。
820デフォルトの名無しさん:2005/10/13(木) 19:51:38
http://www.kouno.jp/home/c_faq/c17.html#4

あとif (a == true)と書けば「もしaがtrueなら」とそのまま読めるが、
if (true == a)ではそのまま読むと「もしtrueがaなら」となり頭の中で順番をひっくり返す必要がある。
821デフォルトの名無しさん:2005/10/13(木) 20:08:34
#あー。またこの話題か・・・。今年になってからだけでも見るの三度目
822デフォルトの名無しさん:2005/10/14(金) 07:23:13
>>800
論理型の変数ならそれ単体で論理式として完結してるから、
while (true) といったものを除いて論理式の途中にtrueやfalseが出てくるのは冗長という考え方もあるが、
if (a == true) ぐらいなら気にするほどじゃないと思う。
さすがに if ((a > 0) == true) を見たときは馬鹿じゃないかと思ったけどね。
823デフォルトの名無しさん:2005/10/14(金) 07:44:14
if (((a > 0) == true) == true)
824デフォルトの名無しさん:2005/10/14(金) 07:50:45
ウゼー
825デフォルトの名無しさん:2005/10/14(金) 10:37:02
if (!(((((a > 0) == true) == false) == false) == true))
826デフォルトの名無しさん:2005/10/14(金) 10:50:36
if(今度またこの話題が出たら)through
827デフォルトの名無しさん:2005/10/14(金) 11:00:14
throw ぬるぽ;
828デフォルトの名無しさん:2005/10/14(金) 11:09:39
> through
829デフォルトの名無しさん:2005/10/14(金) 11:18:30
catch(>>827)
{
ガッ;
}
830デフォルトの名無しさん:2005/10/14(金) 12:13:56
>>829
printfにしとけ
831デフォルトの名無しさん:2005/10/14(金) 16:23:31
局所変数と内部変数、大域変数と外部変数って何が違うのでしょうか?
832デフォルトの名無しさん:2005/10/14(金) 16:31:38
定義してある場所が違う、
833デフォルトの名無しさん:2005/10/14(金) 16:36:01
局所変数と内部変数って何が違うのですか
大域変数と外部変数って何が違うのですか

って意味だろ
834デフォルトの名無しさん:2005/10/14(金) 17:02:20
835831:2005/10/14(金) 17:32:22
すいません。具体的に内部変数は大体どういう流れで定義されるもので、局所変数はどういう流れで定義されるのですか?
836デフォルトの名無しさん:2005/10/14(金) 17:42:07
codeguruに記事の投稿しようとおもうんだけど
どのぐらいのレベルの記事なら載るの?
837デフォルトの名無しさん:2005/10/14(金) 17:42:47
言語ごとの方言にも近いからな
基本的に同じ物と考えていいだろ
838デフォルトの名無しさん:2005/10/14(金) 17:46:52
局所変数:関数内で一時的に定義されてるローカル変数
内部変数:クラスのメンバ変数
大域変数:グローバル変数
外部変数:あるクラス、関数内から見てその外部で定義されてる変数

こう呼んでる俺は異端?
839デフォルトの名無しさん:2005/10/14(金) 18:27:43
>>838
俺も似たような認識。
局所変数:ループカウンタとか、作業用変数
840デフォルトの名無しさん:2005/10/14(金) 18:30:23
>>831
そんな漠然とした質問すんな。
日本語の用語なんて綺麗さっぱり忘れて
言語ごとの機能を理解すればそれでよし。
841デフォルトの名無しさん:2005/10/14(金) 21:55:34
そんな質問の制限すんな。
お前的に漠然としていて不要だってんなら
何も言わずにスルーすればそれでよし。
842デフォルトの名無しさん:2005/10/14(金) 23:14:07
> あとif (a == true)と書けば「もしaがtrueなら」とそのまま読めるが、
> if (true == a)ではそのまま読むと「もしtrueがaなら」となり
> 頭の中で順番をひっくり返す必要がある。

よくこの反論を見るけど、これも頭わるい意見だよね。
「trueとaが等しいなら」って読めばとくに不自然でもない。
843デフォルトの名無しさん:2005/10/14(金) 23:17:02
#define if(A==B) if(B==A)
でFA?
844デフォルトの名無しさん:2005/10/14(金) 23:17:08
ウゼー
845デフォルトの名無しさん:2005/10/14(金) 23:23:22
#define もし(AならばB) if(B==A)
じゃね?
846デフォルトの名無しさん:2005/10/15(土) 00:02:17
rubyの解説本を読んでいたところ、IO#getsというような
書き方をみかけたのですが、この#って「::」とは
違うのでしょうか。他の言語でも使う書き方でしょうか。
847デフォルトの名無しさん:2005/10/15(土) 00:20:07
Cだと
#の左右にあるdefineで置換された後の
文字列同士をつなげて、全体として一つの変数として扱うんだっけ?
848デフォルトの名無しさん:2005/10/15(土) 00:25:12
>>847
違う
849デフォルトの名無しさん:2005/10/15(土) 01:52:33
import<msxml4.dll> named_guids
  ・
  ・
try{
 MSXML2::IXMLDOMDocument2Ptr pDoc;
 pDoc.CreateInstance(MSXML2::CLSID_DOMDocument40);
 MSXML2::IXMLDOMNodeListPtr pnlName = pDoc->getElementsByTagName(_bstr_t("hoge"));
 MSXML2::IXMLDOMNodePtr pnName;

 pnName = pnlName->Getitem(0);
 _bstr_t bst = pnName->Gettext();
 MessageBox((LPCSTR)bstr);
} catch(_com_error e) {
}

-----------------------------------------
"hoge.xml"
<?xml version="1.0" encoding="Shift_JIS" ?>
<hage>
 <hige>
  <hoge>masayoshi</hoge>
 </hige>
</hage>
------------------------------------------
上記コードで_com_error(ポインタが無効です)がでます。
raw_interfaces_onlyを外したコードを書いても発生します。

お助け下さいませ。

環境:
win2000sp4, VC++.NET2003, MSXML4.0sp2
850デフォルトの名無しさん:2005/10/15(土) 02:11:42
>>846
「IOクラスのgetsメソッド」を意味してそういう書き方をすることがあ
るけど、プログラム上でそういう書き方ができるわけではない。

たぶんJavadocからきた言及方法だと思う。

851デフォルトの名無しさん:2005/10/15(土) 07:38:04
>>842
> 「trueとaが等しいなら」って読めば
不自然ですね :-)
852デフォルトの名無しさん:2005/10/15(土) 07:45:54
WMPで現在再生中のファイル名を取得したいんですけどどんなOLEを使えばいいデス化?
853デフォルトの名無しさん:2005/10/15(土) 13:04:22
>>850
なるほど。本の中では全く言及されていなかったので助かりました。
ありがとうございました。
854849:2005/10/15(土) 13:46:45
すいませんでした、>849はスルーして下さい。
855デフォルトの名無しさん:2005/10/15(土) 16:24:41
いえ、よく読んでみます
856デフォルトの名無しさん:2005/10/15(土) 17:39:12
以下のような環境で、GPSモジュールから送られてくるデータを
途中で書き換えてから、アプリAに渡すにはどうすればよいのでしょうか?

--------------------------
[GPSモジュール]-Bluetooth接続Rev1.1Ver1.2-[Bluetoothアダプタ]-
 -USB2.0接続-[USBポート]-
 -[-ここからWinPC内部-[Bluetoothドライバ]-[仮想COMポートA]-[アプリA]]

※GPSモジュール、BTアダプタ、USBポート、BTドライバ、仮想COMポートA、
 アプリAは既製品のため改修出来ないです。

環境:
WinXP pro sp2、VS.NET2003 VC++
--------------------------

アプリBを作成しWin32APIのCreateFile()を使用すれば、
仮想COMポートからデータを読み込むことは出来るのですが、
その後、どの様にしてアプリAにデータを渡せばよいのか分からないです。

新しく仮想COMポートBを作成し、そこにデータを渡せばよいのでしょうか?

仮想COMポートを作成したことがないので、まったく分からないのですが、
デバドラ開発の知識等が必要になるのでしょうか?
その場合、おすすめの書籍などご教授頂ければ幸いです。

質問ばかりで恐れ入りますが、よろしくお願いします。
857デフォルトの名無しさん:2005/10/15(土) 17:57:21
ぐは、他のスレで似たような質問をしている人がいました。
↓の123氏
http://pc8.2ch.net/test/read.cgi/tech/1128951330/
回答を得ているみたいなので、その方法でやってみます。
お騒がせしました。
858デフォルトの名無しさん:2005/10/15(土) 19:01:08
今個人で使うなら一番生産性が高い開発環境はどれですか?
859デフォルトの名無しさん:2005/10/15(土) 19:11:13
>>858
ケースバイケース。
860みんな助けて:2005/10/15(土) 20:18:29
ハブ付ルータで複数の画面で一度に別々のインターネットを使用するばわいどうしたらいいのですか??聞き方が下手ですみません↓
861デフォルトの名無しさん:2005/10/15(土) 20:26:08
複数のパソコンで見るのか?↑
862みんな教えて:2005/10/15(土) 20:29:15
パソコンとテレビです
863デフォルトの名無しさん:2005/10/15(土) 20:41:29
板違い
864デフォルトの名無しさん:2005/10/15(土) 20:46:33
テレビって?どんな端子が付いてるんだ?
865みんなおしえて:2005/10/15(土) 21:00:11
え〜と正確にはゲーム機を通します
866デフォルトの名無しさん:2005/10/15(土) 21:34:10
>>865
消えてくれ
867デフォルトの名無しさん:2005/10/15(土) 21:59:51
dim.javaをコンパイルしたら、こんなErrorが出ました。
Exception in thread "main" java.lang.NoClassDefFoundError: dim/java
これってどんな意味なんですか?
868デフォルトの名無しさん:2005/10/15(土) 22:05:28
クラスがネーヨ
869デフォルトの名無しさん:2005/10/15(土) 22:14:32
>>868
有り難うございます。
870デフォルトの名無しさん:2005/10/15(土) 22:23:46
>>865
ハードウエア板で聞いたら。ルータの話題はいろいろあるようだ。
871 :2005/10/15(土) 22:28:49
GNUPLOTでテキストファイルを使いたいのですが、どうしても
can't read data file "y.dat" という文が出てきます。
原因はどいうことが考えられるでしょうか?
872デフォルトの名無しさん:2005/10/15(土) 23:33:45
すいません。質問です。
ゲームのエミュとかをつくりたいのですが、なにを覚えればできますか?
873デフォルトの名無しさん:2005/10/15(土) 23:41:05
言語
874デフォルトの名無しさん:2005/10/15(土) 23:41:11
>>872
この世の全て
875デフォルトの名無しさん:2005/10/15(土) 23:42:12
言語を覚えるのはわかっています。何言語ですか?
876デフォルトの名無しさん:2005/10/15(土) 23:44:04
>>875
お前がエミュレータを作成するときに使用したい言語。
877デフォルトの名無しさん:2005/10/15(土) 23:55:14
エミュレータ作る前に既にあるもののソースを読め。
878デフォルトの名無しさん:2005/10/16(日) 00:04:21
>>871
カレントに"y.dat"が無い

>>872
覚えるべき内容はゲーム機のエミュレータを作りたいのか、ゲームのエミュレータを作りたいのかで違う
ゲーム機のエミュならまず最初に英語を覚えろ。英語の技術資料が読めないと話にならない
ゲームのエミュなら外からみて解析をしろ
言ってる意味がわからないなら諦めろ
この手の事やるなら言語なんかどうでも良い必要なら自然と覚える
879デフォルトの名無しさん:2005/10/16(日) 01:06:25
>>872
小説を書きたいのですが、何言語を覚えれば書けますか?
880デフォルトの名無しさん:2005/10/16(日) 02:14:04
>>879
地球人が理解できそうな言語
881デフォルトの名無しさん:2005/10/16(日) 02:22:35
>>879
小説は主体的に書けばよいが、プログラムはコンピュータに理解できるような客観性が必要。
プログラミングが小説を書くのと似ているなどとほざくクズ教授がいるみたいだが、それはほとんど嘘。
882デフォルトの名無しさん:2005/10/16(日) 02:23:08
主観的
883デフォルトの名無しさん:2005/10/16(日) 02:26:13
>>881
プログラムは俳句や短歌を書くのと似てるな
884デフォルトの名無しさん:2005/10/16(日) 08:31:53
>>881
小説も他人に理解できるような客観性が必要ですが :-P
885デフォルトの名無しさん:2005/10/16(日) 08:32:26
つまんない
886デフォルトの名無しさん:2005/10/16(日) 10:03:07
プログラミング言語C 第二版 ANSI企画準拠 の演習の解答例を載せているサイトとかありませんか?
887デフォルトの名無しさん:2005/10/16(日) 10:35:28
そのまんまのアンサーブックって書籍が出てるぞ。
888デフォルトの名無しさん:2005/10/16(日) 11:57:36
外国のサイトならいくつかあるね
889デフォルトの名無しさん:2005/10/16(日) 15:30:26
VC++7でコンソールアプリを作ってるんです。
実行結果をDOS窓に吐いて終わる簡単なテストプログラムです。
デバッグ実行したときに終了時にDOS窓を消されてしまうので結果が見れません。
確か終了する前に終了確認してくれるオプション?があったような気がしたのですが
どうやるのか教えてください。
よろ
890デフォルトの名無しさん:2005/10/16(日) 15:42:46
>>889
getchar() で待って、なんかキーインすると、exit() するとかあったな。
getkbd() だったかな。調べて。「終了するには何かキーインして下さい」
ってメッセイジが出るアプリがよくあるんじゃない。
891デフォルトの名無しさん:2005/10/16(日) 15:50:02
ありがとうございます。
たしかVC6だとデバッガでそういう風に聞いてくれる機能があったのでVC7でもあると思うんですが
DOS窓を自分で開いて直に実行する場合、別に単に終了すればいいだけなのでソースにそういうコードを追加しないほうがよろしいのです。
892デフォルトの名無しさん:2005/10/16(日) 15:55:50
@echo off
893デフォルトの名無しさん:2005/10/16(日) 15:56:36
ooops

@echo off
%1
PAUSE

って内容のバッチファイルを作って、そこにドラッグアンドドロップすればよろし
894デフォルトの名無しさん:2005/10/16(日) 15:57:23
VCから実行する時に閉じたくないってだけならCTRL+F5
895デフォルトの名無しさん:2005/10/16(日) 15:59:38
皆さん、ありがとうございます。
>>894
ばっちりできました。ありがとうございます。
896デフォルトの名無しさん:2005/10/16(日) 17:33:38
>>889
メニューのデバッグなしで実行(Ctrl+F5)で実行するといいよ。
897デフォルトの名無しさん:2005/10/16(日) 18:48:44
VC限定か
せっかく作っても他の人には使えないね
898デフォルトの名無しさん
codeguruに記事投稿したけど
pending review状態だ。
ここ直せとか帰ってくるのかな