■ 2ちゃんねるは、ここのサーバを使ってるです。。。
 .jp ドメインお持ちのお客様大歓迎。maido3.jp
 .fm 取得代行します。(US) maido3.fm
 .ca 取得代行します。(US) maido3.ca
 .com .net .org 取得代行します。(US) maido3.com
 .cc .to .tv 取得代行はじめました。NEW
人気サイト
月々1,000円からの BinboServer.com 2ちゃんねるも使っている Big-Server.com
>> 2ちゃんねる、サーバ監視所

■掲示板に戻る■ ■過去ログ倉庫めにゅーに戻る■
C言語なら、俺に聞け! <18>
1 名前: きょうはいいテンキーです。日下部陽一 投稿日: 02/05/01 22:46
漏れは38才、21年間プログラムを一生懸命作ってきた。
いろいろな言語を極めたが、一番手になじむのはCだった。
Cのことならぜんてわかるから、疑問な点があったら漏れに聞け。

だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。

・comp.lang.c Frequently Asked Questions
http://www.eskimo.com/~scs/C-faq/top.html

・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html

Cプログラマならこれを買っとけ。
・プログラミング言語C(K&Rと呼べば通だ)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/yfcbookshelf-22/250-3950205-1475419

K&Rで挫折するような救いがたいやつはこれでも読め
・作ってわかるCプログラミング(アヒル本と呼べば通だ)
http://dennou.gihyo.co.jp/books/void_c/
http://www.amazon.co.jp/exec/obidos/ASIN/477411328X/249-4698746-2014711

推薦図書/必読書のためのスレッド PART3
http://pc.2ch.net/test/read.cgi/tech/1016722820/

・前スレ C言語なら、俺に聞け! <17>
http://pc.2ch.net/test/read.cgi/tech/1019372139/l50


2 名前: デフォルトの名無しさん 投稿日: 02/05/01 22:47
>>1
よくやった。お疲れさま。


3 名前: デフォルトの名無しさん 投稿日: 02/05/01 22:47
1000ズサ


4 名前: デフォルトの名無しさん 投稿日: 02/05/01 23:06
ずざー


5 名前:           投稿日: 02/05/01 23:09

                     さー――――



6 名前: デフォルトの名無しさん 投稿日: 02/05/01 23:54
(´・ω・`)ショボーン


7 名前: デフォルトの名無しさん 投稿日: 02/05/02 00:17
ラッキー7ゲット


8 名前: デフォルトの名無しさん 投稿日: 02/05/02 00:26
>>7
770番ほど早い


9 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:05
お憑かれー>>1


10 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:08
>>9
引きちぎるぞ


11 名前: 9 投稿日: 02/05/02 01:16
どういう意味?


12 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:19
こらースクリプトンを使うんじゃない!!
パパ怒っちゃうぞ


13 名前: 999 投稿日: 02/05/02 01:20
   ||
 ∧||∧
(  ⌒ ヽ 
 ∪  ノ
  ∪∪


14 名前: 前スレの1&1000 投稿日: 02/05/02 01:20
>>13
いってよし!


15 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:22
>>14
もう逝ってる!


16 名前: 899 投稿日: 02/05/02 01:32
windows2000にのMS-DOSにはEDITという機能はないんですか?


17 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:33
無い


18 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:34
win2000にはMS-DOSはありません。


19 名前: 899 投稿日: 02/05/02 01:39
コンパイルできて、.exeを作成できたのですが、ブラウザから実行するとファイルのダウンロードになってしまいます。
なぜなんですか。


20 名前: 899 投稿日: 02/05/02 01:40
すみません。出来ました。


21 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:40
>>19
もう知らない(笑)


(ダウンロード状態になるのはヘッダーが適切でないから)


22 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:43
M女史-傲慢 = 899
って感じか?


23 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:48
1. EXE形式の実行にチェックが入ってない
2. 127.0.0.1 or localhost からアクセスしてない
のどちらか(両方?)と見た


24 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:49
何だつまらん、解決してんでやんの


25 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:52
#define TEXT ABCD
というのがあって、
DELETE_TEXT(TEXT, 1)
とやるとTEXTがABCに置き換わるようなマクロは作れるでしょうか。


26 名前: 899 投稿日: 02/05/02 01:53
>>23-24
ごめんなさい。AN httpdの.exeを編集の”一般パスでも実行する”をチェックしたら、出来ました。


27 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:54
>>25
できてるじゃん。それで不満か?


28 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:55
>>25
言ってる意味が分からん
もう少し分かりやすく説明しなはれ


29 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:57
>>27
出来てない


30 名前: 25 投稿日: 02/05/02 01:58
マクロでトークンの削除をしたいのです。


31 名前: デフォルトの名無しさん 投稿日: 02/05/02 01:59
>>29
出来てるだろ?
DELETE_TEXT(TEXT, 1) -> DELETE_TEXT(ABCD, 1)
になるじゃん。
まさか、
DELETE_TEXT(TEXT, 1) -> DELETE_ABCD(ABCD, 1)
とでもしたいのか?


32 名前: 25 投稿日: 02/05/02 01:59
30訂正
部分的な削除です。


33 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:01
そいつぁム図隠邪ないかな


34 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:02
>>32
ううん?
具体例を示して


35 名前: 25 投稿日: 02/05/02 02:04
>>33
やっぱ追加や置換しかできませんかね・・・

>>34
ABCD というトークンを、マクロ(>>25ならDELETE_TEXT)で
ABC にしたいのです。


36 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:05
>>34
DELETE_TEXT( ABCD, 1 )
とすると
ACD
と指定したのと同じくなるようなマクロ
DELETE_TEXTを作りたいって事でしょ。


37 名前: 29 投稿日: 02/05/02 02:06
>>27=31
良く見てみ
ABCに変えたいって書いてあるぞ


38 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:07
>>35
#define TEXT ABCD
#define ABCD ABC


39 名前: 38 投稿日: 02/05/02 02:08
あ、なんか勘違いしていた。


40 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:09
>>35
うーん、あやしいなぁ。
トークンを削除して、最終的に何がしたいのか教えてくれ。


41 名前: 38 投稿日: 02/05/02 02:09
そういう意味ね(笑)


42 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:10
>>25
やっと分かった!!
DELETE_TEXT(TEXT, 1)
はTEXTをマクロ展開してから後ろから一文字削除ってことか
無茶言うぜ。


43 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:12
文字配列なら
#define DELETE_TEXT(str, n) (str[strlen(str)-(n)] = '\0')
とか?


44 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:13
>>42
カコイイなぁそれ。オレにも使わせて。

・・・無茶言うぜ。


45 名前: 25 投稿日: 02/05/02 02:19
あれ、なんでだったろ。思い出せない・・・。
昼間に、これできたら便利だなーって思ったんですが。
ちょっと昼間書いたソース見ながら思い出してみます。


46 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:22
本当に>>42の解釈であってるの?
それなら、
DELETE_TEXT( ABCD, 1 )
で1文字削るって分かってるんだから、ABC でええやん
てなわけで、本当は何をしたいんだ?


47 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:23
ちっ、また遅かったか…


48 名前: デフォルトの名無しさん 投稿日: 02/05/02 02:24
>>46
>>43の言うように文字列リテラルじゃなくて文字配列なんだろうな。
実行してみるまで何が入るかわからないってことで。
もっとも、文字リテラルに対してやったりしたら・・・・


49 名前: デフォルトの名無しさん 投稿日: 02/05/02 04:07
前スレ914のことなんですが
http://pc.2ch.net/test/read.cgi/tech/1019372139/914

ようは、これって
sscanf(buf, "%" TOSTR(LEN) "s", buf2);

sscanf(buf, "%#32s", buf2);
に、マクロによって置き換わるんだと思うんですが、
書式指定の#32の意味がわかりません。
VC++付属のMSDNを見てみたんだけど、、、、
#「scanf 系関数の書式指定フィールド」ていうやつ

いま手元に本とかないんですが、
どっかホームページで解説してるようなところ無いでしょうか?



50 名前: 25 投稿日: 02/05/02 05:02
やっと分かりました・・・
#define REFLECTION EBX+0x100
#define REFRACTION EBX+0x104
       :
のような定義がたくさんあります。全てEBX+オフセットという形です。
EBXをオフセットといっしょに定義しているのは、

FMUL DWord ptr [EBX+REFLECTION] より、
FMUL DWord ptr [RELFECTION]     と、書きたかったからです。

C++でも時々定義された値を使用します。
*(float *)(Buffer + REFLECTION) = 1.0;
しかし↑は定義内の「EBX+」が邪魔で当然コンパイルはできません。

そのために、
#define DELETE_TEXT(x, n) ・・・ //←これの作り方が分からない
#define DEL_REG(x) DELETE_TEXT(x, 4) //EBX+を削除するマクロ
を作って、

*(float *)(Buffer + DEL_REG(REFLECTION)) = 1.0;
と、したいのです。


51 名前: 25 投稿日: 02/05/02 05:03
このマクロがなくても、
EBXが邪魔なときは#defineと#undefでEBXを消したり、
元々定義にEBXを入れないとか(今はそうしてます)、
方法はありますが、マクロでトークンの削除ができたら、

インラインアセンブラでは
FMUL DWord ptr [RELFECTION]

と書けて、C++では、
*(float *)(Buffer + DEL_REG(REFLECTION)) = 1.0;

と書くだけですむようになるので、
便利だなーと昼間思ったわけです。

激しく眠いので
ワケワカな文章になってるかも・・・


52 名前: デフォルトの名無しさん 投稿日: 02/05/02 06:55
>FMUL DWord ptr [EBX+REFLECTION] より、
>FMUL DWord ptr [RELFECTION]     と、書きたかったからです。
そう書きたくなくても、そう書くべきなので
あまり(かなり)勧められないが

#define DEL_REG(s) DEL_REG_(s) // ※1
#define REFLECTION EBX + 0x100 // EBXの後に必ずスペース
#define REFRACTION EBX + 0x104
       :
#define DEL_REG_(s) (DEL_##s) // ※2
#define DEL_EBX 0

マクロの本来の優先順位は知ら(興味)ないが、
※1・2のように、2重にしてやらないと、
某コンパイラでは通らなかったので、まだ他のでは
「DEL_***が未定義」と言われる可能性あり
と言うか、本来こんな使い方をするべきではない


53 名前: デフォルトの名無しさん 投稿日: 02/05/02 08:55
>>49
> ようは、これって
> sscanf(buf, "%" TOSTR(LEN) "s", buf2);
> が
> sscanf(buf, "%#32s", buf2);
> に、マクロによって置き換わる

ちゃうよ。sscanf(buf, "%32s", buf2) に置き換えたかったんだが、# 演算子
は、それ以上マクロ展開しないから "%LENs" になってしまう。(前スレ >>937)
プリプロセサの # 演算子を勉強するべし。

なお、このケースではコンパイル時に "%32s" を生成することはできないみた
い。素直に実行時に作成するか、fgets() 等を使うべし。

>>50
そもそも...
> #define REFLECTION EBX+0x100
から、おかしいのではないのか ? アセンブラから構造体へのアクセス方法を
勉強した方がいいと思う。


54 名前: デフォルトの名無しさん 投稿日: 02/05/02 10:20
>>49,50

#define LEN 32
#define TOKEN_TO_STR(x) #x
#define TOSTR(x) TOKEN_TO_STR(x)
sscanf(buf, "%" TOSTR(LEN) "s", buf2);

とすれば
sscanf(buf, "%" "32" "s", buf2);
すなわち
sscanf(buf, "%32s", buf2);
になる。基本。


55 名前: デフォルトの名無しさん 投稿日: 02/05/02 10:27
>>50

>そもそも...
>> #define REFLECTION EBX+0x100
>から、おかしいのではないのか ?

まったくだ。

どうしてもそうやるなら、
#define DEL_REG_REFLECTION 0x100
#define DEL_REG_REFRACTION 0x104

#define REFLECTION EBX+DEL_REG_REFLECTION
#define REFRACTION EBX+DEL_REG_REFRACTION
としたら? 馬鹿さが際立ってよい。


56 名前: 53 投稿日: 02/05/02 10:28
>>54
おお、なるほど。先に展開させとけば良いのか。


57 名前: 25 投稿日: 02/05/02 13:29
根拠は>>50-51のように、
自分でも忘れていたくらいお粗末なものですから
目的はともかくとして、
マクロでトークンの部分的な削除はできるのか?
という単純な疑問として捕らえてください。

といっても、これまでのレスを見る限り、
やっぱり無理そうですね・・・。

>>53 インラインアセンブラで構造体を使う方法は分かるのですが、
なぜか私の前には、オフセットだけの定義が2000もあるヘッダと、
それらの型名を記した「紙」があります。
私にはその「紙」を見ながら構造体を作り、それを使うためにソースを直す気力はありません・・・。


58 名前: デフォルトの名無しさん 投稿日: 02/05/02 13:40
>1 の  ・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
もうちょっとましな日本語にならないの(w


59 名前: 超初心者 投稿日: 02/05/02 16:40
#include<stdio.h>
main(){
double nc;
for(nc = 0; getchar() != EOF; ++nc)
;
printf("%.0f\n", nc);
}

K&R、23ページにあるやつなんだけど、実行すると終了できません。
何にも入力しないでEnter押せば終わるんじゃないんですか?
教えてください。
Windows98でVC++6.0をつかってます。


60 名前: デフォルトの名無しさん 投稿日: 02/05/02 16:48
Ctrl+Z→Enterでは?


61 名前: デフォルトの名無しさん 投稿日: 02/05/02 16:52
WinならCtrl + Z
うにくす系なら Ctrl + ・・・・・
・・・・・
・・・・・
D?
だと思う
普通にenter押せば改行が残るでしょうなぁ


62 名前: 超初心者 投稿日: 02/05/02 16:59
ありがとうございます。
いちおう終了はできました。
でも結果がでないんですけど。
何ででしょう?


63 名前: デフォルトの名無しさん 投稿日: 02/05/02 18:06
>>62
それはたぶん、結果が表示されると同時に実行窓が閉じてるんでしょう
MS-DOS プロンプト開いてコマンドラインから実行してみそ


64 名前: 超初心者 投稿日: 02/05/02 18:40
いえ実行窓は開いてるんですよ。
Ctrl+Zを押すと、
Press any key to continue
と出てくるんですよ。これで何かキーを押すと窓が閉じます。
>>59のncの中身が表示されないんです。

MS-DOSプロンプトからの実行のやり方は知りません。
当該ディレクトリを開くくらいしかできないです。


65 名前: 63 投稿日: 02/05/02 18:45
ごめん、そうゆう問題じゃないみたいだ。



66 名前: 53 投稿日: 02/05/02 18:51
>>57
ふ〜〜〜ん、大変そうね。どうでもいいけどさ。


67 名前: 超初心者 投稿日: 02/05/02 19:02
出力先をファイルに変えたら結果が見れました。
とりあえずこれで良しとしときます。
ありがとうございました。


68 名前: 63 投稿日: 02/05/02 19:06
>>64
試してみたら、>>64の言うとおりだった。
VC++(Win98?)固有の問題だと思う。

#include<stdio.h>
main(){
double nc;
printf("start\n");
for(nc = 0; getchar() != EOF; ++nc)
;
printf("Test\n"); /*この行追加、しかし表示されない*/
printf("%.0f\n",nc);
}

このようにすると、期待どおり動作するが、"Test"が表示されない。
これ以上は、わからんのでVC++に詳しい人の解説もとむ



69 名前: 投稿日: 02/05/02 19:12
表示されないのが普通じゃない?


70 名前:   投稿日: 02/05/02 19:17
>>68
bccでやったらちゃんと表示されたYO


71 名前: デフォルトの名無しさん 投稿日: 02/05/02 19:29
VC6で普通に表示されてるんだが?


72 名前: デフォルトの名無しさん 投稿日: 02/05/02 19:29
>25は3DCGエソジソを書いてるに3000マクロ
しかしオフセットだけ2000個て(w


73 名前: デフォルトの名無しさん 投稿日: 02/05/02 19:29
fflush(stdin)


74 名前: デフォルトの名無しさん 投稿日: 02/05/02 19:52
>>73
それって何か関係あるの?
printf("Test\n");はstdinとは関係ないのに・・・


75 名前: デフォルトの名無しさん 投稿日: 02/05/02 20:54
>>73
fflush(stdin)の動作は標準では未定義だよ。


76 名前: デフォルトの名無しさん 投稿日: 02/05/02 20:58
>>75
VC++ は、「ストリームが入力用に開いている場合は、バッファの内容を
クリアします。」だよ。


77 名前: デフォルトの名無しさん 投稿日: 02/05/02 21:00
>>76
なんじゃそりゃ〜?気持ち悪いよぅ。


78 名前: 76 投稿日: 02/05/02 21:07
>>77
だよね〜〜〜。俺もそう思う。MS も、FlushXXX とか XXXFlush とかの
API や ライブラリいっぱい作ってるけど、出力系でないとサポートしない
ものと入力に適用すると入力バッファをクリアするものとあってまちま
ち。(でも、流石に入力に適用する奴は、クリアの動作以外はしないみた
い。そう言う意味では、それなりに統一は取れている。)


79 名前: デフォルトの名無しさん 投稿日: 02/05/02 21:27
>>72
実はShade、に3マクロ


80 名前: デフォルトの名無しさん 投稿日: 02/05/02 21:33
>>79
実はMAYAタン、に-3マグロ


81 名前: デフォルトの名無しさん 投稿日: 02/05/02 21:34
漏れはShadeの体験版でassertメッセージを見た。cppファイルだった。


82 名前: デフォルトの名無しさん 投稿日: 02/05/02 21:43
istream::getlineでデリミタに全角文字を
使いたいときはどうしたらいいのでしょうか。。。
自作しかないですか?


83 名前: デフォルトの名無しさん 投稿日: 02/05/02 21:54
>>80 実はLightWaveに、2マックロクロスケ
>>82 場所間違ってない?


84 名前: デフォルトの名無しさん 投稿日: 02/05/02 22:13
>>82
::なんて演算子はCにはないはずですよ?と言ってみるテスト。


85 名前: 初心者にもなってない 投稿日: 02/05/02 22:15
C言語を勉強してプログラミングしたい思っているのですが何が必要ですか?
他のスレ見て「コンパイラっていうのが必要なのかな〜」って
判断しちゃったんですけどそれでいいんですかね。
よくわからないけど私が持っているプログラミングツールっぽいのは
VBってのとC++なんですけど友達が勝手にくれたものだから
これでC言語でプログラミングできるのかわかりません。



86 名前: デフォルトの名無しさん 投稿日: 02/05/02 22:16
> VBってのとC++なんですけど友達が勝手にくれたものだから

VBはわかるがC++って何よ?


87 名前: デフォルトの名無しさん 投稿日: 02/05/02 22:19
>>85
VBはその友達に返すか捨てなされ。
で、C++をもらったってどういうこと?


88 名前: 85 投稿日: 02/05/02 22:28
ごめんなさい
VisualC++6.0でした
これでC言語でプログラミングできますか?


89 名前: デフォルトの名無しさん 投稿日: 02/05/02 22:29
>>88
できる。


(へぇ・・・あんな高いものをくれたんだ・・・・・・いい人だねぇ)


90 名前: デフォルトの名無しさん 投稿日: 02/05/02 22:33
>>89
多分VS.NETを買ったから(以下略


91 名前: 82 投稿日: 02/05/02 22:36
ひょえー失礼しました。。。
C言語スレでしたね。ここ。。。
申し訳ないです。

もう少し悩んで分からなかったらC++スレへ移動します。。。


92 名前: デフォルトの名無しさん 投稿日: 02/05/02 22:52
>85
通報しますた。


93 名前: デフォルトの名無しさん 投稿日: 02/05/02 22:54
>>91
いや、別にいいけど。


94 名前: デフォルトの名無しさん 投稿日: 02/05/02 22:57
>>91
ちなみに友達に貰ったといいますが、
この製品はライセンスの譲渡はできません。
したがってそれを使おうとしているあなたは、
違法行為を犯していることになります。
製品は新規に買いなおす必要があるでしょう。
または、最近発生した素晴らしい手段ですが、
MX上で公開することによって、この罪は問われなくなるでしょう。


95 名前: デフォルトの名無しさん 投稿日: 02/05/02 22:58
>>94
誰にレスしてんだよ。
それと例の人の友達がライセンスを持っているとは限らないよ?
未開封パッケージをもらったのかもしれないよ?


96 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:01
はあ、未開封?
おまえ、せっかく買ってきたのに未開封でいられるかっつーの。
おれなら家に帰る前に電車の中で既に空けてるね!


97 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:03
>>96
はあ、電車の中で開けるって?
お楽しみは家に帰ってからだろ!


98 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:03
おまえは小学生か。
家に着くまで待てよ


99 名前: 97 投稿日: 02/05/02 23:07
といいつつ、それが本なら電車の中で開けて読んでしまう。


100 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:11
どーゆー論議だよ。。。(汗

まぁ>>85は悪いコトしてるからね。
ネタだったらいいけど
マジでやってる厨房なら気をつけた方が良いよ。


101 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:11
お、っていうか俺100じゃんヽ(´ー`)ノ↑


102 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:19
>>100
まあまあ、決め付けなくても良いんじゃない ? ちょっと前に、俺の知ってる奴が
Office2000 Premium 持ってたから、なんでそんなもん持ってんの ? って聞い
たら、「オヤジが、Office2000 Professional 買おうとして間違えたんだよ。
で、交換してもらおうとお店に行ったら Office-XP があったから、そっちを
買っちゃった。お前これ要るか ? と聞かれたから、もらった。」と言う、実話も
あるからな。


103 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:21
>>68
Win2kではちゃんと全て表示されますね。


104 名前: 85 投稿日: 02/05/02 23:22
レスしてくださった方ありがとうございます
VisualC++でがんばってプログラミングします。

あとソフト自体はビニールで梱包してあって開封はしてないみたいだったんですけど
まぁ大丈夫ですよね
心配してくださった方々ありがとうございます


105 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:23
>>104
なんだ、そうなのか。
がんばれー。


106 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:23
>>104
まあ違法かどうかの真相はおいておいて・・・・

勉強程度ならコマンドラインからVC++のコンパイラを使った方がいいよ。


107 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:29
(゚Д゚)ハァ?


108 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:31
>>106
Win9Xだときついよ、それ。
bash入れろとはいわんが、せめてcmd.exeくらいの便利さがないとね..

チュートリアルとか入ってるから、それをやるのもヨシ。



109 名前: 106 投稿日: 02/05/02 23:31
>>107
誰に対して言っているんだろ・・・
私かな・・・いっぱいファイルができてうっとうしいからそう言ったんだけど・・・


110 名前: 107 投稿日: 02/05/02 23:35
スマソ誤爆した。


111 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:35
これからCをやろうと思う人がまずここにくるってのが間違ってる。とてもおかしい。そう思わないか? 98よ


112 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:41
まぁ、コンパイラを選ぶ時点からCとの闘いは始まってるってことで。


113 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:47
VBとVC++をただで?友達が勝手にくれた?100%ウソにきまってんじゃん


114 名前: デフォルトの名無しさん 投稿日: 02/05/02 23:58
あんなもの最初はコピーを使うもんだ
買うなんて無駄

人に作ったものを見せるようになってから買えばいい


115 名前: デフォルトの名無しさん 投稿日: 02/05/03 00:04
>>85はゲイシと友達のタモリ。
…などと戯言を吐いてみるテスト。

ところで値を返す必要の無い関数を、とりあえずint型にしといて0を返すのは間違い?
人から「意味の無い値を返すな、void型にしる!」と言われたんだけど、
昔「とりあえずintにしとけ」とも聞いてるんで混乱しとります。


116 名前: デフォルトの名無しさん 投稿日: 02/05/03 00:07
最初はフリーコンパイラを使うもんだ
買うなんて無駄


117 名前: デフォルトの名無しさん 投稿日: 02/05/03 00:10
とりあえずなら、良いんでない?


118 名前: デフォルトの名無しさん 投稿日: 02/05/03 00:15
>>115
&&をif文の代わりに使うことがあるならvoidはまずいな。
俺は&&をifの代わりにするなんて嫌だけど。
そういえばkage.exeのソースにはたーくさんあったな。


119 名前: デフォルトの名無しさん 投稿日: 02/05/03 00:25
>>118
PERLにはそういう習慣があるから、そっちから来た人は好んで使うかも。


120 名前: デフォルトの名無しさん 投稿日: 02/05/03 00:59
>>115
戻り値があると、何か意味のあるものが返ってくるような感じがするので、
意味の無い戻り値(always 0等)は嫌。

最終的には何か意味のある値(処理成功/失敗)を返すか、もしくは
voidにしてしまうことをお勧めします。


121 名前: 115 投稿日: 02/05/03 01:01
不要でも0を返す理由は、
・「void」は特殊であり「int」の方が自然な型である
 ⇔ (反論)意味も無い値を返すのは不自然。

・エラー処理を追加する等の、将来の拡張への備え
 ⇔ (反論)XPの「シンプルな設計」に反する。

だったような気が。


122 名前: デフォルトの名無しさん 投稿日: 02/05/03 01:04
>>121
> ・エラー処理を追加する等の、将来の拡張への備え

今まで戻り値ありだったものを無しにするのはまずいけど、
なしだったものをありにするのはそれほどまずくないと思うんだけどどうだろ?


123 名前: デフォルトの名無しさん 投稿日: 02/05/03 01:12
俺は基本的に戻り値のない関数はboolにして常にtrueを返してる。
呼び出し側も、無意味とわかりつつ戻り値チェックする。


124 名前: 最近の環境なら気にはならんと思うが 投稿日: 02/05/03 01:16
>>122
プロトタイプの変更
 ↓
ヘッダ書き換え
 ↓
#include してるモジュールは全て再コンパイル
 ↓
(゚д゚)マズー


125 名前: 122 投稿日: 02/05/03 01:21
>>124
そうだプロトタイプがあった(汗


126 名前: デフォルトの名無しさん 投稿日: 02/05/03 01:44
>124
 ↓
#include してるモジュールは全て再コンパイル
 ↓
そうだ、例外を投げよう
 ↓
もっと(゚д゚)マズー


127 名前: デフォルトの名無しさん 投稿日: 02/05/03 08:23
"unsigned double"なんて型は存在するのですか?
グーグルすると国内に数件、本気で使ってるような感じのサイトがあるのですが。


128 名前: デフォルトの名無しさん 投稿日: 02/05/03 08:31
>>127
doubleに符号がある以上存在しない理由は無い気がするけど。
メリットがあるかどうかは別として。
あるコンパイラだとちゃんと警告出してくれるとか?


129 名前: デフォルトの名無しさん 投稿日: 02/05/03 08:35
>128
vcでは意味がねえよと警告が。gccでも警告だかエラーだかが。


130 名前: デフォルトの名無しさん 投稿日: 02/05/03 08:39
負値は絶対使わない! ってな主張をコードに残したかったのでは。


131 名前: デフォルトの名無しさん 投稿日: 02/05/03 08:46
ヒットしたサイトより引用。これの答えがunsigned doubleらしい。
>次の値の型を答えなさい。
>1.0U

vcいわく「サフィックスが無効です(w」




132 名前: デフォルトの名無しさん 投稿日: 02/05/03 10:01
double の有効桁数がどうしてもあと1ビット必要だったとか...。


133 名前: デフォルトの名無しさん 投稿日: 02/05/03 10:07
>>132
そのプログラマ必死だな(藁



134 名前: デフォルトの名無しさん 投稿日: 02/05/03 10:15
>>132をみて
unsigned long doubleにしてみたら
vcでは何も文句いわれなかった…。


135 名前: デフォルトの名無しさん 投稿日: 02/05/03 11:40
自宅でCの勉強をしたいのですが
フリーのコンパイラでお勧めの物があったら教えてください。



136 名前: デフォルトの名無しさん 投稿日: 02/05/03 11:40
自宅でCの勉強をしたいのですが
フリーのコンパイラでお勧めの物があったら教えてください。



137 名前: デフォルトの名無しさん 投稿日: 02/05/03 11:46
>>136
過去ログ読めクソやろう。


138 名前: デフォルトの名無しさん 投稿日: 02/05/03 12:07
>>135>>136は別人ですよ。


139 名前: デフォルトの名無しさん 投稿日: 02/05/03 12:09
>>135-136
ゴールデンウィーク━━━━(゚∀゚)━━━━━!!!


140 名前: デフォルトの名無しさん 投稿日: 02/05/03 13:23
マジか(w


141 名前: デフォルトの名無しさん 投稿日: 02/05/03 13:29
cよりperlをすすめる


142 名前: デフォルトの名無しさん 投稿日: 02/05/03 13:51
もしも>>1のテンプレートに余裕があるのなら、フリーのコンパイラを落とせるサイトへのリンクを追加したら?
それでも質問してきそうだけど。


143 名前: デフォルトの名無しさん 投稿日: 02/05/03 14:07
>>142
つぅか無かったのね・・・。


144 名前: デフォルトの名無しさん 投稿日: 02/05/03 14:14
>>142
はげ同。
日下部さんの本にリンクはったり、くだらない文で行数を消費するくらいなら、フリーコンパイラーへのリンクを
はったほうがよっぽどCの質問スレ向きですね。
パート18まで進んでいるのに、>>1のテンプレがぜんぜん洗練されてないのは問題では?



145 名前: デフォルトの名無しさん 投稿日: 02/05/03 14:18
書くとすればWin用のBorlandかLSI-C試食版か?
UNIXのgccやccは最初から入っているだろうから書くまでもないよね。
Macとかはしらん。


146 名前: 145 投稿日: 02/05/03 14:18
あ、、ccはフリーじゃねぇや・・


147 名前: デフォルトの名無しさん 投稿日: 02/05/03 14:30
>>145
OS XはObjectiveCだかJavaだかベースの開発環境付いてくるらしいです。


148 名前: デフォルトの名無しさん 投稿日: 02/05/03 14:32
bccは癖があるしなあ。

cygwinのgccとかegsも立派な選択肢だ。
入れといてもらおう。



149 名前: デフォルトの名無しさん 投稿日: 02/05/03 15:41
つーか、>>2-5ってな感じで下に伸ばせや。1のメッセージは必須だから。


150 名前: デフォルトの名無しさん 投稿日: 02/05/03 15:43
Win32用の開発環境のみ。

gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/

------------------------ ライセンスや機能などに問題あり ---------------------
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html


151 名前: 150 投稿日: 02/05/03 15:46
知ってる奴は、思ったより少なかった。
書き漏れもありそう。


152 名前: デフォルトの名無しさん 投稿日: 02/05/03 16:04
めじろってまだ存在するのね・・・。


153 名前: デフォルトの名無しさん 投稿日: 02/05/03 16:10
>>150
並べてある順番に何か意図を感じる


154 名前: 厨房のしそうな質問 投稿日: 02/05/03 17:04
>>150のうちどの処理系がいいんでしょう?


お勧め!マークでもつけたほうが…

とりあえずBCCに一票。日本語だし…


155 名前: デフォルトの名無しさん 投稿日: 02/05/03 17:06
どの処理系?
んなもんgccと言いたいが、初心者に勧めるならOpen Watcomだな。
IDEついてるし。


156 名前: デフォルトの名無しさん 投稿日: 02/05/03 17:11
DMCはATL/MFC(ライセンス上も)利用可能
WatcomはIDE&デバッガ搭載(おまけにFortran)
bccは日本語&解説サイトが豊富

どれもSJIS通る。
最適化ならWatcomに一日の長がある

VC.NETはSTLPortと最新のPlatformSDKがあれば、
フルスペックのウインドウズ開発環境として利用可能(総計1G弱落とす事になる)
.NETのManaged C++もいける。



157 名前: 初心者にもなってない 投稿日: 02/05/03 19:19
C言語を勉強しようと思っているのですが
どの本がわかりやすいですか?
初心者にもなっていない人向けで、わかりやすいものがいいのですが。
オススメの参考書をおしえてください。



158 名前: デフォルトの名無しさん 投稿日: 02/05/03 19:27
>>157
>>1のリンクに専用スレがあるよ。


159 名前: デフォルトの名無しさん 投稿日: 02/05/03 19:27
>>155,156
名前欄読めよ…


160 名前: デフォルトの名無しさん 投稿日: 02/05/03 19:29
>>159
読んだと思うよ(笑)


161 名前: デフォルトの名無しさん 投稿日: 02/05/03 19:38
初学者には BCC Developer + bcc32 をお勧めしたい。


162 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:21
しつもーん!
voidな関数において途中で処理を止めたいときは
・・ループで言うbreakみたいのは・・
return;でいいの?それともexit(NULL);使ったほうがいいの?
どうなの?


163 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:23
>>162
おーい、exitしたらプログラムが終了してしまうぞー
それとexitの引数はint型。

return;が正解。


164 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:23
return;


165 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:24
exit(NULL)です。がんばってください。


166 名前: 162 投稿日: 02/05/03 22:25
ごめん。ちょっと間違えた。voidなmain関数での話です。


167 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:25
>>166
mainも関数。
returnを使う。exitでもいいけど。


168 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:27
>>162
abort() しとけ。


169 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:27
>>168
今それ書こうとした・・・


170 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:28
あさって(0);だ


171 名前: 162 投稿日: 02/05/03 22:28
>>167
ふむ。了解デシ。returnします。

>>163
関数がvoidでもexitにint渡すの?
exitを解ってないかもな質問をしてみたり。


172 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:30
>>171
exit()の引数がint型なんだからしかたない。



173 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:30
exitはプロセスを終了して、OSにリターンコードを返すから、
どこで呼ぼうとかまわない。
returnは手続きで、exitは関数


174 名前: 162 投稿日: 02/05/03 22:33
>>173
ぉぉ。その説明で納得っす。わかりやすい説明ありがとうです。


175 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:34
>>174
分かっていると思うけど、voidとNULLは違うから。
NULLを渡すということは0を渡すことと同じ。


176 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:45
voidってANSIが追加したキーワードですよね?
それまではvoidの代わりになんて書いていたのですか?
void型の関数とかvoid *とか。


177 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:46
あ、sageちゃった・・・


178 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:47
voidはANSI以前からあったよ。BSDのpccの拡張。
void *みたいなのはchar *で代用してた。


179 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:48
>>178
ありがとうございます。
enumみたいに以前からあったんですか。

> void *みたいなのはchar *で代用してた。
なるほど。キャストすればchar *もint *とかになるからね。


180 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:55
>>175
バカ。NULL を必要とするところに NULL 渡すことと 0 を渡すことは同じだけ
ど、int が要求されているところに NULL を渡すことと 0 を渡すことは同じで
ないことがあるぞ。


181 名前: デフォルトの名無しさん 投稿日: 02/05/03 22:56
>>180
ん?NULLって
#define NULL 0

#define NULL (void *)0
じゃないの?


182 名前: デフォルトの名無しさん 投稿日: 02/05/03 23:02
>>181
180が言いたいのはたぶん、ポインタとして「0」と書くとnull pointerを表す
約束になっているのでオーケーだが、逆にポインタを整数に変換して特定の値
(例えばゼロ)になるという保証はない、ということだろう。


183 名前: デフォルトの名無しさん 投稿日: 02/05/03 23:06
>>182
そうか・・・・
まあ>>175で言いたかったのはNULLはvoidと違って値のあるものだということだから。


184 名前: 180 投稿日: 02/05/03 23:27
>>182 ありがとう。
>>183
NULL は void と違ってって、あんた exit() に float 渡しても平気 ?
それぐらい変なことだよ。exit(NULL) って。


185 名前: デフォルトの名無しさん 投稿日: 02/05/03 23:43
>>184
だーかーらー
あの人はNULLとvoidを混同しているようだから言ったんだってば!
exitにfloat?NULL?そんなもん渡すか!


186 名前: デフォルトの名無しさん 投稿日: 02/05/03 23:46
C FAQ嫁
つーか>>1のリンクくらい嫁。



187 名前: デフォルトの名無しさん 投稿日: 02/05/03 23:50
>>185
> NULLを渡すということは0を渡すことと同じ。
先ずは、この発言撤回しろよ。


188 名前: デフォルトの名無しさん 投稿日: 02/05/03 23:52
粘着の予感・・・


189 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:20
EXIT_SUCCESS (#`Д´)y-~~


190 名前:   投稿日: 02/05/04 00:29
>>189
ワラタ


191 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:30
EXIT_FAILED ・゚・(ノД`)・゚・。


192 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:31
EXIT_FAILURE ヽ(゚∀゚)ノ デシタ!


193 名前: manko chinko 投稿日: 02/05/04 00:40
最強のmankoプログラムを組んでみました。
#include <stdio.h>
main(){printf("manko daisuki");}


194 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:42
sizeof(NULL)≠sizeof(0)の可能性は別として、
数値を期待するところにNULLを渡せばそれは0を渡したのと同じことになる。

コンパイラによってはNULLを汎用ポインタ型の0として明示的に定義してる場合もあるが
これはよけいなお世話とも言うべきで、ANSIでいうところのヌルを表す数値定数は0で
あって、それ以外の何者でもない。

実装によってはヌルポインタのビットパターンが0じゃないものもあるが、
それはコンパイラが0から正規のヌルポインタに翻訳する。

sizeof(NULL)がsizeof(0)と等しくない環境は多い。
可変長引数やプロトタイプ宣言されていない関数への引数としてヌルポインタを
渡したい場合は、明示的にポインタ型へのキャストを行う必要がある。

結論としてだね、引数を含んだプロトタイプ宣言がなされているであろう関数
exit()に引数としてNULLを渡すのは合法で、結果として0を渡したのと同じことになる。

型検査が行われて、ポインタ型を整数引数に渡したとかいう警告がでるかもしれんが。




195 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:43
exit(NULL);
って、ゼロになる保証がないだけだから
mainがvoidの時は、それほど影響はないかと
と言っても、たまに勘違いしてる人がいるから問題と言えば問題だけど…


196 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:46
だがこれが文芸的プログラミングという考え方から行くと、
ヌルポインタと整数の0は別物であって、
そのどちらかをコードに書く場合、ポインタを期待するところにはNULLを
整数を期待するところには0を書くべきである。

memsetの第三引数に渡す数値も同じ。
exitに渡す数値も同じ。

exitの場合、明示的にEXIT_SUCCESS, EXIT_FAILUREが定義されているので
それを使う方が好ましいとはいえる。



197 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:46
>ANSIでいうところのヌルを表す数値定数は0であって、それ以外の何者でもない。
それはC++の話であって、Cだとその限りではない



198 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:48
>>197
Cだって同じだよ。
つーか、C++がCのヌルポインタを引き継いだだけだ。
意味は変わっていない。



199 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:49
つーか、なんで偉そうに嘘はくの?ここの連中。



200 名前: 玉三郎 投稿日: 02/05/04 00:51
キタ━━(゚∀゚)━━ァ!
俺の出番か


201 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:51
>>199 話についていけない漏れに、どれが正しいのか教えてクリ


202 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:52
>>200
先生出番です


203 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:52
K&RもC FAQも読んだことのない痛い>>194がいるスレはここですか?


204 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:53
>>194
C でも C++ でもいいから、
> 数値を期待するところにNULLを渡せばそれは0を渡したのと同じことになる。
が常に正しいことの根拠を示せよ、バカ。


205 名前: 玉三郎 投稿日: 02/05/04 00:53
ごめんなさい、早すぎました。


206 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:54
char* p = NULL;
if (p) {
} else {
}
でpは常に偽だけど、定数NULLが0とは限らないっていうんじゃないのか?


207 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:54
>>204
ネタニマジレスカコワルイ…


208 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:54
180=204はバカが口癖らしい


209 名前: 困っています 投稿日: 02/05/04 00:56
C言語の標準ライブラリの一覧しりませんか?


210 名前: デフォルトの名無しさん 投稿日: 02/05/04 00:59
>>206
NULLは0です。
というより、0をわかりやすいようにNULLにしてるだけ。
FAQ読むよろし。


211 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:00
ル━━(゚∀゚)━━プ!


212 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:02
漏れは>>196に賛成。NULLはヌルポインタ派。


213 名前: 180 投稿日: 02/05/04 01:02
>>208
バカばっかしだから、口癖になっちまったよ。言ってるそばから >>210
かよ...、当分直らねーな。


214 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:03
>>209
どうぞ。
http://www.google.com/search?hl=ja&q=C%8C%BE%8C%EA+%95W%8F%80%83%89%83C%83u%83%89%83%8A%88%EA%97%97&lr=lang_ja


215 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:04
さあ、やってまいりました輪廻転生のごとく蘇るNULL論争!


216 名前: 210 投稿日: 02/05/04 01:05
>>213
俺はちょっとスレ見たらNULL!=0とか書いてるバカがいたから書いただけ。
NULL!=0と#defineすることは可能だよ、別に。
そんな処理系も(そんなことしてるやつすら)みたことないけど。


217 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:06
#define NULL !0
やってみますた


218 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:07
http://www.catnet.ne.jp/kouno/c_faq/c5.html


219 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:07
#undef >>217


220 名前: !206 投稿日: 02/05/04 01:08
>>210
それは逆
定数の0がポインタとして比較される時にNULLになる事が保証されているので、
time(0);

time(NULL);
になる事が保証されているが
exit(NULL);

exit(0);
になる事は保証されていない


221 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:08
#ifdef __2CH_CC__
#タイーホ >>217
#endif


222 名前: 180 投稿日: 02/05/04 01:10
>>216
あのね。C++ なら、#define NULL 0 って定義されてていいの。
問題はそうじゃなくて、

void *p = 0;
int n = (int)p;

って、やった時に n が 0 になるかどうかが問題なんだよ。

やっぱりわかってなかったか...。


223 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:10
>>220
定数の0がポインタとして評価されるときに”ナルポインタに”評価されることが保証されてるだけでしょ。
定数NULLがこの0と同様に振舞うならば、仕様の範囲でとりうる値は0くらいしかないと思うけど。


224 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:12
>>222
180のどこにそんなことが書かれているのか子一時間(以下略


225 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:13
ナルポインタ・・・・・(*´Д`)


226 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:14
>>223
NULLはポインタだから
eixt((void *)0);
になって、それが暗黙的に整数に変換された時に0を示すとは限らない


227 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:17
ただ今の戦況:両者膠着状態。ややバカ側が不利か。


228 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:18
>>227
ナル萌え派の勢力はどうなんだ?


229 名前: 180 投稿日: 02/05/04 01:19
>>224
バカはでてくんなよ。int n = (int)p; と
> int が要求されているところに NULL を渡すこと
の関連ぐらいはわからんか ? まあ、わかんねーから書いてんだろうけど。


230 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:20
ものすごい勘違いをしてるようなので指摘。

コンパイラが扱うヌルポインタとNULLは別物。
NULLはヌルポインタに変換されることが保証された定数値のdefineにすぎない。

#undefして再定義したとしても、それがヌルポインタに自動変換される値で有れば
規格外だが合法。

問題はヌルポインタを整数型に変換した場合の動作であって、
NULLが0と交換可能かどうかではない、というわけだね。



231 名前: 194-196 投稿日: 02/05/04 01:23
ごめんなちいこうさんしる。


232 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:23
>>230
#define NULL ((void*) 0)
の場合は「定数値のdefine」ではないね


233 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:25
>>232
型が違うだけで定数値でしょ



234 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:25
問題は、規格や動作じゃなくて、
exit(NULL);
とするのが、常識的なのかってことじゃないの?


235 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:28
>>234
俺は異常だと思う。
ところでintを引数にとるはずのexitでexit(NULL)の記述が出来ることが問題になる処理系では、
NULLは
#define NULL ((void*)0)
じゃなくて
#define NULL 0
とされているとみてかまわないのでは?


236 名前: 180 投稿日: 02/05/04 01:29
>>231
>>195-196 は、別に降参せんでもいいと思うが。

>>230
マッ、そう言うこっちゃ。大体、C++ にした時に Null とか言う定数を定義しち
まえば良かったのに、#define NULL 0 なんかでごまかそうとするからこんなこ
とになるんだよ。この点については Pascal がうらやましいよ。

>>207
ネタの割には、しつこいんだが。


237 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:30
null pointerが0じゃなくて特別な予約語(nullとかnilとか)
で表されていれば話が簡単だったのにね。



238 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:33
というわけでNULLは0という結論でよろしいか?


239 名前: 自作自演 投稿日: 02/05/04 01:34
>>226
eixtってなんやー


240 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:35
つまり、リッチータンのいけずぅ。


241 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:38
   _____
 /::\_____\
 |: ̄\∩`_´) \ 終わった?
 |:   :| ̄ ̄U ̄:|


242 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:39
さらば180。


243 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:40
0はいつでもNULLとみなせるが、
NULLを0とみなせるとは限らない。



244 名前: 180 投稿日: 02/05/04 01:40
>>234
議論するまでもないと思うが...。

>>238
C++ なら、それで OK。C なら、やっぱ ((void *)0) でしょ。

>>239
細けぇとこに突っ込むなよ。小姑みたいだぞ。


245 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:43
>>244
exit(NULL);だよね?
この状態ではNULLはintに暗黙に変換できなきゃ値の問題以前にコンパイルすら出来ないはず。


246 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:44
>>243
0がヌルポインタとして見なされるのは
ポインタが記述されるべきところに記述された場合のみ。


247 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:44
 __________________ 続いてたか
 |: ̄\     \★パタン
 |:   :| ̄ ̄ ̄ ̄:|


248 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:45
>>247
おいでよ、一緒に遊ぼうよ。


249 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:47
 __________________ 
 |: ̄\     \
 |:   :| ̄ ̄ ̄ ̄:| < 全然わからんもん


250 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:48
>>249
とりあえず適当なこと言えば親切な人が突っ込んでくれるから。
さ、出ておいで〜


251 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:50
      ,, ,=、  ,, , =、
     ff | }!、,、〃 / ″いやあぁぁぁぁぁ!!
      ,リ/ .ノ*´jコ`)'〃
    {{ { ′   v' 《
     ヾ.\.   \ヾ
     _,,二、》   ;  \. 三,_
  (( ゙ー=、`″〃 \. \-‐' ,))
        ゙ー=″     ゙' 一' 


252 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:50
型がどうであろうと全てのbitが0なら0になるんじゃないのか?
キャストで大きさは変わっても、bitの並びが変わることはないだろ?


253 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:50
ル━━(゚∀゚)━━プ! か?


254 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:51
>>252
((void*)0)のすべてのbitが0とは限らないよ。


255 名前: 180 投稿日: 02/05/04 01:52
>>245
それ以前に、exit(NULL) って書くか普通 ? 多くのコンパイラで、警告出しなが
らコンパイルはできるけど、コンパイルできりゃ良いって話じゃねーだろ。


256 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:52
>>254
なぜ!?
((void *)0)は0番地を指す値だろ?


257 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:53
>>255
NULLとvoidを混同していただけだろ・・・


258 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:54
NULLはポインタ型で使え
整数型んとこでNULLはいやん?


259 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:54
ループキタ━━━━━━(゚∀゚)━━━━━━ !!


260 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:54
>>256
コンパイラは0をポインタにキャストするとき適切な内部形式に変換する。
多くの実装では0なだけで、そうでないのも昔はあったそうだ。


261 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:55
>>256
だからそこが違うんだって。
たいていbit patternは0になるだろうけど、
そんな保証はないって話。


262 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:55
C言語を独学で習得しようと思うのですが
みなさんはどういう風に勉強しましたか?
私はC++Builderの使い方があまりよくわかりません
あれってやっぱり慣れなんでしょか?
それとも本を読んだりして勉強したのですか?


263 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:55
>>260
じゃあ条件式でNULLを偽とみるのは間違い?


264 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:56
とりあえずexit(NULL)はキチガイってことでよろしいか?
NULLが0とかどうかは実装依存なので無意味かと。


265 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:56
>>257
NULLとvoidをどう混同すればexit(NULL)と書けるのか
激しく問い詰めたい。

void main(){}だからreturn 〜;は使えない

voidの値でexit()すれば(・∀・)イイ!

って論理か??


266 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:56
>>263
NULLは偽だよ。


267 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:57
以前ここでナルポインタは0であると保証されているわけではないと言ったら思いっきり叩かれたんだけど・・・・
C FAQ見ろとかいわれて・・・


268 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:57
NULLが偽になるのは規格で保証されている


269 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:57
>>267
ナルポインタとNULLを混同していたからでは?


270 名前: 257 投稿日: 02/05/04 01:58
>>265
きっとそうだろ。
・・・って言ったのは俺じゃないぞ!


271 名前: デフォルトの名無しさん 投稿日: 02/05/04 01:58
例えばnull pointerがJavaみたいにnullという予約語で
表されるとしよう。

そのbit pattern(プログラマにとってはどうでも良い)が0
だとか、0番地を指しているとかいう保証は何もないよね。
実際のCでも同じ。nilのかわりに0と書くけど。



272 名前: 265 投稿日: 02/05/04 02:00
>>270書き方悪かったスマソ


273 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:00
そもそもナルポインタを作るために0を使うC言語の構文はどうかしてる。
C++の純粋仮想関数の = 0 もどうかしてる。
予約語作れよ。


274 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:00
>>264>>268
0じゃなくても偽になるの?


275 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:01
>>274
仕様上はなりません。


276 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:01
>>274
そうだよ。
if ( exp )

if ( exp!=0 )
と同義。


277 名前: 274 投稿日: 02/05/04 02:02
もうわけわからん・・・


278 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:03
NULLは偽 -> 偽は0 -> よってNULLは0

これで正しいと思っていたんだが・・・


279 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:03
>>262
すまんね。今このスレいそがしいので。
とりあえずオレは、本読んで、わかんないとこは知人に聞きながら、
いろいろコンパイルして試したよ。

C++Builderは、慣れるしかないかも。


280 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:03
exp!=0のとき
expがポインタならば0もポインタに変換される。
ポインタ同士の比較になるわけ。
expのビットパターンがぜんぶ0かどうかは問題じゃない。


281 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:03
>>274
FAQ読みなはれ


282 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:06
>>278
ちがうって、
NULL==0 だから NULLは偽
だよ。



283 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:07
でもさぁ、この話笑えるよな。
こんなにややこしくするなら定数0でbitパターンも全部0でいいじゃんって思うよ、ほんとに。
実際それで実害のある処理系はほとんど無いわけだし


284 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:09
ループするけど、nilという予約語を作ればベストだったのではないかと


285 名前: 180 投稿日: 02/05/04 02:09
あ〜〜〜っ、もうバカばっかし。>>280 が正解だよ。>>275 も堂々とウソ書くな
よ。


286 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:12
馬鹿はほっといてnilについて語ろう。
俺はnullのほうが好み。
でもキーの配置や文字数の関係でnilのほうが打ちやすいことがたった今判明。

とりあえず全角使いまくりのCの定数は片手で打てないので大嫌い。


287 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:12
0がNULLポインタを表現するなんて糞仕様入れた標準化委員会が間違い


288 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:12
>>283
ちゃんとした規格を作った時に、
すでに0で無いコンパイラがあったんでないの?


289 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:13
>>285

>>275が言っているのは
#define NULL 1
とかいった実装には、仕様上はなりません。規格では
#define NULL 0 /* または ((void*)0) */
なので必ず偽になる、という意味だと思うがどうか?


290 名前: 286 投稿日: 02/05/04 02:13
悪い
×全角
○大文字


291 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:13
ポインタの文脈では 0 はnull pointer (NULL ではなくて) として扱う。
単純明快だと思うけど。

俺は NULL のほうが要らないと思う。初心者向けに媚びたから
よけいに混乱した。


292 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:14
>>283
TRONチップ上のCはnull pointerの表現が0でないと聞いたような気がする。

あとは、0番地のメモリとレジスタ0が同じになってる機械(昔はイパイあっ
た)とかだとnull pointerの表現を0にするのは嫌だろうな。



293 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:15
>>291
ナルポインタの内部表現も全部0だったら、俺もそれがいいと思う。
そうでない実装があったとき激しく混乱すると思う。
(今でも十分NULLのせいで混乱してるけど)


294 名前: ふか 投稿日: 02/05/04 02:16
基本的な質問で申し訳ないが・・・
関数のプロトタイプが必須のケースって?
漏れが思いつくのは
「2つ以上のアーカイブが相互に関数参照するとき」
以外思いつかないんだけど,あとある?


295 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:17
>>274
補足

構文的に、ifは条件式を受け取ることになってる。
if (条件式)
ね。

ここでifに条件式以外の式を渡したとき
if (式)

if ((式)!=0)という風に暗黙的に補われるんだ。こういう決まりなの。

んでもってifにポインタ値や、ポインタ値を返す式を渡すと、
if (ポインタ値)

if ((ポインタ値)!=0)
になるんだけど、
ポインタ値と0を比較するときには0はヌルポインタに置き換えられるという
ルールも適用されて、つまり、ヌルの時だけ偽、ヌル以外の時真になるわけ。

K&Rとかの文法の書いてあるページを、よーく見てみよう。
そのうちわかるようになるよ。



296 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:17
チェ━( ´∀`)・ω・) ゚Д゚)・∀・) ̄ー ̄)´_ゝ`)━ンジ!!!

話題がNULLの在り方にシフト!


297 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:17
>>294
mainよりも後ろに関数を書くときとか。
というか書け!


298 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:17
>>289
それおかしいよ。

int *p = NULL;

if (p)
が偽になる理由の説明になってない。

だいいち
#define NULL 1
でも別に規格違反ではない。



299 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:19
ハードウェアで bitパターンが all 0 でない物がNULLポインタである可能性があるんだから、
0 を NULL として扱う(内部でNULLに変換)のはあまりに強引だというだけ。
0じゃない機械があるなら変換しないでその値をNULLとして扱い、
定数NULLの値は実装依存って言う方がスッキリしてると思うんだtが


300 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:19
>>294
プロトタイプが必須なんてケースないんじゃない??


301 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:19
>>294
プロトタイプ書かないとsinやcosなんかがまともに動かない
処理系は山ほどあるだろ。

printfさえ動かない処理系もあるよ。

つか書け!


302 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:20
ところで、機械自体にナルポインタという概念があるの?


303 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:21
>>299
同意。
NULLの中身は不明ってしたほうがはるかにわかりやすい。


304 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:21
>>294
いろいろある。

void bar()
{
 foo(4);
}

void foo(double a)
{
}
なとき、プロトタイプ宣言がないと引数がうまく渡せないでしょ。

同じくプロトタイプ宣言がないと、関数の戻り値が暗黙的にintを返すことにされちゃう。
困るでしょ。

ANSIスタイルで書いてて、呼び出し前に常に関数宣言を書いておけるなら、別にいらないけどね。




305 名前: ふか 投稿日: 02/05/04 02:22
>>297
レスさんくす。
書きたいのはヤマヤマだが,
漏れだけでシステムつくってないし〜。
あと引数の仕変が起きた時,
ヘッダファイルのプロトタイプまで直すのがカタルイ〜。
漏れは違うけど,プロトタイプに変数名まで書くやつもいるしな〜。



306 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:22
>>298
標準ライブラリ(ヘッダ)とコンパイラはセットで考えようよ。
元がNULL==0の処理系でNULL=1とした場合に、
int*p=NULL;
if(p)
が偽にならないのはしょうがないだろ


307 名前: 298 投稿日: 02/05/04 02:22
#define NULL 1
はさすがにまずいな。すまん。

#define NULL ((void *)処理系依存の0でないビットパターン)
は別に規格違反ではない、に訂正。

あ、
#define NULL ((void *)1)
は規格違反じゃないね。他のどんなポインタとも等しくなければ。


308 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:23
>>305
労力をケチるな!

> プロトタイプに変数名まで書くやつもいるしな〜。
多くのコンパイラの標準ライブラリは書いていないか?


309 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:23
staticなポインタ変数を初期化せずに使うとき0がヌルポインタだったら便利だな。
それ以外は不自然だな、という考えの基にああなったとおもわれ。

memsetでポインタをクリアするとどうなるか、ってのもあるな。



310 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:24
>>307
内部でNULLと比較を行うライブラリはすべて動作未定義になるね。



311 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:26
>>305
プロトタイプには変数名も書いたほうがいいと思う派だな、漏れ。
引数の意味がちょっとおぼろげってとき、宣言みれば確認できるし。
IDEによっては引数ヒントでポップアップしてくれるし。


312 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:26
質問です。

extern int usbmon_quit (const char*);

typedef struct {
 int (*func) (const char*);
} CmdList;

static const CmdList cmd_list[] = {
 { usbmon_quit },
};

static void*
search_command (char* buf)
{
 return cmd_list[0].func;
}

もとのソースからかなり省略していますが、ここで
search_command()の返り値の型は本来どのように記述すればよいのでしょうか?

関数へのポインタは一応分かったつもりだったんですが、
うまくいかなくて上のソースではvoid*でごまかしています。


313 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:26
>>305
かったるい??
それは引数名をわざわざ消すからだよ。
関数の宣言コピペするだけでOK。


314 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:25
たとえばstrtodとかかな。



315 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:26
>>306
それでも偽になるよ


316 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:27
>>299
ビットパターン 0 が null pointer だって教え方がまず間違ってるよ。



317 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:28
>>315
なるわけ無いじゃん。
元がNULL==0だったのに、勝手にユーザーがNULL=1にしても
確実に偽になると?


318 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:29
>>312
struct CmdList *かな?


319 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:29
>>312
typedefしたほうがいいよ。


320 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:29
>>316
>>299はそんなこと言ってないが?


321 名前: 298 投稿日: 02/05/04 02:29
>>306
いや、だからそれは違うって。

int *p=NULL;
if (p)
は偽になるが、その理由は「NULLが0だから」じゃないでしょってこと。

処理系の標準へッダでNULLを((void *)1)と定義していたとしても
int *p=NULL;
if (p)
は偽になる。



322 名前: 318 投稿日: 02/05/04 02:30
おっと、返しているのはメンバーか。


323 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:30
int (const char*);をtypedefしてしまう、とかね。



324 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:32
>>321
それなら同意だが。
ユーザーが勝手に定義し直しても・・・ってことだとオモタヨ


325 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:32
むかしC++にnilって予約語無かったっけ?
何で消えたんだろ?


326 名前: ふか 投稿日: 02/05/04 02:32
レスあり〜。
あれ?プロトタイプに引数名は書いた方がいいのか。
今,標準ライブラリヘッダもみたけど,たしかにそうだった・・・。
んじゃ,引数名書かないことの意義は?

あと話をまとめると
・動かない処理系がある
・書かないとコンパイラではint型と認識する
・漏れが >>294 で書いたアーカイブ間で相互参照するときに,
宣言しとかないとリンクできない
くらいですかね?


327 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:34
>>326
コンパイラはプロトタイプからは引数の型しか見ないから書いても書かなくてもよい。
でも書いた方が人間には優しい。


328 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:34
あの〜、nil=不明は良いんですけど、nulはどんなビットパターンにアサインされるんですか?
ポインタという整数型にnilという状態を持たせたら、そのビットパターンは整数値として有効な範囲に
いる可能性が出てきますよね?


329 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:35
>>326
stdlib.hをインクルードしないで、
char *str;
str=(char *)malloc(478);
とかやってみな。


330 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:35
>>326
変数名が不適切なときの修正が楽。


331 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:35
>>320
>299
>ハードウェアで bitパターンが all 0 でない物がNULLポインタである可能性があるんだから

って言ってるじゃん。


332 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:37
>>326
ファイルサイズをほんの少し小さくできる。


333 名前: 315 投稿日: 02/05/04 02:38
>>317=324
>>298=321とは別人だけど、321と同じようにとった
つうか、>>306の処理系云々と言うのは普通そうとると思うけど、
ユーザーが書きかえると思う人の方が多いの?


334 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:39
>>326
一宣言一行に収まって見た目が美しい。

…ってメリットにはならんな。


335 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:40
>>328
ポインタは整数型じゃないけど?



336 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:40
>>328
> ポインタという整数型に
ってのがちょっと意味不明なんだけど、
ポインタという名前の整数型の変数に?



337 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:41
>>331

>ビットパターン 0 が null pointer だって教え方がまず間違ってるよ

>>299
「ビットパターン 0 以外のものが null pointerである可能性がある」
としか読めないが?


338 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:41
おいお前ら!
プロトタイプ宣言はきちんと書いていますか?


339 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:42
>>338
必要ならやります(というかやらざるを得ない)が、何か?


340 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:42
書かないでcprotoに任せる


341 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:43
>>312
http://www.inet-lab.org/ted/program/prog064.html#064.6
によると、
int (* search_command(char* buf))(const char*);
int (* search_command(char* buf))(const char*)
{
return cmd_list[0].func;
}
らしい。なんか奇妙な感じ。


342 名前: ふか 投稿日: 02/05/04 02:43
>>329
。。。動きましたけど・・・(漏れも動くとはおもわなんだ)



#include <stdio.h>

int main(){
#define AL_SIZ (478)
char *str = NULL;
str=(char *)malloc(AL_SIZ);
if( !str ){
printf("alloc error\n");
return(0);
}
memset(str,0x00,AL_SIZ);
strcpy(str,"hoge hoge hoge\n");
printf("%s",str);
free(str);
return(0);
}



343 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:43
700行以上もあるmain関数は異常だとおもいますが。


344 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:43
>>338
必要無くてもやる


345 名前: 312 投稿日: 02/05/04 02:44
>>319>>323thanks
あとで試してみるよ!!


346 名前: ふか 投稿日: 02/05/04 02:44
>>340
なんですか,それ?


347 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:45
>>342
そりゃ動くだろ。
でもコンパイラに文句言われなかったか?
ものによっては言われないのかな。


348 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:45
>>343
そのくらいは普通


349 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:46
>>346
検索しろよ。
ところで、みんな本気で書いてるのか?
機械出力させるのが自然だと思ってたんだが。


350 名前: 312 投稿日: 02/05/04 02:46
>>341激しくthanks!!


351 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:46
ハードウエアにnull pointerっていう概念…
高級言語マシンなら…

たしかWirthが作ったModula-2マシンのLilithや
Lispマシンにはあったはずだ。

今だと「dereferenceしたらトラップがかかるポインタ」っていう
くらいかな。0番地のページに保護をかけることができれば0で良い。



352 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:46
>>348
俺は200行でも以上だと思いますが。


353 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:47
>>349
関数をつくるたびにヘッダーファイルにコピペしてセミコロンをつけるだけじゃん。


354 名前: ふか 投稿日: 02/05/04 02:47
>>347
ワーニソグもなしでした。
尤も最近のC言語コンパイラは
//コメント
とか
処理の後の変数宣言までワーニングなしで通しちゃいますからねぇ・・・


355 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:47
>>341
それで合ってるけど、猿にもわかるようにtypedefするのが親切ってもんでしょ。



356 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:47
>>341
激しく可読性が落ちないかな?


357 名前: 341 投稿日: 02/05/04 02:49
>>355-356
もちろん、typedef推奨。
オレも知らなかったので、調べただけだよぅ。


358 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:50
おっうちは Call to function 'malloc' with no prototype と出た。


359 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:50
人間が書いたプロトタイプが本体や呼び出しと食い違ってないか
を機械にチェックさせるとミスが減るけど、

機械が本体から作ったプロトタイプだとチェックにならない。


360 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:50
>>356
コメントつければ大丈夫だYO!


361 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:52
>>359
それは勘違いでは?
プロトタイプチェックしてほしいのは、その関数を使う人で、
関数を書く人にとっては自動でもいいような。


362 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:52
スレと関係ないんだけど。
うどんが一玉あるんだけど、具になりそうなものは何も無いんだ。
(卵はあるけど月見うどん嫌い)
かけうどんざるうどん、どっちにするのがいいと思う?


363 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:53
>>362
ざるうどんNULLポインタ添え


364 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:54
>>362
具無し焼きうどん


365 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:54
>>363
NULLの中身は0ですか?1ですか?
私は1の方がおいしいと思いますよ


366 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:55
>>365
-4


367 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:55
チェ━( ´∀`)・ω・) ゚Д゚)・∀・) ̄ー ̄)´_ゝ`)━ンジ!!!

話題がうどんにシフト! (一時的)


368 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:56
>>364
それ食べたことあるYO!
おいしかったYO!
スレ違いスマソ  YO!


369 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:56
>>361
お、なるほど。
「本体書いた後へッダにコピペする」時のミスが減るかもね。

しかし、「呼び出し仕様が先に決まってる」って方が良くあるんじゃ?


370 名前: ふか 投稿日: 02/05/04 02:57
ちゃんと仕様確定してからゆでてくださいね


371 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:57
ぶび厨はいいよな。NULLポインタ論争に巻き込まれなくて。


372 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:59
いい あいであ がでねぇええ
誰か〜


373 名前: デフォルトの名無しさん 投稿日: 02/05/04 02:59
焼きうどん好きくないからざるうどんにするよ。
うらやましいだろ。(´ー`)うどんマンセー・・・。
世界で最もうまい食べ物は
1.豆腐
2.うどん
3.おでん
だな。


374 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:00
>>373
ハヤシライス様が抜けてるぞ。ワーストの話か?


375 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:00
堅焼きうどんは好きだけどなー


376 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:01
世界でもっともうまい食べ物は
1わさび
2鷹の爪
3故障
だな。


377 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:01
void kansudesuyo(char mojiretsunano[])
これ嫌い。

void kansudesuyo(char mojiretsunano *)
と書いて。


378 名前: udon.c 投稿日: 02/05/04 03:01
>>362
#include <stdio.h>

int main() {
    srand(time());
    if (rand()%2) {
        puts("ざる");
    } else {
        puts("かけ");
    }
    return 0;
}

2回以上やると、やっぱり迷ってしまう罠。


379 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:02
>>378
timeの実引数が足りません。


380 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:02
char *mojiretsunanoだよ(汗


381 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:02
>>360
その考えたかやめれ。修羅場で修正したらどうせコメントなんか修正しないんだ
から。typedef 推奨だ。

extern int usbmon_quit (const char* s);

typedef int (*CmdFunc)(const char *);

typedef struct {
 CmdFunc func;
} CmdList;

static const CmdList cmd_list[] = {
 { usbmon_quit },
};

static CmdFunc search_command(char * buff)
{
 return cmd_list[0].func;
}


382 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:03
#include <time.h>
#include <stdlib.h>
もしときましょう。


383 名前: ふか 投稿日: 02/05/04 03:03
ども,ありがとうございました。
多分今の環境には馴染まないので,出力ツールは使わないとはおもいますが,
そういうものがあるというのもまた勉強になったYO!
そいでは漏れはiStudyの続きをば・・・



384 名前: 378 投稿日: 02/05/04 03:03
>>379
うい。soba.c を作る時に直します。


385 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:04
>>377
やだもん


386 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:05
朝までC談義

寝るなよおめーら


387 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:05
>>378
#include <stdlib.h>
#include <time.h>
#include <noodle.h>
も入れとけゴルァ!!

あ、最後のは>>378のコードだと必要ないか。


388 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:06
>>378
かけが出てしまった・・・


389 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:07
やっぱりsrandの引数にはtimeの戻り値を与えるのが一般的なのね。
Linuxとかならgetpidでも良さそうだけど。


390 名前: 387 投稿日: 02/05/04 03:07
>>387は遅すぎると自分を小一時間問い詰めて来ます


391 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:07
>>388
つぅか海苔のあるなしでは?


392 名前: 378 投稿日: 02/05/04 03:07
>>387
うい。libnoodle を作る時に修正しときます。


393 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:08
>>391
それはもりそばとざるそばのことだYO!
かけうどんは揚げ玉のないたぬきうどんだYO!


394 名前: 372 投稿日: 02/05/04 03:09
画面の前の神様
どうか生霊となって私めに降臨ください・・・(´人`)ナム-


395 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:09
>>391
違うだろ。それを言うなら、ざるともりだ。
ちゃんと仕様書嫁。


396 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:10
>>389
/dev/random を読むダロー



397 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:10
>>395
ざるに海苔があるかどうかは処理系依存ってかいてあるけど・・・


398 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:10
   ||
   || スルスル
   ||
   ||
 ∧||∧
(  ⌒ ヽ 
 ∪  ノ >>394 神です・・・
  ∪∪


399 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:11
何かC使いって堅苦しいよね。うーん。


400 名前: 395 投稿日: 02/05/04 03:12
>>397
すまん、「ざるうどん」は定義されてるが、
「もりうどん」があるかどうかは、処理系依存だった。


401 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:14
すみません。

typedef たぬき きつねそば



typedef きつねそば たぬき

はどちらがANSIですか?



402 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:14
今このスレには何人いるのか聞いてみるテスト。


403 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:14
Cプログラミング診●室のおっさんが変数名はできるだけ長くしろって言っているけど、いいの?


404 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:14
>>399
そう思ったらおまえもC++へ以降だ。


405 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:14
>>402
488人


406 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:15
>>393
処理系によって「たぬきうどん」は別物


407 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:16
   ∧∧
 ヾ(゚∀゚)ノ >>399 C使いはたいがい別の言語もやってるから
  (  ) )) そういう判断はできないYO
(( < <


408 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:16
NULLのビットパターンは0で無いかもしれないとか
ポインタを整数にしたら戻せないかもしれないとか
プロトタイプを書かないと動かないかもしれないとか
悩まなくて良かった昔が懐かしい。

もー決めちゃったらどうかな?
「NULLは0」
「ポインタはlongと同じサイズ」
「プロトタイプ書かなくてもコンパイラは困らないが
書かないとエラー」
「charは符号付き」



409 名前: 372 投稿日: 02/05/04 03:16
>>398
キタ━━(。A。)━━ァ!
首吊ったいつもの神様が後輪されたァッ!!
今夜は逝けそうだ!


410 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:16
>>404
教えてくれますか?

女性プログラマに優しく教えてほしいよ


411 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:17
>>403
他人に迷惑をかけない程度なら良いんでない?


412 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:17
>>408
C2002とか?


413 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:17
関西と関東ではたぬきときつねが逆転するという噂を聞いて、
京都に行ったときにたぬきうどんをたのんだら
あんかけ生姜乗りきつねうどんが来た。
(当時はあんかけも生姜も苦手だった。)
普通にきつねうどんを頼んだ友達は
普通のきつねうどんをうまそうに食ってた。


414 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:18
   ||
   ||
   ||
 ∧||∧
(  ⌒ ヽ  >>409 あれ、また君ですか・・・?
 ∪  ノ  どっかのスレの500・・・
  ∪∪


415 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:18
>>411
そっか。。
なんかあのおっさんむかつくよ!
fileをfと略すなとか。じゃあ標準ライブラリのfopen(以下略


416 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:19
>>413
ということはたぬき==揚げ玉は処理系依存か。


417 名前: 415 投稿日: 02/05/04 03:20
柴田ぼーよーやPerlをべたぼめだし。もう信じらんない。


418 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:21
>>413
Asian Noodle Standard for Information によると、
残念ながら地方依存です。


419 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:22
>>414 おお、スレを超えた再開か!?


420 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:22
>>418
ワラタ。ANSIか。


421 名前: 312 投稿日: 02/05/04 03:23
>>381でgcc -Wall無警告でコンパイル出来たYo!
おりごとう!!


422 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:23
>>420
マジだ!ワラタ!


423 名前: 372 投稿日: 02/05/04 03:24
問題は切り出したトークンの重複と連続した'\0'のとき
うまくいかないということだけなんだが・・・・うーむ


424 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:25
>>423
なんだなんだ?
>>372ではサパーリわからんぞ。


425 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:25
>>417
宗教の自由が保障されてるんだから仕方ないでしょう


426 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:30
remove
なぜかファイルを消す関数が標準ライブラリにある。不思議だ。


427 名前: Ð ë á t h ¹³ 投稿日: 02/05/04 03:31
   ||
 ∧||∧
(  ⌒ ヽ >>372 縁があればまたどこかで・・・
 ∪  ノ
  ∪∪  上へまいりま-す・・・

   ⌒
   ⌒


428 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:31
>>426
心配するな。ディレクトリの一覧を取る関数はないから。


429 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:33
>>428
それほしい・・・・
K&Rにはうにしすてむの項にUNIXでの実現方法が紹介されていたな。


430 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:34
#include <stdio.h>
int main (void)
{
printf ("そろそろ寝たいんだけど、寝ていい?\n");
return NULL;
}


431 名前: ふか 投稿日: 02/05/04 03:35
戻ってきちゃったYO!
(戻ってくるなって?)
皆さんは業界歴どれくらいっすか?


432 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:35
>>430
#include <stdio.h>
void main(void)
{
printf("駄目\n");
exit(NULL);
}



433 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:36
UNIXってなんて読むーの?


434 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:36
>>431
現在就職活動中。


435 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:36
>>433
うにず


436 名前: ふか 投稿日: 02/05/04 03:36
ちなみに漏れはまだ4年目っす。
お間抜けなことも聞きますがよろしう。



437 名前: 432 投稿日: 02/05/04 03:36
<stdlib.h>を忘れた(汗


438 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:37
>>431
学生でフ。
Terrariumのアカデミックアワードとってデビューするのでフ。


439 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:37
#include <stdio.h>
int main(void)
{
printf(">>430 だめ!");
abort();
}


440 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:38
>>435
まじっすか(;´Д`)
ユニックスかウニックスのどっちかと・・・って言うかXはズとは読まんでしょ。


441 名前: ふか 投稿日: 02/05/04 03:39
>>438
学生かぁ。
Terrarium?サパーリ?


442 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:39
こら〜
深夜だからってマターリしてるじゃないか〜


443 名前: 435 投稿日: 02/05/04 03:39
>>440
ユニックスに決まっているでしょ(笑)
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=UNIX&sw=0


444 名前: ふか 投稿日: 02/05/04 03:40
XAXはエグザスだからUNIXはうにずもありかな?


445 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:40
>>441
漏れのこと雇ってくれませんか?
Cしかできませんが。


446 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:41
>>443
わぉ!サンクス。
辞書に載ってるとは思わなかった世。
(みんなうにうに言うからどっちか心配で)


447 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:41
Terrariumって、スレは覗いてないけどやたら伸びてたね。


448 名前: ふか 投稿日: 02/05/04 03:41
>>442
そうなんだよ。プログラムってのはもっと殺伐としてるんだよ。
プロトタイプ宣言したのしないのって・・・(以下略)


449 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:41
うにくすってバカにした呼び方だよね?


450 名前: ふか 投稿日: 02/05/04 03:43
>>441
学生でCができるんなら,
うちみたいなとここなくていいよ。
バカになるよ(藁


451 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:44
>>450
不採用通知(T_T)


452 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:44
Xeonはクセオンで良いですか?


453 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:45
 __________________
 |: ̄\     \
 |:   :| ̄ ̄ ̄ ̄:| Zzz...


454 名前: 430 投稿日: 02/05/04 03:45
>>431 アマチュア暦7年位
>>432 ウワーン
>>433 うにいくらどん
>>439 ウエーン
>>444 XEXEXはゼクセクス


455 名前: ふか 投稿日: 02/05/04 03:46
>>450
いや,まじで。
4年目の俺がプロトタイプがどうのこうの聞いてるレベルの会社だよ。
ちゃんと活動して大手に行ってプロマネになってください。


456 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:47
>>455
はぁ・・・・
どれだけ自分をアピールできるかなんだよねぇ・・・
はったりかましてみようかしら。私はこれだけやる気があるんだぞって。


457 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:49
プログラマの就職ってやっぱり学歴関係あるかしらん?


458 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:50
女言葉だぞage


459 名前: ふか 投稿日: 02/05/04 03:51
うちの会社は専門卒以上だな。
未経験は25まで。
俺は大卒の未経験中途で25のとき今のところへ入社。
でもチチャーイ会社だよ。
学生ならちゃんと活動して大手へ行くべし。


460 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:51
>>458
〜かしらって使わない?ネット上で。


461 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:52
大手は逝きたくない・・・・
逝きたいと思っても行けないだろうけど。


462 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:52
漏れは大学やめて働こうとおもてるんだけど。
学歴は高卒ってことになるよね。しび〜あ〜。


463 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:53
童貞は25までじゃないと入れないのか…


464 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:53
NULL討論が始まってから怒涛の300レスだったな・・・


465 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:54
>>462
違う。
大学中退


466 名前: ふか 投稿日: 02/05/04 03:55
高卒ってどうなんだろうね?
漏れのまわりは他社も含めて大卒ばかりだYO。
持ち帰り中心の小さなソフトハウスとかならあるのかな?<高卒採用


467 名前: 458 投稿日: 02/05/04 03:55
>>460
俺も実はよく使う罠


468 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:55
>>465
履歴書には高卒って書く。
人に言う時は高卒と中退を使い分け。


469 名前: デフォルトの名無しさん 投稿日: 02/05/04 03:56
>>468
ぽっかり空いた数年間について聞かれないか?


470 名前: 372 投稿日: 02/05/04 04:00
しゃあ!
できそうだ・・・・
取りあえず完成したらキレイ書き尚しと・・・


471 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:01
聞かれる。
聞かれたときは答えに困るけど、正直に中退してぶらぶらしてましたって言う。

なんかスレと関係なくなってきたので適当に書いてみるか。

#include <string.h>
int main (void) {
 char* マジ="寝たい";
loop:
strcat (マジ, "ったら寝たいんだょぅ…");
goto loop;
return マジ;
}


472 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:01
グローバル変数はデフォールトではstaticですよね?
externをつけなければ他のファイルから参照することはできないですよね?


473 名前: ふか 投稿日: 02/05/04 04:02
変数名も日本語か・・・。
今,iStudy中・・・。


474 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:02
>>471
そのコード、つっこんでほしいの?


475 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:02
>>471
漏れはもうアモバンを飲んだので、寝るのは時間の問題だ・・・


476 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:02
>>472
チガイマース
int global_i;
だったらそれは外部的!


477 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:02
>>417
そんなに眠いなら寝ろ


478 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:02
>>471


479 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:03
>>476
え!?
じゃあ関数みたいにstaticをつけないと他のファイルからも参照できちゃうの?


480 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:04
 char* マジ="寝たい";
loop:
strcat (マジ, "ったら寝たいんだょぅ…");

これはいかん。


481 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:04
その通り>>479


482 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:04
>>481
すっかり勘違いしていたよ。
どうもありがとう!


483 名前: ふか 投稿日: 02/05/04 04:05
そいや,プロトタイプで
extern は必須?
つか意義は?
漏れ,もうだめぽ


484 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:05
extern宣言しても参照できないのがstatic


485 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:06
>>483
Cなら関数プロトタイプは無くてもいいはず



486 名前: 482 投稿日: 02/05/04 04:07
とりあえず必要なければstaticをつけることにしよう。


487 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:07
FFのCG見てるとSQUARE入りたくなって仕方が無い。
といってもそもそも入れないだろうし、うっかりゲーム業界なんて入ったら死ぬかも。


488 名前: ふか 投稿日: 02/05/04 04:09
プログラマとゲームプログラマは似て非なる職業


489 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:10
たしかCは関数の宣言が無くても下手すれば違う翻訳単位の関数を使えたよな・・


490 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:11
練るか…?

質問なんだけど
C++ の RTTI でクラス ID を分岐させることってできないの?

class_id_type hoge = get_RTTI_type( p);
switch( hoge ) {
case RTTI_class_A: 〜; break;
...
}

こんなやつ。
<typeinfo> ではいちいち
if( dynamic_cast<...> ) ...
if( ... )

を繰り返すのはメンドウだ…


491 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:11
ゲームつくりってどれだけ辛いの?


492 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:11
suretigai



493 名前: ふか 投稿日: 02/05/04 04:12
思い出した!
研修のころは
プロトタイプに変数名必要ない
externは必ずつける
と,教えられたんだ。
んで現場にでて,みんなexternつけてないから,
externはつけなくなっちゃったんだな


494 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:12
>>492
それを言ったらうど(以下略


495 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:13
>>490
classとか言われると手も足も出なくなる自分が情けない。
C++もやらないとだめかな〜


496 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:13
>>495
C++はスレ違い。


497 名前: ふか 投稿日: 02/05/04 04:13
>>489
翻訳単位ってなんぞ?


498 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:14
(*´д`)


499 名前: 490 投稿日: 02/05/04 04:15
スマソ C++ スレ探すのもメンドウな
アンニュイな(以下略・・


500 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:16
(*´д`)
    コンパイラニ アタエラレル ニュウリョクノ タンイ ヨ,Pre processerノ シュツリョク ネ


501 名前: ふか 投稿日: 02/05/04 04:16
Javaのクラスなら少しはわかるが
C++はサパーリ。クラスIDってなんぞ?
つかCのスレだからな・・・


502 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:17
>>495
案ずるより生むがやすし
やってみそ


503 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:19
>>502
らじゃー
あの分厚い本と格闘か(遠い目)


Javaは死滅するって聞いたのでやめておきます。


504 名前: ふか 投稿日: 02/05/04 04:19
>>500
#ifdef TYPE_A
int funcA(char*);
#else
int funcA(int);
#endif
みたいな?


505 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:22
実は洩れクラスが無いと生きていけなくなった人間でう・・・


506 名前: ふか 投稿日: 02/05/04 04:22
今月の「UNIX USER」によれば
アメリカのプログラマの扱う言語のトップにC++を抜き差って,
Javaが踊り出たそうな。
漏れもJavaはそれほどだが・・・


507 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:24
>>506
数で見ちゃダメでふ。


508 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:25
実は洩れクラリスがいないと生きていけなくなった人間でう・・


509 名前: ふか 投稿日: 02/05/04 04:27
YOっしゃ〜,今日のノルマオワソ!
も少ししたら寝るぽ


510 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:29
プログラマになったら女プログラマとやれる?


511 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:30
くだらない話してて虫完成してないよ〜〜。
また明日か・・・それまでにbuuがどこまで伸びるやら・・・。


512 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:31
>>511
くだらないとはなんだYO!くだらないとHA!


513 名前: ふか 投稿日: 02/05/04 04:32
漏れの周りは女プログラマが少ないぽ。
金融系のJOBについたら運用系の女プログラマとやれるYOと
まわりは逝ってるYO


514 名前: 490 投稿日: 02/05/04 04:32
>>501
いや、おいらも受け売りなんだけどさ・・
ポインタが指すオブジェクトが派生してて何なのかわからん場合
それを識別する RTTI っていうのがあってたぶん、dynamic_cast
ダウンキャストするために、内部でクラスの情報を持っているらしい。
それがクラスID。

ガイジンさんはこの機構を自分で実装していて
おいらは言語でできないもんだろーか。と思った次第でスワ
gamedev.net っつー、ゲーム屋の集うトコロテン…

っつか、ねむ…。

http://www.gamedev.net/columns/gameengineering/oosm/page3.asp


515 名前: ふか 投稿日: 02/05/04 04:33
>>508
練りに練った構造体とモジュール化した関数ぢゃダメですか?


516 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:34
>>513
いいな〜



517 名前: ふか 投稿日: 02/05/04 04:36
>>516
漏れは製造系のJOBだから関係ないぽ(涙
金融系に逝くならコボルもマスターしておけば,
運用のおねえちゃんに受けがいいと思われ・・・


518 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:36
>>514
switchで使えるような物は得られないんじゃないかなぁ。
独自にクラスのIDを整数で返す仮想関数を実装するしかないのでは。


519 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:37
>>517
お、お、おぉ・・・・
Webプログラミング関連はやめてそっちを回ろうかな。


520 名前: 508 投稿日: 02/05/04 04:37
>>515
洩れかよ!?
いや、やっぱりクラリスでなきゃ...


521 名前: ふか 投稿日: 02/05/04 04:40
>>519
そうそう,やっぱりこれからは
コボルやピーエルナントカといった汎用機マンセーの時代だYO


522 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:40
クラリスってなんぞよ?


523 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:42
>>521
これから回る会社の中に汎用機を主に扱うところがあるの。
こぼるやPL/Iを使っているみたい。
決めた。そこを第一志望にしよう。


524 名前: ふか 投稿日: 02/05/04 04:43
#include <stdio.h>

const char* str="もう寝ます。おやすみなさい\n" ;

void main(){
puts(str);
}


525 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:44
>>524
二回改行ですか?
私も寝よう。


526 名前: 514 投稿日: 02/05/04 04:46
>>518
そうですなぁ…。やはりそれしかないかなぁ…。



527 名前: 天然少女 投稿日: 02/05/04 04:46
Cの仕様だと自動変数は不定だから初期化しないといけない。
処理系依存って事なんだけど、どうして処理系によって初期化前の初期値が異なってくるのでしょう?
そこら辺の仕組みを教えて下さい。


528 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:50
>>527
処理系依存だったか?
不定では?


529 名前: 天然少女 投稿日: 02/05/04 04:51
その不定値が処理系によって異なります。
どうして異なるかが知りたかったんです。


530 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:53
あれは乱数として使っちゃおうという罠


531 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:54
>どうして異なるかが知りたかったんです。

どうしてってANSIが決めなかったから。
javaはゼロ初期化されるらしいけど


532 名前: 天然少女 投稿日: 02/05/04 04:55
乱数になるのでしょうか?(藁
コンパイラに依存するのかハードウェアに依存するのかも良く分からないんです。



533 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:56
>>532
OSに依存すると思う・・・


534 名前: デフォルトの名無しさん 投稿日: 02/05/04 04:57
>>527
児童変数はふつうスタックっていう一時的なデータを置く場所に置きます。
そこは、関数の引数や、前に使い終わった変数なんかの値が
そのまま残ってます。
コンピュータは内容をクリアするにも時間がかかるので、一般的に
前に使った物をいちいち消さないんですわ。

それで、初期化しないと新しく作った児童変数の値は
そのゴミの内容になってまう。スタックの使い方はコンピュータや
OS、メモリ状況によって違ってくるのでコトなるんです・・・。

C faq あたりにも載ってるかもしれん・・。


535 名前: 天然少女 投稿日: 02/05/04 04:58
>>531 う〜ん、チョット伝わって無い気がします。
仕様でゼロ初期化と決めなかった事自体は構わないんです。
だけど、その不定な値がどのように決定されるか知りたいんです。

変な質問でゴメンなさい。


536 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:01
>>535
決めるんじゃなくて残っているものがそのまま使われるんでしょ。


537 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:04
自動変数って名前(呼び方)、ANSIで定義されてたっけ?


538 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:04
>>537
autoキーワードがあるから自動変数でいいかと。


539 名前: 天然少女 投稿日: 02/05/04 05:05
>>534 なるほど。>>534さんは天才ですね。ひょっとして常識(汗
また質問しに来ます。有難うございました。




540 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:06
自動変数が置かれるスタックってのはホワイトボードみたいなもんで、
前に使った内容がそのまま残ってるんだよ。

前の人が何かいてたかしらんけど、
だいたい、直前に呼ばれた関数の引数とか、そいつが使ってた自動変数の中身とか、
コンパイラがこっそり演算するのに使ってたデータだとかが消えずに残ってるの。

どのように使われてたかは、コンパイラしか知らない。
コンパイラの知識とアセンブラの知識があれば、大体どのように使われていたかは
推測できるけど、そういうテクは、使っちゃいけないと言うのが最近の決まりです。

Cのスタックってのはね、「書いたら消す」という約束を守らない会社の
ホワイトボードみたいなもんなの。
決まってる訳じゃなくて、まえに誰かが書いたのがそのまま残ってるの。



541 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:06
>>535
>>534が言ってるのでだいたいあってます。


542 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:08
自動変数のアドレスを返す関数をつくって、そのアドレスが指す先にあるものを参照すると残っている場合が多いよね。
まもなく書き換えられるだろうけど。


543 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:11
>>542
ポインタと言いなはれ


544 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:11
>>543
すまん


545 名前: 天然少女 投稿日: 02/05/04 05:11
って言うか、自動変数の初期化をしていないのが原因のバグが有ったんです。
コード書いた人と処理系が違うので、理由を明確に説明してあげたかったんです。
皆さん親切に感謝!


546 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:14
>>545
そのコード書いた人失格。
でもコンパイラが教えてくれない?


547 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:15
>>539
そういう細かいところに疑問を持つのはいいことだと思いますの。
スタックと児童変数の関係を理解したら、今度は
ヒープと malloc, free や、なぜ児童変数の配列は固定長でなければ
ならないのか、考えてみるとさらに理解が深まりますにょ。。

って、すでに知ってたらごめんなさい、だけど…。


548 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:17
>>545
ついでに「未初期化の変数を使用した」旨の警告メッセージを
読み飛ばさないように教育しといてね。

警告メッセージは全部つぶすのが基本なんだけど、
そのなかでも普通はエラーにしてもいいんじゃないかっていうレベルの
警告もいくつかあるからね。



549 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:19
>>548
警告抑制してつぶしていたりして(w


550 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:19
>>545
なるほど…同じ職場ならコーヒー一杯おごってもらえ。
あなたにはその権利がある。かもよ。


551 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:20
>>549
gcc src.c >&/dev/nullとか(藁


552 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:23
>>545
興味をもつのはいいと思うけど、「じっさいにこーだからだめ」は説明つかないときに反論できないからお薦めしない。
動作が未定義な事は避ける、これが納得できないやつはプログラマ失格だとからだで覚えさせtやれ。

あと、処理系依存はドキュメントでも確認する、できれば避ける、も励行して欲しい。


553 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:42
(´-`).。oO(質問するときは俺も○○少女を名乗ろうっと)


554 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:44
>>553
別に○○少女でなくても丁寧に答えてくれるだろ。
酷い態度でなければ。


555 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:47
(´-`).。oO(○○美少年を名乗れば優しいおねーさんが丁寧に教えてくれるのかなぁ…)


556 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:48
>>553
今日はNULLあたりでマジになってたのが多かったから
それなりの答えが返って来ただけで
普段だったら、>>527の質問で
「女の子の仕組みを教えて下さい」
って切り返して終わるのがオチと思われ


557 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:49
>>556
このスレは違う。


558 名前: デフォルトの名無しさん 投稿日: 02/05/04 05:53
>>555
きっとモーホーなお兄さんが全力で教えてくれるぞ。関係ないことまで。
801板のお姉さんたちでもいい。


559 名前: デフォルトの名無しさん 投稿日: 02/05/04 06:01
>>558
呼んだか?


560 名前: 553 投稿日: 02/05/04 06:04
(´-`).。oO(このスレにはよく世話になってるよ。 お前ら、いつもありがとう。)



561 名前: デフォルトの名無しさん 投稿日: 02/05/04 07:49
(´-`).。oO(ともっちを名乗れば優しいおにーさんが丁寧に教えてくれるよ…)


562 名前: デフォルトの名無しさん 投稿日: 02/05/04 07:53
なんでたった3日でスレの半分消費してんだ?


563 名前: デフォルトの名無しさん 投稿日: 02/05/04 07:56
3日つか、24時間で430ほど消費しましてん。


564 名前: デフォルトの名無しさん 投稿日: 02/05/04 07:57
すばらしい消費具合だね。


565 名前: デフォルトの名無しさん 投稿日: 02/05/04 08:25
すごくしょもないことで申し訳ありませんが、
SendMessageでテキストボックスなどコントロールを
表示・非表示の切り替え や使用可能・不可能の切り替えはどう書けばいいでしょうか?


566 名前: デフォルトの名無しさん 投稿日: 02/05/04 08:32
すれちがい
http://pc.2ch.net/test/read.cgi/tech/1017072275/l50



567 名前: デフォルトの名無しさん 投稿日: 02/05/04 10:16
で、ぬるの統一見解は出た?


568 名前: デフォルトの名無しさん 投稿日: 02/05/04 11:54
>>567
実装依存


569 名前: とおりががり〜 投稿日: 02/05/04 15:37
C(++ぢゃない)のNULLに、統一見解なんてありましたっけ?
568さんのいうとおり実装依存じゃないでしたっけ。




570 名前: デフォルトの名無しさん 投稿日: 02/05/04 15:40
>>569
過去ログ読んでくれ。もうたくさんだ。


571 名前: デフォルトの名無しさん 投稿日: 02/05/04 15:57
次のスレには、ぜひ、NULL、0==var、main()の戻り値については議論しないように書いて欲しい。


572 名前: デフォルトの名無しさん 投稿日: 02/05/04 16:04
>>571
不毛な揚げ足取りはやめましょうとかで良いんじゃないの?w


573 名前: デフォルトの名無しさん 投稿日: 02/05/04 16:10
それぞれの議論へのポインタを置くか、
2ch向けのFAQ書くかだなあ。

十数年前の暇な学生の頃だったらやってたかも。



574 名前: ○○なお兄さん 投稿日: 02/05/04 16:19
>>558さん、呼びましたか?


575 名前: デフォルトの名無しさん 投稿日: 02/05/04 16:38
>>572
言語定義の説明に本気で反論してそうなやつ、たまにいるからね。


576 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:02
FAQの先頭には規格を読めとかいておけばよい。
プロらしいのに読んでないやつが結構いるのか分からん。


577 名前:   投稿日: 02/05/04 18:18
あるサイトで
文字の色を変えたり下線を引いたりするのに
MS-DOSのエスケープ・シーケンスを使うってあったんですけど
コマンドプロンプトではどうすればいいんでしょうか?


578 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:18
NULL についてまとめておく

・定数の "0" は、文脈によってヌルポインタ、または整数の 0 として解釈される。ただし、可変長引数、またはプロトタイプをもたない関数の引数に現れた場合は整数の 0 として解釈される。
また、整数型とポインター型とで多重定義している関数の引数では、解釈は実装依存となる(C++ 限定)。
・ヌルポインタのビットパターンは実装依存である。
・条件式にヌルポインターが現れた場合、偽となる。
・ヌルポインタとヌルポインタとは等しい。
・ヌルポインタとその他のヌルポインタとは、常に等しくない。
・ポインタ型によりヌルポインタのビットパターンが異なる場合があるが、コンパイラは(騙されない限り)正しい型を知っているので、比較は正しく行われる。

・NULL は 定数 "0" がヌルポインタとして解釈される場合のみ、定数 "0" の代わりに使用できる。他の文脈では、結果が実装依存となる。(NULL を整数 0 の代わりに使用してはいけない)
・NULL の定義方法は処理系により決定される。(#undef NULL は合法)



579 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:22
>>578
すばらしい!

でも、

>・ヌルポインタとその他のヌルポインタとは、常に等しくない。

・ヌルポインタとその他のポインタとは、常に等しくない。

の間違いかな。


580 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:24
>・ヌルポインタとその他のヌルポインタとは、常に等しくない。

これがわからない。
解説キボンヌ


581 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:27
char str[]="abcdefg";
と定義し、
str[3]='\0';
とした場合、配列自体は書き換えたところ以外は変わりませんが、文字列は3文字まで切りつめられたとみてよいですよね?

というのも、「文字列を切りつめるには適切な場所に'\0'を挿入すればよい。」という考えが正しいのかどうかと思いまして。


582 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:28
>>581
正しい。


583 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:29
>>582
正しいんですね。ありがとうございました。

間違っていなくてよかった。


584 名前: 修正 投稿日: 02/05/04 18:38
NULL についてまとめておく

・定数の "0" は、文脈によってヌルポインタ、または整数の 0 として解釈される。ただし、可変長引数、またはプロトタイプをもたない関数の引数に現れた場合は整数の 0 として解釈される。
また、整数型とポインター型とで多重定義している関数の引数では、解釈は実装依存となる(C++ 限定)。
・ヌルポインタのビットパターンは実装依存である。
・条件式にヌルポインターが現れた場合、偽となる。
・ヌルポインタとヌルポインタとは等しい。
・ヌルポインタとその他のポインタとは、常に等しくない。
・ポインタ型によりヌルポインタのビットパターンが異なる場合があるが、コンパイラは(騙されない限り)正しい型を知っているので、比較は正しく行われる。

・NULL は 定数 "0" がヌルポインタとして解釈される場合のみ、定数 "0" の代わりに使用できる。他の文脈では、結果が実装依存となる。(NULL を整数 0 の代わりに使用してはいけない)
・NULL の定義方法は処理系により決定される。(#undef NULL は合法)



585 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:47
>>577
echo ^[[0\;1m
てな感じでechoしよう。^[ は実際は'\x1b'ね。


586 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:52
>・ヌルポインタとヌルポインタとは等しい。
、、、


587 名前: 577 投稿日: 02/05/04 18:53
>>585
レスありがとうございます
でも できなかったです
bccがだめなんでしょうか?


588 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:54
>>587
WindowsNT,2000,XPを使っているとみた。


589 名前: 577 投稿日: 02/05/04 18:55
XP使ってます
XPだと色変えれないんでしょうか?


590 名前: 親切な人 投稿日: 02/05/04 18:55

追随を許さない、RX-2000V !!!

注目のオークションにも適用されてるね↓
http://search.auctions.yahoo.co.jp/search/auc?p=RX-200


591 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:56
>>589
少なくともエスケープシークウェンスでは無理。
何かライブラリがあると聞いたが。


592 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:56
>>589
DOS/Vで使えたっけ?
ANSIsysか何かが必要だった気が。


593 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:56
>>589
コマンドプロンプトはDOSではないがね。


594 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:58
32bit consoleアプリじゃだめ。
LSI-Cとか使いなさい


595 名前: デフォルトの名無しさん 投稿日: 02/05/04 18:58
>>586
Any two null pointers shall compare equal.
というISOの規格そのままだと思うが何か?

(もっと細かく言うなら、「どの型のヌルポインタ
も互いに等しい」と書くべきかも知れんが。)


596 名前: デフォルトの名無しさん 投稿日: 02/05/04 19:00


570 名前:デフォルトの名無しさん 投稿日:2002/05/04(土) 15:40
>>569
過去ログ読んでくれ。もうたくさんだ。


571 名前:デフォルトの名無しさん 投稿日:2002/05/04(土) 15:57
次のスレには、ぜひ、NULL、0==var、main()の戻り値については議論しないように書いて欲しい。


572 名前:デフォルトの名無しさん 投稿日:2002/05/04(土) 16:04
>>571
不毛な揚げ足取りはやめましょうとかで良いんじゃないの?w


573 名前:デフォルトの名無しさん 投稿日:2002/05/04(土) 16:10
それぞれの議論へのポインタを置くか、
2ch向けのFAQ書くかだなあ。

十数年前の暇な学生の頃だったらやってたかも。




597 名前: デフォルトの名無しさん 投稿日: 02/05/04 19:00
と、言うわけでスレッド立ててよそでやってもらえませんか?


598 名前: デフォルトの名無しさん 投稿日: 02/05/04 19:05
じゃあmalloc()したものはすべて(略


599 名前: デフォルトの名無しさん 投稿日: 02/05/04 19:05
>>597

>584 で終わっているんじゃないの。


600 名前: デフォルトの名無しさん 投稿日: 02/05/04 19:37
「FAQ歓迎若者限定C言語質問スレ(オサーン立ち入り不可)」
というのを作ってみるとか。
で、このスレは廃墟に…


601 名前: デフォルトの名無しさん 投稿日: 02/05/04 19:40
初心者板になぞらえて「もの凄い勢いで誰かがCの質問に答えるスレ」とか(ワラ
で、このスレはあっちのくだ質のように廃墟に・・・


602 名前: デフォルトの名無しさん 投稿日: 02/05/04 20:04
くだらない質問でもレスをいただけるスレッド(C専用)
とか…


603 名前: デフォルトの名無しさん 投稿日: 02/05/04 20:58
sprintfとwsprintfの違いはなんでしょうか?


604 名前: デフォルトの名無しさん 投稿日: 02/05/04 21:01
wsprintfは制限があるけど、TCHARベースで使うことが出来る
しかし、それはcじゃなくてWin32APIスレの方が適切だ



605 名前: デフォルトの名無しさん 投稿日: 02/05/04 21:06
少なくともwsprintfは浮動小数点関係が処理できなかったよね。



606 名前: 603 投稿日: 02/05/04 21:10
今,wsprintf(mes,"%s:",a[1].Name);
とやって表示しようとしたら表示できず、
 sprintf(mes,"%s:",a[1].Name);
とやったらOSが落ちました。
なぜでしょう?


607 名前: デフォルトの名無しさん 投稿日: 02/05/04 21:12
>>606
mesが不適切の可能性。
a[1].Nameが不適切の可能性。

なめてるのか?


608 名前: デフォルトの名無しさん 投稿日: 02/05/04 21:15
>>606
コンセント抜けたんじゃない?
きにするな
がんがれ


609 名前: 603 投稿日: 02/05/04 21:19
 a[1].Nameのメンバのnameを確認してみたところLPSTRになっていたので,
charにかえてみたところうまくいきました。


610 名前: デフォルトの名無しさん 投稿日: 02/05/04 21:21
じつはうまくいってないヨカーン


611 名前: デフォルトの名無しさん 投稿日: 02/05/04 21:38
>>610
領域破壊ですかね?


612 名前: 603 投稿日: 02/05/04 22:58
うう・・・OS落ちまくりです

 sprintf(mes,"%sのなまえはなんでしょうかね?",a[1].Name);
としたところOSが落ちました。
char mes[256];
aのメンバNameはchar Name[256];

です


613 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:00
まともなOS使えば?


614 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:00
>>612
OSは何?


615 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:01
実はaの分メモリ確保してないとか?


616 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:01
1. a[1].Name に正しいデータが入ってない。 >デバッガかなんかで確かめれ。
2. a[1].Name に228文字以上入ってる。

のどっちかだろう。


617 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:01
>>612が落ちるの意味を間違ってるだけだろ。
本当にその程度で落ちてるなら、確かにOSかえたほうがいい。


618 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:04
おおかたa[1].Nameに'\0'がなくてアクセスしてはならないところまでアクセスしてしまっているんだろうな。
きちんと初期化しないとね。

(a[1].Name="aaaa"とかやっていたらわらえるんだが)


619 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:04
昔SunOS 3.xでscanf("%s"で128バイト以上読むとリブートしたっけなー



620 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:06
while("むげんるーぷ") printf("\t\b\b");で学校のWin2000が落ちたなー


621 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:08
>>620
それだと確実にNTが落ちるんじゃない?


622 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:09
>>621
2chにスレが立っていたのでやってみたら本当に落ちてちと焦った。


623 名前: 603 投稿日: 02/05/04 23:10
a[1].Nameには、ナナシと入っています

>>614
Win98です
>>617
画面が真っ白のままなんで,強制終了しました
>>618
多分大丈夫だと思いますが,確認してみます。
char aNameTable[][256]={
  "ナナシ","ナナシ","ナナシ","ナナシ","ナナシ"
};
strcpy(a[i].Name,aNameTable[i]);
としています
なんかここがだめそう?


624 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:10
>>623
256バイトもいるのかと小一時間・・・


625 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:12
>>623
iの値は?

>>624
必要なくても256バイトは取る。これ常識・・・・・・じゃないな。


626 名前: 603 投稿日: 02/05/04 23:15
iの値は,0から4までです
for文で回しています
for(i=0;i<5;i++){
  strcpy(a[i].Name,aNameTable[i]);
}
です


627 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:16
>>626
で、配列aの要素は少なくとも5は取っているんだな?


628 名前: 603 投稿日: 02/05/04 23:18
はいそうです。
 sprintf(mes,"%sのなまえはなんでしょうかね?",a[1].Name);
の部分をコメントにして実行したら大丈夫なんですが


629 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:19
っていうか、全ソース上げれば一発じゃないか?
でかいなら、再現できる最小を


630 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:24
やってみたが全然問題ないぞ?(当たり前だが)
コンパイラがおかしいんじゃネーノ?


631 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:28
>>630
新事実が出てきそうな予感。


632 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:30
ソースまだぁ?マチクタビレター

おお、地震だ!


633 名前: 603 投稿日: 02/05/04 23:33
コンパイラはVC6.0です。
ここに問題があると思うんですが,
sprintf(mes,"%sのなまえはなんでしょうかね?",a[1].Name);
FontData=SetMyFont(255,255,255,"MS ゴシック",18,0);
SetRect(&Src,20,380,470,630);
DrawText(FontData.hdc,mes,-1,&Src,DT_LEFT | DT_NOCLIP | DT_WORDBREAK);
DeleteFont(FontData);

で、SetMyFontでフォントを設定,FontDataで必要な情報を得ています。


634 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:34
>>633
sprintfより下の関数がわからん。
他の人頼む。


635 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:34
>>633
>>629


636 名前: 603 投稿日: 02/05/04 23:34
>>632
すんません。OS落ちてました。
なんか実行したら,画面が480*640の状態になって,デスクトップが表示されたままだったんで,
ALT+CTR+DELで再起動していました


637 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:38
>>636
縦長やねー


638 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:38
シェルについて今ならっていて、レポートとして原理を書くとこ
なのですが、いまいち簡潔にまとめて説明することができません。
どこか詳しく説明しているとことかないですか?ここで教えていただけ
るとよりうれしいのですが。


639 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:39
>>638
コマンド起動させるだけのプログラム。


640 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:39
>>638
かいがら。
以上。


641 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:41
>634 ここに問題があると思うんですが

ここで問題になっているのは、sprintfでのフリーズだろ?
だったら、それ以前の箇所でマズイ事が起こっているから、sprintfで失敗が起こる。
sprintf以降をさらされてもしょうがない。

原因を特定できない人間が勝手に問題の発生箇所を決めつけるな。
コンパイル&実行出来る最小限のソースを張り直せ


642 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:42
昭和シェル
http://www.showa-shell.co.jp/


643 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:43
>>603
ソースあげるかそのまま友達に配るかどっちかにしてくれ。


644 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:44
>>641
sprintfよりも前とは限らないぞ。
sprintfが原因で後でフリーズしているのかもしれない。


645 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:45
追加

myshellとcshllとの違いって何?


646 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:45
>>641
誤爆だよね・・・・?


647 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:47
>>646
スマソ誤爆デス

>>644
まぁ、確かにそうだね。
sprintfを中心に話題が進行してたんで、
そういうもんだと勝手に思いこんでました


648 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:48
>>645
お前の怪しげなプログラムかUNIXで少なからずシェアを持っているシェルかの違い。


649 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:49
>>633
ためしにさ、
sprintf()の部分を、
strcpy(mes,"あうあうあうあうあうあうあうあうあうあうあうあうあうあ");
とかにしてみると、どうなる?


650 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:51
>>638
こちらへどんぞ。
UNIX超初心者専用スレッド Part.2
http://pc.2ch.net/test/read.cgi/unix/1017325687/


651 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:51
>>648
シェアって何?



652 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:52
>>651
http://dictionary.goo.ne.jp/cgi-bin/ej-more_print.cgi?MT=share&ID=EJ-277600.txt&sw=0


653 名前: デフォルトの名無しさん 投稿日: 02/05/04 23:56
>>651
共有する。


654 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:00
次はこれかな?
http://www.kfc.co.jp/


655 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:01
>>654
?????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????


656 名前: 603 投稿日: 02/05/05 00:04
すごい削りましたが,これがソースです。
jpgをzipにかえてください。
ttp://sylphys.ddo.jp/imgboard/img-box/img20020505000221.jpg


657 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:05
http://sylphys.ddo.jp/imgboard/img-box/img20020505000221.jpg


658 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:08
どう考えてもFontDataからhdcをとってるあたりがおかしい。
VCスレに逝け。



659 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:08
>>656
解凍すると0バイトの"WINDOWS 98"というファイルが出てくるけど?


660 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:10
削りすぎててソースはいってねえよ


661 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:11
>>655
シェルの次はカーネルだろ


662 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:12
>>661
そこまで読めるかヴォケ!


663 名前: 603 投稿日: 02/05/05 00:12
みすりましたこっちです
ttp://sylphys.ddo.jp/imgboard/img-box/img20020505001003.jpg


664 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:12
http://sylphys.ddo.jp/imgboard/img-box/img20020505001003.jpg


665 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:14
>>663
プロジェクトを全てアップしたのかよ!
いいのか?


666 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:14
>>660
ワラタ


667 名前: 603 投稿日: 02/05/05 00:14
ttp://sylphys.ddo.jp/imgboard/img-box/img20020505001230.jpg
これが正解です。今度はlzhに変えてください。



668 名前: 603 投稿日: 02/05/05 00:15
あげみすりました
こっちです
ttp://sylphys.ddo.jp/imgboard/img-box/img20020505001300.jpg


669 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:17
ゲ
DirectXでバグ持ちか。
現在Win長期間労働記録更新中なんで、試す気にならない。
バグ取りは親切な人に任せとけ


670 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:20
正直、CyaraData.h とやらがないぞ。


671 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:21
必要なヘッダーファイルがなくてコンパイルできない。


672 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:23
すみませんでした。
削りすぎたようです。なかみはこれです。
#ifndef _CYARADATA_H_
#define _CYARADATA_H_
typedef struct{
char Name[256]; //名前
int MaxHp; //最大HP
int MaxWp; //最大WP
int Hp; //HP
int Wp; //WP
int Lev;
int Ata;
int Def;
int Ex;
int NextEx;
int Mov;
int Waza_Max;
POINT Pos;
int Type;
int IdouFlg;
int Koudou;
}PLAYER;
#endif


673 名前: 603 投稿日: 02/05/05 00:23
http://sylphys.ddo.jp/imgboard/img-box/img20020505002128.jpg

申し訳ないです
今回は無圧縮です


674 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:24
・・・


675 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:25
せめて関係ないビットマップとか、その読み込み周辺は削ろうね。
人に見てもらうんだから。


676 名前: 603 投稿日: 02/05/05 00:25
>>673
よその603さんですか?


677 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:26
マジデ━━━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━(゚∀゚)━━━!!!!!


678 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:26
Cursorsyori.hもねーよ(藁


679 名前: 603 投稿日: 02/05/05 00:30
>>678
それは,使ってないから,削除してください


680 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:30
>>679
使っていないなら書くなよ(T_T)


681 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:30
>>679
PLAYER の定義箇所どこ〜〜〜?(泣


682 名前: 681 投稿日: 02/05/05 00:31
>>680
すまん。>>672見てなかった・・・


683 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:32
>>681
>>672をCyaraData.hに書くんだって。


ところで、またまたヘッダーファイルがないって言われたよ(T_T)


684 名前: 603 投稿日: 02/05/05 00:33
完全版は>673です


685 名前: 603 投稿日: 02/05/05 00:35
Input.cppは、
#include <windows.h>
#include "Input.h"
#include "CyaraData.h"
だけでOKです。

>>684
寒いから早く寝ろ


686 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:38
これは未だかつてない..


687 名前: 681 投稿日: 02/05/05 00:39
>>685
とりあえず、sprintf() を strcpy(mes,"なんとかかんとか");
にすると、問題ないねぇ。


688 名前: 603 投稿日: 02/05/05 00:39
Menu.cppは、関係ないですから削除してください


689 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:40
今動かしてみた感じ、0 <= SelectSuu < 5 の範囲なら正常に動いてるようだが。
< 5 の方のチェックがどこにもないので、キーを押しまくったら
すぐオーバーしそうだけど。そのせいじゃない?

つーかこの、Player[SelectSuu+1] 鬼のような+1の連発は止めんか?読みにくい。


690 名前: 603 投稿日: 02/05/05 00:41
>>689
じゃあ改造しておいてください


691 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:42
>>690
偽者はだまってろ。


692 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:45
WinMeだとsprintfでも問題ないな。
そんなOS使うなとか言わないでね


693 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:46
保存時のタイムスタンプおかしくね?


694 名前: 603 投稿日: 02/05/05 00:50
>>689
うまくいきました。
ものすごく迷惑かけました。
これから,リポビタンDを飲んで,ゲームを完成させます。
親切にありがとうございました。


695 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:50
>>689
とりあえず、問題無いとこは置いておこう。


696 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:51
>>694
がんがれ。
完成したら、教えてね。


697 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:51
コンセントぬいとけって


698 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:52
なんだこれ?
実行したらWindowsの色設定が勝手に変わったぞ、おぃ


699 名前: デフォルトの名無しさん 投稿日: 02/05/05 00:54
っていうか、このプログラムかなりヤバイ
勝手にNortonの保護がoffになったし。
どっかで悪さしてねーか?


700 名前:   投稿日: 02/05/05 00:55
12ビットの符号付整数を16bitに拡張したいんですけど、符号判定にif文を使わないで
書いた場合

short des;
A案
des = souce <<4 >>4 // と書いたらコンパイラの最適化で無視されて値変わらず
B案
des = souce <<4; // と2段に分けたら正常に通ります
des = des >>4;

聞きたいのは、これに最適化を書けた場合、やっぱり無効化されちゃいますでしょうか?
つーか こーいう書き方ってどうよ?
temp = souce <<4
des = temp >>4
と書けば最適化の影響は受けないけど、 読む人に不親切なコードでしょうか?



701 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:05
des = ((1<<11) & source) << 4 | source;


702 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:07
>>700
des=(src<<4)>>4;
で出来るかも。
同じ状況の時、これで解決した事有る。


703 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:09
1111_11111111

10001111_1111111
にならない?


704 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:16
source = (((1<<11) & source) ? 0x7800 : 0) | source;
符号拡張は、MSBを拡張ビットすべてにコピーしないといけないんじゃないか?
分岐なしで出来るのか不明。


705 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:19
符号付型なら一度左SHIFTした後、右SHIFTすれば算術シフトでMSBがコピーされるという
主旨でしょ


706 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:23
シフトが算術である保証はないんじゃ?


707 名前: 702 投稿日: 02/05/05 01:23
スマソ
des=((short)(src<<4))>>4;
だった。
最適化で効果が無くなったと言うよりは、
演算途中でintとして解釈されていたからだと思う。


708 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:39
sizeof(1 >> 1);
あひゃ(゚∀゚)


709 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:49
>700
む。
val = ((short)(inval<<4))/16;
これでオッケーかと。コンパイラがidevじゃなくて大抵sar使ってくれます。


710 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:49
>709
divダタ(;´Д`)


711 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:49
俺ならこれかな。試してないが。。
return n & 0x800 ? n | 0xf000 : n;


712 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:52
>>711
いや、それ確かにifは使ってないけど・・・


713 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:53
>>709
大抵って・・・・


714 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:54
>713
少なくともVC++6ではsar使ってくれましたです。ハイ


715 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:56
もしかして700の使ってるのって、32bit固定プロセッサ?


716 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:58
dst = ((~((((unsigned)src & 0x0800) >> 11) - 1)) << 11) | src;
自信無いけど…


717 名前: 探しています 投稿日: 02/05/05 01:59
誰か折れのティムティムをfarジャンプしてくれる人はいませんか?


718 名前: デフォルトの名無しさん 投稿日: 02/05/05 01:59
>>707 のでいいんじゃないの?


719 名前: デフォルトの名無しさん 投稿日: 02/05/05 02:02
>>718
シフトの動作が実装依存だから、100点ではない


720 名前: デフォルトの名無しさん 投稿日: 02/05/05 02:04
1 の補数か 2 の補数かもわからんで。


721 名前: 720 投稿日: 02/05/05 02:07
と思ったけど、関係ないかもな。


722 名前: 700 投稿日: 02/05/05 02:11
使ってるのは普通のPCですよ
>>707でいいみたいですねー

と思ったら、ヤパーシダメなケースもあり?
つーか、負数が2の補数でない環境なんてあるんでしょうか?
あとシフトの動作が違うとか.… カナーリ特殊ですよね?


723 名前: デフォルトの名無しさん 投稿日: 02/05/05 02:20
>>719
符号付き右シフトの前に、左シフトでオーバーフローする可能性がある。
未定義動作。そこまで気にするなら716のような方法でやるんじゃないか?
716のコードはなんか間違っているような気がするけど。

>>722
規格を読むことを勧める。



724 名前: デフォルトの名無しさん 投稿日: 02/05/05 02:30
unsignedにしないと割り算の前(後?)に補正が入りますヨー


725 名前: デフォルトの名無しさん 投稿日: 02/05/05 02:32
素直にビットフィールドを使うのが吉かも…


726 名前: デフォルトの名無しさん 投稿日: 02/05/05 02:41
>>723 つか、シフト時の動作はANSIで決まってないか?



727 名前: デフォルトの名無しさん 投稿日: 02/05/05 03:01
条件分岐してるけど、こんな形も
dst = ( 2048-src > 0 ) ? src : src-4096 ;


728 名前: デフォルトの名無しさん 投稿日: 02/05/05 03:06
>>726
実装依存だよ。K&Rを読もう


729 名前: 727 投稿日: 02/05/05 03:08
12ビットの整数と言う時点で
すでに処理系依存の罠に掛かりかけてますので
素直にifを使う事をおすすめします。
ちなみに自分が書いた>>727も、もちろん処理系依存


730 名前: デフォルトの名無しさん 投稿日: 02/05/05 03:20
未定義動作はまずいだろうけど、処理系定義なら、
承知のうえで使うのはアリなんじゃないの?



731 名前: デフォルトの名無しさん 投稿日: 02/05/05 03:35
>>730
ここはCのスレだから


732 名前: デフォルトの名無しさん 投稿日: 02/05/05 05:15
dst=(0x10000-(src&0x800))|src;
ではどうかな?
適宜キャストしてね。

でも、実際に自分が使うとしたら、処理系依存に目をつぶって
>>707あたりを使うと思うけど。


733 名前: デフォルトの名無しさん 投稿日: 02/05/05 06:01
こんな所で
dst = src - (( src & 0x0800 ) << 1 ) ;


734 名前: デフォルトの名無しさん 投稿日: 02/05/05 06:49
ふと思った
>>700
>A案
>des = souce <<4 >>4 // と書いたらコンパイラの最適化で無視されて値変わらず
>B案
>des = souce <<4; // と2段に分けたら正常に通ります
>des = des >>4;
>聞きたいのは、これに最適化を書けた場合、やっぱり無効化されちゃいますでしょうか?
何でA案は試してるのに、B案が無効化されるか試さなかったんだ?
つーか、やっぱりネタか?


735 名前: デフォルトの名無しさん 投稿日: 02/05/05 15:14
美しさ(プを追求しているか、
理解を深めたいかのどちらかだろ。
コンパイラのバグをつつくというのもあるけど・・・


736 名前: デフォルトの名無しさん 投稿日: 02/05/05 19:34
数字の桁数を求めるにはどうしたらいいでしょうか。
100といれれば3を返すような関数が作りたいのです。
お忙しい所、大変申し訳ありませんがどなたかご教授ください。


737 名前: デフォルトの名無しさん 投稿日: 02/05/05 19:37
int keta = (int)log10(100 + 1.0);




738 名前: デフォルトの名無しさん 投稿日: 02/05/05 19:38
なるほど!対数を使えば良かったんですね!
現役なのにすっかり忘れてましたー(;´Д`)

ありがとうございます。
試してみます!


739 名前: デフォルトの名無しさん 投稿日: 02/05/05 19:40
浮動小数点使いたくなければこんなかんじ
int keta(int num)
{
int n = 1;
while ((num /= 10) > 0)
++n;
return n;
}
ただし正の数のみ



740 名前: デフォルトの名無しさん 投稿日: 02/05/05 19:44
>>738
0 および負数の扱いはどうするんだ ? (>>739 だと 0 の時は、0 が返る
が良いのか ? (まあ、正数のみと言ってるからいいか...。))

>>737
間違ってるぞ。それだと、100 の時に 2 が返るぞ。


741 名前: デフォルトの名無しさん 投稿日: 02/05/05 19:57
>>739ので合ってるんじゃない?


742 名前: デフォルトの名無しさん 投稿日: 02/05/05 19:57
>>740
いや、最初に n=1 してるから num==0 だとしても1が返るんじゃないか?


743 名前: デフォルトの名無しさん 投稿日: 02/05/05 20:01
log10つかうなら
int keta = (int)log10(num) + 1;
だね



744 名前: デフォルトの名無しさん 投稿日: 02/05/05 20:53
100を文字列に直して
strlenとか


745 名前: デフォルトの名無しさん 投稿日: 02/05/05 21:01
自分で実装するのが一番難しい標準関数はprintfですか?
あれだけ変換のバリエーションを持ちながら、最後に書き込んだ文字数を返すなんて凄すぎます。
ではまた(^-^)/~~


746 名前: デフォルトの名無しさん 投稿日: 02/05/05 21:13
予約済みマクロは#undefできますか?


747 名前: デフォルトの名無しさん 投稿日: 02/05/05 21:36
itoa()
strlen()


748 名前: デフォルトの名無しさん 投稿日: 02/05/05 21:54
>>726
左シフトはオーバーフローしないのか。間違い書いてスマソ。



749 名前: 740 投稿日: 02/05/05 22:17
>>741-742, >>739
合ってるわ、ごめん。なんか勘違いしてた。

>>745
VC++ のライブラリソース見ると、printf() の下請け関数 output()
だね。UNICODE 対応などもあって実に 670 行もあるぞ。


750 名前: デフォルトの名無しさん 投稿日: 02/05/05 23:26
C99だとsnprintfが一番かねえ。
sscanfもわすれずに。



751 名前: デフォルトの名無しさん 投稿日: 02/05/05 23:30
(A+B)&0xFF=0x
をB=の形にするには、どうしたらいいでしょうか?



752 名前: デフォルトの名無しさん 投稿日: 02/05/05 23:37
>>751
質問の意味が不明。


753 名前: デフォルトの名無しさん 投稿日: 02/05/05 23:37
>>751
丸一分間じっくり眺めたんだけど...


754 名前: デフォルトの名無しさん 投稿日: 02/05/05 23:49
>>751
A+B & 0xFF = C
B = C - A & 0xFF
???


755 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:07
>>752

&0xFFした時点で上位が失われてるから、
そうゆう意味でB=にするのはむりですよね?

結局どういう質問なんだかむしょうに知りたくなってきた。



756 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:12
int keta(int num) {
return num % 10 ? keta(int num % 10) + 1 : 1;
}


757 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:17
(A+B)&0xFF=0x

(A+B)&0xFF==0x00
と仮定して
B=0-A
の時なら成立するって事では?


758 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:20
>>756
size_t が妥当かと
って、その前に虫々やん


759 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:25
int keta(int num) {
keta(num, 1);
}

int keta(int num, int i) {
return num % 10 ? keta(num % 10, i + 1) : i;
}

推奨 -O4


760 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:26
ここらで 一息。
すごくくだらない質問です。
C++ と VisualC++ は同じ言語ですか?
コンパイラのソフトは一緒ですか?


761 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:28
は い そ の と お り で す


762 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:31
free( >>760 );


763 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:32
>>760

C++ : 日本語
Visual C++ : 関西弁

(別に「関西」に意味はなし。)


764 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:35
アイヌ語じゃなかったのか…


765 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:37
>>764
あなたは今、差別を行いましたね、差別を。
差別差別差別。

あ、社民党から電話なので、また明日。


766 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:37
>>760 マ ル チ ポ ス ト ハ ッ ケ ソ


767 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:40
system ("kill -9 760");


768 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:40
>>767 マ ル チ ポ ス ト ハ ッ ケ ソ


769 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:41
アイヌタン(;´Д`)


770 名前: 767 投稿日: 02/05/06 00:41
遅かった…


771 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:46
>>769
あなたは今、
戦う人を勝手に妄想していますね?
妄想してますね?


772 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:49
>>769
アイヌ、アプサラスのテストに行って参ります!


773 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:53
アイナ・サハリソ


774 名前: デフォルトの名無しさん 投稿日: 02/05/06 00:57
アイヌ、サハリン・・・なんか関係ありげ。(無いか)


775 名前: デフォルトの名無しさん 投稿日: 02/05/06 01:49
>>746
標準マクロが定義されている文脈では、そのマクロを
#undefしたり#defineしてはいけない。

例えば、NULLを定義するへッダをインクルードしたとき、
NULLを#undefしたり#defineすると未定義動作になる。

例外として、標準関数と同じ名前のマクロと両方が定義
されている(かもしれない)とき、「マクロじゃない方を
確実に使いたい」ために#undefするのは許されている。

また、
 最初の1文字がアンダースコア、2文字目が大文字
 最初の2文字がアンダースコア
の名前を#defineしたり#undefすると、常に未定義動作と
なる。



776 名前: デフォルトの名無しさん 投稿日: 02/05/06 05:30
>>759
-O4の意味が分からんのでネタだと思うが一応…

#define keta(s) neta( 0, s )
size_t neta ( size_t size, int num ) {
 return ( size++, num /= 10 ) ? neta ( size, num ) : size ;
}


777 名前: デフォルトの名無しさん 投稿日: 02/05/06 05:55
マ板ではキリ番でないと知りつつも777をゲットしたくなる罠。


778 名前: デフォルトの名無しさん 投稿日: 02/05/06 09:15
>>777
ならマ板でやってください。


779 名前: 初心者にもなってない 投稿日: 02/05/06 10:14
Cの入門書を買おうと思っているのですが
オススメはなんでしょうか?
できれば評判のいい物を買いたいので・・・


780 名前: デフォルトの名無しさん 投稿日: 02/05/06 10:19
http://pc.2ch.net/test/read.cgi/tech/1016722820/l50
推薦図書/必読書のためのスレッド

こっちいってください>>779


781 名前: デフォルトの名無しさん 投稿日: 02/05/06 10:20
苗字が1文字じゃないひとの本なら、なんでも。


782 名前: デフォルトの名無しさん 投稿日: 02/05/06 10:21
http://pc.2ch.net/test/read.cgi/tech/1018792875/
C本、古臭いK&Rいつまでも持ち上げるなヴァカ

こっちにいってください(藁>>779


783 名前: デフォルトの名無しさん 投稿日: 02/05/06 10:22
>>781
林に倉・・・・
じゃあぼーよーはいいんだな?


784 名前: 781 投稿日: 02/05/06 11:06
しまった・・・


785 名前: デフォルトの名無しさん 投稿日: 02/05/06 12:49
わざわざ末尾再帰にするバカ


786 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:19
char test[] = "aaa"."bbb";
のように文字列や数字をくっ付けるにはどうすればいいのでしょうか?


787 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:20
>>786
意味わからん


788 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:22
文字を結合したい訳です


789 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:24
両方定数ならただならべればよし。
"ABC" "DEF"


790 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:27
>>788
strcpy


791 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:28
VBみたいなことをやりたいんじゃなかろうか<文字列や数字


792 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:28
じゃなくて
strcat


793 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:40
出来ました ありがとう御座いました。


794 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:41
すみません。教えてください。
今月の日系ソフトウェアを読んでいるのですが、
構造体は、メンバ変数のサイズの合計とトータルのサイズが
違う場合があると書いてあるのですが
強制的にあわせるコーディング方法はありますか?
または、コンパイルオプションなどで指定するのでしょうか?
なにとぞご教授ください。


795 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:42
68 :参加するカモさん :01/12/11 17:29
ひろゆきってたまーに驚く程幼稚なセリフ真顔で吐くんだけど、いったいどういう
青春を送ってきたのだろう?
普通に成長を遂げた人間であれば赤面してしまうような恥ずかしいセリフ

82 :参加するカモさん :01/12/13 15:02
なんとなく言ってることわかる。
俺もひろゆきと何回か話したことあるけど、大昔のドラマでも見てるような気になった

95 :参加するカモさん :01/12/22 16:35
飲み会になると、必ず「遅刻」の話を得意気に語りだすけど、ひろゆきって遅刻することかっこいいと
思っているのかな?
回りの人間は苦笑するしかないけど、この人やっぱり幼稚だと思う


796 名前: 794 投稿日: 02/05/06 13:43
例えば固定長のレコードを読み込んだとき
そのままmemcpyで構造体にコピーできたら
便利なんですけど、メンバ変数に隙間ができると
それができないですよね?
どうしたらよいでしょう?


797 名前: デフォルトの名無しさん 投稿日: 02/05/06 13:48
>796
好きなほうを選ぼう
1.gccとか、コンパイラのオプションで隙間をつめるオプションをつける。
  バウンダリの問題が発生するかもしれないけど、知らん。
2.固定長のレコードを吐く人は構造体の先頭アドレスからsizeof分吐くようにする。
  書き出しと読み込みのコードを統一管理できなきゃダメだが。


798 名前: 794 投稿日: 02/05/06 13:56
>>797
ありがとうございます。
書き出しのほうはいじれないので1しかないです。
バウンダリの問題とはどのようなものでしょうか?


799 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:01
ファイルやストリームに直接書き出すような構造体は、
処理系依存になるけどかならず #pragma pack みたいなので
構造体のパック方法を統一しておこう。

整数型とか、エンディアンが異なると死ねるけど、
同じコンパイラ・同じ環境で動かすならこれで十分。



800 名前: 794 投稿日: 02/05/06 14:07
>>799
ムムッ!!
エンディアンという問題もあるんですねー
実はVCでコーディング中なんですけど
動かすのはUNIXなんです。
こりゃーやばいっすねー


801 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:07
このスレももう800か。。。

http://isweb3.infoseek.co.jp/play/ayusya/ProgramAlgorithm.html
こことか参考になるのか?
"構造体のアライメント"でMSDNから調べてみるとか。
よくわからんけど。


802 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:09
>798
まーどうにもならないんだったら、ちまちま手作業でメンバに書いてけ。確実だ。

はい次


803 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:09
アライメント境界のことを言ってるんじゃねえカナ。

32bit型データの読み書きをするとき必ずアドレスが4で
割り切れることにおいとかないとプログラムが止まっちゃうような
CPUもあるからね。

pack(2)とかしたとき、
struct foo {
INT32 a;
INT16 b;
};
の構造体を連続したメモリに配置すると、
奇数インデックスの要素のa が、4で割り切れないアドレスに配置されちゃうことがある。

これをfread(buf, sizeof(foo), n, fp);
なんかで読み出して
buf[1].a とかをアクセスすると死んじゃうわけ。

対策としては一構造体ずつ(隙間を埋めつつ)読み込むことにするか、
一気に読んで、アクセス前に構造体を安全なメモリにコピーする、
もしくは構造体の末尾にダミーのデータを入れて、想定できるすべての環境で
問題が発生しないようなサイズ(4の倍数とか8の倍数)にすること。




804 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:10
>800
えんでぃあんはこんぱいるオプションか、または根性で乗り切れ。
つーかCPUは何と何だ?


805 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:11
>>800
いろんなプラットフォームにまたがって、かつ扱うデータサイズがそれほど
大きくないならテキストではき出すのが一番楽だよ。
XMLとかつかってもいいけど、タダのCSVで済むならそうしたほうがいい。



806 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:12
>>800
コンパイラによってはアラインメントを詰められないものもあったと思うよ。
VCだと #pragma pack でOKだけど、これはコンパイラ依存。
UNIXで使うコンパイラで使える技かどうか確認されたし。


807 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:12
>805
改行コードとか。ま、どうにでもなるか。


808 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:13
MACが絡まないなら改行はどうにでも...



809 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:13
つーかXMLって改行コード規定されてなかったっけ?


810 名前: 794 投稿日: 02/05/06 14:22
ありがとうございます。
とりあえず、今顔面蒼白になってます。
まだちょっとしかコーディングはしてなかったけど
このままやってたらと思うと恐ろしいー!!
一から考えなおします。


811 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:26
 if(StartFlg++ == 0)
 {
   printf("はじめてなの\n");
 }
というのは可能でしょうか?



812 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:27
桁あふれして0に戻る可能性がなければそれでもよいが、
推奨はされない。


813 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:31
こうしましょう。
{
 static int first_time = 1;
 if ( first_time ) {
  first_time = 0;
  printf("やさしくしてね\n");
 }
}




814 名前:   投稿日: 02/05/06 14:44
{
 static int first_time = 1;
 if ( first_time-- ) {
  printf("明日もきてくれる?\n");
 }
}

じゃあだめですか?


815 名前: デフォルトの名無しさん 投稿日: 02/05/06 14:47
>813
if文以下を3項演算子使って1行にしてみて


816 名前: デフォルトの名無しさん 投稿日: 02/05/06 15:05
>>800

コンパイラの問題か。。。?

#include <stdio.h>

int main(void){

int n = 1;
printf("%s\n", *(char *)&n ? "little endian" : "big endian");

return 0;
}


817 名前: デフォルトの名無しさん 投稿日: 02/05/06 16:39
ccとgccの違いって何かあるんですか?


818 名前: デフォルトの名無しさん 投稿日: 02/05/06 16:41
>>817
ただの商用Cコンパイラか GNUのコンパイラ集のフロントエンドかのちがい。


819 名前: デフォルトの名無しさん 投稿日: 02/05/06 16:46
>>818
ということは、機能的な違いとかいうのはないんですか?


820 名前: デフォルトの名無しさん 投稿日: 02/05/06 17:15
>>819
ある。


821 名前: デフォルトの名無しさん 投稿日: 02/05/06 17:44
>>814
811より退化しているな。


822 名前: デフォルトの名無しさん 投稿日: 02/05/06 18:30
>>818
その「ただの」は単なるという意味ですよね?無料じゃないですよね?
商用コンパイラって言っているし・・


823 名前: デフォルトの名無しさん 投稿日: 02/05/06 18:48
>>822
ccつっても、いろいろあるんだけど、何が知りたいのかね?


824 名前: デフォルトの名無しさん 投稿日: 02/05/06 18:57
さくらとか


825 名前: デフォルトの名無しさん 投稿日: 02/05/06 18:58
カーボンコピーとか。


826 名前: デフォルトの名無しさん 投稿日: 02/05/06 19:02
レモンとか


827 名前: デフォルトの名無しさん 投稿日: 02/05/06 19:16
call/ccとか


828 名前: デフォルトの名無しさん 投稿日: 02/05/06 19:27
クローズドキャプションとか


829 名前: デフォルトの名無しさん 投稿日: 02/05/06 19:31
クレイジーキャッツとか。


830 名前: デフォルトの名無しさん 投稿日: 02/05/06 19:56
cc-mailとか


831 名前: デフォルトの名無しさん 投稿日: 02/05/06 20:51
さつまage


832 名前: デフォルトの名無しさん 投稿日: 02/05/06 20:58
call-with-current-continuation
って本見なくても書けるようになったYO


833 名前:       投稿日: 02/05/06 21:31
         /:: .:::/:  ..::  ..  .::::: ..::::::.. .  ..  .::.. .::::::::::\
        ./.  ..:::/..:  ...::;:::::: ::::;::::::::::::::::::..::..::..:::;,、::::::;i;::::::::::::::::\
        l:::::l:::::/:::: ..:::::;;'l::::::::;'l::l::::::::;'llll::lll;,::::::::::::::;l::ll;:::lll;;::::::::::::::::/
        l::;ll::::;'::;l::::::::::;;'llll:::::;;'lll::l:::::::;'ll' l:lllllll:::::::::::::l.ll:llll::llll;;::::::::::/
        l::lll::::l:::ll::::::;;'llllll:::;;'lllll;;ll:::::;'lll' llllllllll::::::::::/ lll:lllllllllll;::::::/
        l::lll:::l:::lll::::;;'lllllll:;;'llllllllll l::;'lll',, lll lllllll;:''''/" ll llllllllllll;::::/
        l::ll:::l:::llll:::;;'llllllllllllllll,,/'''"llll'  ll lllllll::/  リ llリllllllll::/
        l::ll:::ll;lllll:llllllllllllllllll''/   l!  .ノ .lllllllレ,,;ii!!ii;; リ l lllll:/
        l::l;:::llllllllllllllllllllllllll /  ,,;;iill::   lllll '"    l ノ .llll/
        l;::::lllllllllllllllllllll `ll._,;;iii!!''゙     リ       .l  レ
        .,'::::lll、⌒゛llllllll  "''         >     l
        ;::::::lllll、 ,,-;lllllll                  ノ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ;::::::::lllllll\._llll::l、          ー'    /  <  Cなんて、覚えてもクソだ〜
       .;:::::::::lllll:llllllllllll:l::l\.             /.ll::;    \_________
       ;:::::::;:::llll::lllllllllll:l::lllllll` :          /:l ll:::;
      ;::::::::l::::lll:::llllllllll::l::lllllll        、、. _,,/l::::::l lll:::;
      ,:::::::::ll:::::l::::::llllllll::l::lllllll         lllllllllll;:::::;:llll::l:;
     ,:::::::::lll:::::::::::::::llllll::l::llllll        llllllllllll;::::llllll::l:;
     .,::::::::::l':::::::::::::::;'lllll::l::llllll        lllllllllllll;:::llllll::l:;
    .,::::::::::::::::::::::::::;;'lllllll::l::llノ        llllllllllllll::llllll::l:;
    ;;::::::::::::::::::::::::;;'lllllllllll:/         l \lllllllllllll:::l:;;


834 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:05
>>833
あなたの大好きなVB、後半年もすれば消滅しますよ。


835 名前: 603 投稿日: 02/05/06 22:23
関数の引数として,ColorR,ColorG,ColorBとして渡しているのですが,
例 ShowText(ColorR,ColorG,ColorB);
  ShowText(255,255,255);

これを#defineを使って,WHITETEXTやREDTEXTなどとし,
  ShowText(WHITETEXT);
として渡したいのですが,どのようにしたらいいでしょうか?
今は,
void ShowText(intColorR,int ColorG,int ColorB)
{
 SetTextColor(hdc,RGB(ColorR,ColorG,ColorB));
}

というふうに使っています


836 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:24
#define WHITETEXT 255,255,255



837 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:25
>>835
sprintfやwsprintfとどう関係あるんだろう・・・名前の消し忘れか?

#define WHITETEXT 255,255,255
でいいんじゃない?


838 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:26
>>835
列挙型って言うのがあるけどこの場合は使えないからそれでも良いかなと。
出来ればJavaのColorみたいなクラス作ってstaticメンバ変数で表現するのが良し。

class color
{
public:
static int Black = 0;
static int White = 255;
}



SetTextcolor(color.Black);

そこまでしなくてもC++は#defineとするよりconstを使う方が推奨されてた気がする。



839 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:27
>>838
ここはCスレ


840 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:29
>>838
>>839
ワラタ


841 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:29
>>839
おおボケでした。去ります・・・。


842 名前: 835 投稿日: 02/05/06 22:30
>>836-839
参考になりました     


843 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:33
gccかVisual C++6.0Proでプリプロセッサだけにかけることはできますか?
コンパイルのみというのはできるのですが。


844 名前: 843 投稿日: 02/05/06 22:34
sageてしまった・・


845 名前: 投稿日: 02/05/06 22:35
>>794
doubleとかlong(使う構造体のメンバん中で一番長いやつ)に合わせて
charとかshortとかで穴を埋めるのが一般的
構造体でキャストしてかぶせてmemcpyっていうのが楽なのはたしかだけど、
移植性を考えると、穴とか考えずに、
設定するときに一々メンバにアクセスしてやるのが筋と思う



846 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:35
/E
-E



847 名前: 844 投稿日: 02/05/06 22:37
>>846
それは私に対するレスですよね?
やってみます。
ありがとうございました。


848 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:46
ANSIじゃmemcpyじゃなくて構造体をまるまる代入認めてるんじゃないの?


849 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:50
多バイトのデータ型を奇数アドレスに置いてアクセスするとバスエラーを
起こすハードウェアもあるから、かならずしも構造体をパックできるわけ
ではないです。


850 名前: デフォルトの名無しさん 投稿日: 02/05/06 22:51
>>845
packedって無かったっけか?Cって。


851 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:10
なんでそんな時代遅れの話を...父さん...



852 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:17
>>850
レイアウトを制御することはできぬ


853 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:17
>>851
なんの、この組み込み回路ではCがまだまだ現役だ。
そしてその回路を付けたガンダ(略

GP-01FbのファームウェアもCで書かれていたよ。
って言うか一昔前のアニメのPCのディスプレイにはよくCのリストが写ってたね。



854 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:25
>853
ダイナマンではMSXのソースが流れてた。
SCREENやDEFINT A-Z、OPEN"GRP:"、LINE、などなど


855 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:27
三四郎はBASICだ


856 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:35
int strcmp(const char str1[100],const char str2[100])
{
int i=0,j=0;
while(str1[i]==str2[j]){
if(str[i]=='\0')
return 0;
i++;
j++;
}
reutrn(i-j);
}

この関数の返す値が必ず0になります。
どうしてでしょうか?
環境はLinuxです。


857 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:36
そりゃあ iとjがいつも同じ値をもってるから0しか返らないだろうな


858 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:39
>>856
質問する前に気付かんか?
本当に君が書いたソースか?


859 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:39
>>856
たぶんあなたがやりたい事は

return str1[i] - str2[j];


860 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:42
つっこみどころ満載なんだが・・・
if(str[i]=='\0')
のstr[i]ってどこからでてきたの?



861 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:47
>>859
だがたぶん>>856が*本当に*やりたいことは
if(str1[i]=='\0')

return (str1[i] & 0xff) - (str2[j] & 0xff);



862 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:48
>>857,858,859
即レスthx!

参考書みながらレポート課題解いてます。
内容あんまし理解してません。すみません(^_^;)

>>860
str1[i]のまちがいですね・・・・(汗



863 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:52
>>1嫁バカ。
課題は別スレに逝け。


864 名前: 858 投稿日: 02/05/06 23:53
>>862
>内容あんまし理解してません。


865 名前: 858 投稿日: 02/05/06 23:54
間違えた

>>862
>内容あんまし理解してません。
そうだろうね。
結果よりも、理解する方に重点を置いたほうがいいよ


866 名前: デフォルトの名無しさん 投稿日: 02/05/06 23:55
不定期告知。宿題は宿題スレに。

宿題、手伝おっか?
http://pc.2ch.net/test/read.cgi/tech/1011722640/


867 名前: 856 投稿日: 02/05/07 00:01
ご親切にどうもです。
次から宿題スレで聞きますね。


868 名前: デフォルトの名無しさん 投稿日: 02/05/07 00:12
>>867
出来れば次からは聞かずに解決してホスィ。


869 名前: デフォルトの名無しさん 投稿日: 02/05/07 02:26
>>856
渡す引数に気を付ければ良いだけだが
わざわざ、100という定数を使ってるのだから
100字以上の処理はして欲しくないなと思ったり
NULLの時の処理も考えた方が良いのではないかと思ったり


870 名前: デフォルトの名無しさん 投稿日: 02/05/07 02:26
今868がいいこと言った


871 名前: デフォルトの名無しさん 投稿日: 02/05/07 03:56
Linuxで #include <stdio.h> main() { char a[10000000]; printf ("\n"); } みたいな大きい配列をとるとSegmentation faultになってしまいます。 mallocでは確保できるんですけど。 なんでか教えてください。


872 名前: デフォルトの名無しさん 投稿日: 02/05/07 04:03
mallocで確保する


873 名前: デフォルトの名無しさん 投稿日: 02/05/07 04:22
なんでC FAQよまねえのこいつら



874 名前: デフォルトの名無しさん 投稿日: 02/05/07 04:39
グローバルで確保も可。
mallocの方がベターだが。


875 名前: デフォルトの名無しさん 投稿日: 02/05/07 05:23
普通はstaticにするだろ。


876 名前: デフォルトの名無しさん 投稿日: 02/05/07 06:00
あと2年はmallocでしょうと言ってみたり


877 名前: デフォルトの名無しさん 投稿日: 02/05/07 06:07
>>871
不思議だね


878 名前: デフォルトの名無しさん 投稿日: 02/05/07 06:15
>>871
mallocではセグメト分割を考慮したメモリの割り当てが行われるのかも。
配列だとそれができないとか…


879 名前: sage 投稿日: 02/05/07 06:17
つっこむのも飽きた。
誰かかわりにやってくれ。



880 名前: デフォルトの名無しさん 投稿日: 02/05/07 06:20
スタック


881 名前: デフォルトの名無しさん 投稿日: 02/05/07 06:26
オーバフロー


882 名前: デフォルトの名無しさん 投稿日: 02/05/07 06:43
10000000と言う数字が、Linux(コンピュータ)にとって読み辛いんですよ
だから、少し無駄でも1024*1024*10のように
Linuxにとって読み易い数字にしてやれば、エラーが少なくなりますよ


883 名前: デフォルトの名無しさん 投稿日: 02/05/07 07:31
>>882
パソコンなめんな。


884 名前: デフォルトの名無しさん 投稿日: 02/05/07 07:54
>>883
禿胴
>>882はDQNのレベルが神域に達しているな。


885 名前: デフォルトの名無しさん 投稿日: 02/05/07 07:56
>>883-884
ネタだと思うが。

と言ったら>>885=>>882と言われてしまうのだろうか。


886 名前: デフォルトの名無しさん 投稿日: 02/05/07 07:59
>>885
実は>>882-884は全てネタという罠。


887 名前: デフォルトの名無しさん 投稿日: 02/05/07 08:08
>>882=>>886
必死だな(>>885は大人の意見なので除外)。


888 名前: デフォルトの名無しさん 投稿日: 02/05/07 08:43
ハァ?


889 名前: デフォルトの名無しさん 投稿日: 02/05/07 09:31
>>888
同意


890 名前: デフォルトの名無しさん 投稿日: 02/05/07 10:57
C言語で記述されたプログラムをバリバリ書けなくても せめて読めるようになるためにはどうしたらいいですか?
プログラミング言語Cって本をを買えば読めるように
なりますか?



891 名前: デフォルトの名無しさん 投稿日: 02/05/07 11:04
>>890
書かなければ読めない。
本を丸暗記なら別だけどな


892 名前: デフォルトの名無しさん 投稿日: 02/05/07 11:19
>>890
プログラミング言語の学習は、外国語の学習と同じ。読み、かつ書かなければ
覚えられない。


893 名前: デフォルトの名無しさん 投稿日: 02/05/07 11:47
耳学問では限界がありますからね。
百聞は一書きにしかず、てなところ。


894 名前: デフォルトの名無しさん 投稿日: 02/05/07 12:01
Segmentation faultのエラーが消えません
せめて意味だけでも教えてください


895 名前: デフォルトの名無しさん 投稿日: 02/05/07 12:03
>>894
ヘルプに載ってないの?


896 名前: デフォルトの名無しさん 投稿日: 02/05/07 12:12
>>894
まぁ普通は
int *p;
*p = 100;
とかやった時だね。ポインタがNULLのままで初期化されてないんだよ。


897 名前: 896 投稿日: 02/05/07 12:15
あ、嘘を書いた予感・・・。
突っ込まれる前に訂正。
決められた配列の範囲の外のデータを操作しようとした、ということ。
int array[1000];
hoge = array[3000];
とかやると起こる。


898 名前: デフォルトの名無しさん 投稿日: 02/05/07 12:22
>>894
static char a[10000000]; とでもしてみろ。
というか、過去ログ嫁。


899 名前: デフォルトの名無しさん 投稿日: 02/05/07 12:47
>>896
それだとコンパイル時に警告がでるはずだから、
普通は配列の大きさを越えて書き込んだ時だろ。
あとは二度freeとか。


900 名前: 899 投稿日: 02/05/07 12:48
897を読み忘れた(汗


901 名前: 894 投稿日: 02/05/07 12:49
説明が遅れました。
当方Linuxでプログラミング中です。
配列の操作はしていないループの中でエラーが出ているようです。
ファイルアクセス中またはファイル終端時が問題のようです。
午後から、もうしばらく頑張ってみますが、
それでも分からない時は、また質問にきます。
よろしくおねがいします


902 名前: デフォルトの名無しさん 投稿日: 02/05/07 12:50
>>901
だからスタックオーバーフロウだってば!
あなたのシステムではそんなにスタックにつめないの!


903 名前: デフォルトの名無しさん 投稿日: 02/05/07 12:53
しっかし10MB近くもスタックに取ろうとするなんて強者だな。


904 名前: デフォルトの名無しさん 投稿日: 02/05/07 12:59
ループの中で?
Stack Overflowって変数の宣言時(領域確保時)に起こるんじゃないの?


905 名前: デフォルトの名無しさん 投稿日: 02/05/07 13:02
>>904
他の関数をコールしようとした途端にひっかかる可能性もある罠。


906 名前: デフォルトの名無しさん 投稿日: 02/05/07 13:04
再帰が深くても起こるんじゃねーか?


907 名前: デフォルトの名無しさん 投稿日: 02/05/07 13:08
>>905
ああそうか。仮引数でアウトってこともあるか。


908 名前: 894 投稿日: 02/05/07 13:35
スタックを増やしたのですが、やはり同じところで
エラーが出ます。
ループ中の処理が終了した時に
Segmentation faultが表示されます。
ファイル操作で上記のエラーが出るということはないですよね?


909 名前: デフォルトの名無しさん 投稿日: 02/05/07 13:40
あんたのコードがくさってるってこと。
どこで segmentation fault がでるか調べてこのスレに書きなさい(1問5点)


910 名前: デフォルトの名無しさん 投稿日: 02/05/07 13:41
ファイルポインタ
FILE *fp
が正しく取れているか、クローズしてるか確認しる!
短いソースなら張ってみそ。



911 名前: デフォルトの名無しさん 投稿日: 02/05/07 13:43
後は、printf()とかsscanf()で、引数の個数が正しく合っているかも確認しる!


912 名前: 894 投稿日: 02/05/07 13:57
問題のループです。
while( feof(fp) == 0 )
{

printf(" ");

while( (c = getc(fp)) != ',' )
{

name[i] = c;

printf("%c",name[i]);
i ++;

}

printf(" ");

fscanf(fp,"%f%*c%f%*c%f%*c%f%*c%f%*c",&eigo,&sugaku,&kokugo,&rika,&syakai);

printf(" %.0f",eigo);
printf(" %.0f",sugaku);
printf(" %.0f",kokugo);
printf(" %.0f",rika);
printf(" %.0f",syakai);

/*個人平均点*/
person_average = eigo + sugaku + kokugo + rika + syakai;
printf(" %.1f\n",person_average / 5);

n ++; //人数加算

/*各教科合計*/
goukei_eigo += eigo;
goukei_sugaku += sugaku;
goukei_kokugo += kokugo;
goukei_rika += rika;
goukei_syakai += syakai;

i = 0;

printf("OK");

}



913 名前: デフォルトの名無しさん 投稿日: 02/05/07 13:58
>>912
変数の宣言も見せろYO!


914 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:06
iの初期化はしてるのか?


915 名前: 913 投稿日: 02/05/07 14:06
>>912
ん?fscanfの引数は少なくないか?



916 名前: 915 投稿日: 02/05/07 14:07
×引数は
○引数が


917 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:08
>>915
%*cでホワイトスペース文字を読み飛ばしてるんだろ。


918 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:09
912
while( (c = getc(fp)) != ',' ループの外に
name[最後+1]='\0';ある?



919 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:10
>>917
そうなんだ。scanfあまり知らないもので・・・
無知でスマソ


920 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:10
while( (c = getc(fp)) != ',' ) {
こいつも危ない。cがEOFでないか、確認するように変更。


921 名前: 894 投稿日: 02/05/07 14:13
失礼しました。
FILE* fp;

//個人データ
char name[50];
float eigo,sugaku,kokugo,rika,syakai;
float person_average = 0;

//計算用
float goukei_eigo = 0;
float goukei_sugaku = 0;
float goukei_kokugo = 0;
float goukei_rika = 0;
float goukei_syakai = 0;

int n = 0;//人数
char c;
int i = 0;



922 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:17
>>921
printf("%s",name)とかputs(name)とかやっているところない?


923 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:19
なんのためにname[]を用意して名前をいれているのかわからんな。


924 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:20
name[]は50文字以内は確実か?
一応、ループ中にiが50を超えててないか確認するべし。
実際は文字列?として処理してそうだから49文字を超えないように。


925 名前: 894 投稿日: 02/05/07 14:22
遅れましたがテストデータです。

遠藤和輝,89,20,100,60,15
田中章三,68,50,73,49,90
小田一正,100,100,30,100,20
今田耕治,90,20,5,90,100
吉井一哉,100,100,100,100,100
野比のび太,0,5,0,4,7
おすぎ,73,45,61,60,58
~


926 名前: 894 投稿日: 02/05/07 14:24
>>922
それはありません。
そこには注意しました。


927 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:28
2バイト文字を含むデータか・・・。
一文字ずつ読み出すのは厄介だぞ。
2バイトめに","があるかもしれない。とか言ってみるテスト。


928 名前: 894 投稿日: 02/05/07 14:30
実行結果です。

成績表

氏名 英語 数学 国語 理科 社会 平均
遠藤和輝 89 20 100 60 15 56.8
OK 田中章三 68 50 73 49 90 66.0
OK 小田一正 100 100 30 100 20 70.0
OK 今田耕治 90 20 5 90 100 61.0
OK 吉井一哉 100 100 100 100 100 100.0
OK 野比のび太 0 5 0 4 7 3.2
OK おすぎ 73 45 61 60 58 59.4
Segmentation fault (core dumped)




929 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:36
>>928
OKの個数が6個。データが7個。
なぜ合っていない?
while( (c = getc(fp)) != ',' ) {
おそらくここで無限ループに近い状態になっている。
もう一度書くが、getc()の値がEOFなのに無理やり続行して
iの値が50を超えていると思うが。




930 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:44
データファイルの最後の改行文字を読み込んで失敗しているんだよ。
この手の処理は1文字ずつ読み込むのではなく、1行単位で読み込んで
sscanf()を使う方がいい。
その方が楽だよ。


931 名前: 894 投稿日: 02/05/07 14:46
>>929
OKの個数が合わないのも原因不明
本来ならおすぎの下にも表示されるはずですよね?

while( (c = getc(fp)) != ',')ですが
これで名前とコンマを区切っているつもりです。
その後の数字データはfscanfで一行だけ取るようにしたつもりです。

やっぱ駄目ですか?


932 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:48
ファイルからいきなり読み込むfscanf()
はお勧めできないかな。
fgets()で1行を読み込んで、
それからsscanf()で内容を取り出すようにしたらいいよ。
最初のfgets()でEOFを確認する、と。

がんがってね。


933 名前: 894 投稿日: 02/05/07 14:50
>>930
最初は一行ずつ読み込んでいたのですが指定がありデータはコンマで
区切れと言われてしまい一行ずつ読み込もうとすると
名前とコンマが一緒に読まれてしまうんです。


934 名前: デフォルトの名無しさん 投稿日: 02/05/07 14:58
カンマで区切れか・・・。TABだったら楽なんだがな。
いんちきだが、読み込んだ1行文字列をサーチして、
全てのカンマを空白に変換してしまう。
で、その後sscanf()で一発で読み込む、とかはどうだ?


935 名前: 894 投稿日: 02/05/07 15:05
>>934
それは以前、試したのですが駄目だと言われたことと
上の実行結果に表示されてるsegmentation faultが
出てきてしまったんですよね。

このエラーだけでも消せないでしょうか?


936 名前: デフォルトの名無しさん 投稿日: 02/05/07 15:07
お前、俺のレスを全然読んでないな。
iが50を超えたら強制returnするようにしろ。
もう書かね。


937 名前: 894 投稿日: 02/05/07 15:08
>>932
無知な質問で申し訳ないのですがsscanf()の引数は
どのように入力すればよいのでしょう?



938 名前: デフォルトの名無しさん 投稿日: 02/05/07 15:15
>>934
カンマでも、こうすれば出来るんじゃないの?

char *s = "aaa,bbb,ccc";
int a[10], b[10], c[10];
sscanf(s, "%[^,],%[^,],%[^,]", a, b, c);
printf("%s %s %s\n", a, b, c);



939 名前: 894 投稿日: 02/05/07 15:26
>>936
申し訳ありません。
見ていましたが試している途中だったことと
ループの下にも処理があるので迷っていました。
決して無視していたわけではありません



940 名前: 894 投稿日: 02/05/07 15:29
>>938
%[^,]の後にはsやcなどはいらないのですか?
以前それに近い事を試したのですが無限処理になってしまいました。


941 名前: 938 投稿日: 02/05/07 15:37
間違えた。
int a[10], b[10], c[10];
これは
char a[10], b[10], c[10];
こうだった。

>>940
VCで動作確認したら動いてるけど?
(おれもscanf()は使わないんで、自信ないけど)


942 名前: デフォルトの名無しさん 投稿日: 02/05/07 15:39
(void)fprintf(....);
っていうのを見たんですが、この (void) というキャストは何か意味があるん
ですか?


943 名前: デフォルトの名無しさん 投稿日: 02/05/07 15:42
feof()は直前の読み込みでEOFがあらわれたかを返す。
今回、読み込みにfscanf()を使っているため、
改行が取りこぼされている。なのでfscanf()では
EOFに達しない。したがって、feof()は常に0を返し、
その結果ファイルの終端を検出することができない。
# if (c='\n') puts("\\n");を内側のwhileの中に入れて確認できる
ってとこかな?


944 名前: デフォルトの名無しさん 投稿日: 02/05/07 15:43
>>942
lintを騙す


945 名前: ◆GpSwX8mo 投稿日: 02/05/07 15:46
こんにちは。
某大学で物理を勉強してます。
自分は、日本語や数学を使って勉強するように、
C言語でプログラミングすることで波動方程式や熱伝導方程式を
勉強しようと思ってます。
教授の話とかきいてても、何かごまかされたような
気になるし、自分で勉強していてもホントに理解できているのか
よくわかりません。Cでプログラミングし、コンパイルできるようになることで
ごまかしなく方程式を理解できるんじゃないかなと思ったからです。
そこで、教えてもらいたいことは実際に物理に使うような方程式を
プログラミングしているHPを教えてもらいたいということです。
お願いします。


946 名前: デフォルトの名無しさん 投稿日: 02/05/07 15:46
次スレのテンプレでふ。
アマゾンへのリンクに個人IDがついてたので削除しました。
どなたかスレ立てよろしく。

------

漏れは38才、21年間プログラムを一生懸命作ってきた。
いろいろな言語を極めたが、一番手になじむのはCだった。
Cのことならぜんてわかるから、疑問な点があったら漏れに聞け。

だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。

・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c Frequently Asked Questions
http://www.eskimo.com/~scs/C-faq/top.html

Cプログラマならこれを買っとけ。
・プログラミング言語C(K&Rと呼べば通だ)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/

K&Rで挫折するような救いがたいやつはこれでも読め
・作ってわかるCプログラミング(アヒル本と呼べば通だ)
http://dennou.gihyo.co.jp/books/void_c/
http://www.amazon.co.jp/exec/obidos/ASIN/477411328X/

推薦図書/必読書のためのスレッド PART3
http://pc.2ch.net/test/read.cgi/tech/1016722820/

・前スレ C言語なら、俺に聞け! <18>
http://pc.2ch.net/test/read.cgi/tech/1020260813/


947 名前: デフォルトの名無しさん 投稿日: 02/05/07 15:51
>>946
コンパイラへのリンクもヨロシク


948 名前: デフォルトの名無しさん 投稿日: 02/05/07 15:57
Win32用の開発環境のみ。

gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/

------------------------ ライセンスや機能などに問題あり ---------------------
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html



949 名前: デフォルトの名無しさん 投稿日: 02/05/07 15:59
個人的にはこれ好きなんだけどどうよ?
コンパイラじゃないけど。
http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html


950 名前: 894 投稿日: 02/05/07 16:05
ありがとうございました。
無事解決できました。御足労ありがとうございました。



951 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:07
>>945
ここはどう?
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/

結局、方程式を理解してないとプログラミングをする事も出来ないような気がするけど…
まあ自分の好きなように勉強しれ。


952 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:17
どうでもいいが、何でスレ立ての名前が糞壁なんだ?


953 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:18
これはどなの?
http://www.bloodshed.net/index.html


954 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:21
流行ってたからその勢いで付けたんだろ。
旬を過ぎるとしらけるよね。


955 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:22
948
NULLとmainの戻り型の議論を禁止しなくていいのだろうか・・・


956 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:27
>>953
それはgccだって


957 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:30
>>942
明示的に戻り値を捨てるってことだな。


958 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:34
>>946
>>2」をつけないとせっかく2に書いても見てくれないね。


959 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:38
http://pc.2ch.net/test/read.cgi/tech/1020756993/l50
C言語なら、俺に聞け! <19>


960 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:49
>>959
スレ立て乙〜


961 名前: ◆GpSwX8mo 投稿日: 02/05/07 16:50
>>951
どもです。m(__)m


962 名前: デフォルトの名無しさん 投稿日: 02/05/07 16:52
>>961
どこかで見た覚えのあるトリップだな。
age!


963 名前: デフォルトの名無しさん 投稿日: 02/05/08 00:14
>>962
「たらちん」?
「偽下部恵子」?


964 名前: ◆GpSwX8mo 投稿日: 02/05/08 00:31
多分パスワードが1じゃないかな・・・


965 名前: ◆GpSwX8mo 投稿日: 02/05/08 00:35
ほんと?


966 名前: ◆GpSwX8mo 投稿日: 02/05/08 01:15
kore


967 名前: ◆GpSwX8mo 投稿日: 02/05/08 01:23
まじ?


968 名前: GpSwX8mo ◆GpSwX8mo 投稿日: 02/05/08 01:38





969 名前: ◆k4PcAe16 投稿日: 02/05/08 08:02
#


970 名前: ◆kYxlAbaw 投稿日: 02/05/08 08:02
ヽ(`Д´)ノ


971 名前: ◆GpSwX8mo 投稿日: 02/05/08 16:46
ほんとだ!


972 名前: ◆GpSwX8mo 投稿日: 02/05/08 16:55



973 名前: デフォルトの名無しさん 投稿日: 02/05/08 16:56
うめうめ


974 名前: ◆3kGwLBbQ 投稿日: 02/05/08 17:08
#printf()


975 名前: ◆iooAa9/g 投稿日: 02/05/08 17:08
#main()


976 名前: ◆k4PcAe16 投稿日: 02/05/08 18:25
たてたて


977 名前: ◆k4PcAe16 投稿日: 02/05/08 18:26
969は#2ですな(w


978 名前: ◆k4PcAe16 投稿日: 02/05/08 19:11
トリップテストスレですか?


979 名前: ◆L39qrqSA 投稿日: 02/05/08 19:18
#3#3


980 名前: ◆kYxlAbaw 投稿日: 02/05/08 19:19
#3


981 名前: ◆gybBZ7HI 投稿日: 02/05/08 19:19
トリップテスト


982 名前: ◆kYxlAbaw 投稿日: 02/05/08 19:20
なるほろ、最初の#が認識されるのですな。


983 名前: ◆SH/ryx32 投稿日: 02/05/08 19:20
#トリップ


984 名前: ◆ZMVdytmo 投稿日: 02/05/08 19:20
#include


985 名前: ◆gySz.mPw 投稿日: 02/05/08 19:21
#if


986 名前: ◆.yXP2vFk 投稿日: 02/05/08 19:21
#define
プログラマ板らしく



987 名前: ◆JJ4mnGoc 投稿日: 02/05/08 19:22
#pragma


988 名前: ◆CBWNO1jA 投稿日: 02/05/08 19:22
#ifdef


989 名前: ◆inFbM64o 投稿日: 02/05/08 19:23
#1000
いつのまにか1000取り合戦になっているという罠


990 名前: ◆Z/ID97yU 投稿日: 02/05/08 19:23
#void
こいつは試したくはなかったが・・・



991 名前: C ◆I1uGveKM 投稿日: 02/05/08 19:24
C#.NET


992 名前: ◆/mb/oVPQ 投稿日: 02/05/08 19:25
########


993 名前: ◆sEWmV1PI 投稿日: 02/05/08 19:25
#########
9文字連続


994 名前: ◆sEWmV1PI 投稿日: 02/05/08 19:26
##########
10文字だと


995 名前: ◆vin5/8DA 投稿日: 02/05/08 19:27
#sEWmV1PI
逆変換てすと


996 名前: ◆h.gHK9LE 投稿日: 02/05/08 19:27
mada


997 名前: ◆inFbM64o 投稿日: 02/05/08 19:28
huhuhu


998 名前: ◆WJrcyTOs 投稿日: 02/05/08 19:28
#飽きた
後はよろしく〜


999 名前: ◆sfCKEe1M 投稿日: 02/05/08 19:28
madadesu


1000 名前: ◆h.gHK9LE 投稿日: 02/05/08 19:29
#1000get



1001 名前: 1001 投稿日: Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。



2ちゃんねるは、ここのサーバを使ってるです。。。