5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C言語なら俺に聞け(入門編)Part 82

1 :デフォルトの名無しさん:2011/04/17(日) 20:17:55.24
C言語の*入門者*向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 81
http://hibari.2ch.net/test/read.cgi/tech/1301773320/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 147代目
http://hibari.2ch.net/test/read.cgi/tech/1301553333/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
★ぬるぽ。

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
http://codepad.org/

2 :デフォルトの名無しさん:2011/04/17(日) 20:22:22.31
前スレ>>997
無理にstruct tmとidとpassに分解してソートするから遅いのかな
単純にstrcmpでやったら速いみたいです

3 :デフォルトの名無しさん:2011/04/17(日) 20:23:56.50
>>2
日時、14桁の数値と見なせばそのままintに収まるんじゃない?

4 :デフォルトの名無しさん:2011/04/17(日) 20:31:32.74
>>1

5 :デフォルトの名無しさん:2011/04/17(日) 20:49:16.02
同じパソコンにおいて、CPUやメモリなどのパソコンの機器の部分を変えずに
書くプログラムだけを改良することによって格別に早いソートを作る事は可能
なのでしょうか?正しライブラリやソフトウェアは使っていいことにします。

6 :デフォルトの名無しさん:2011/04/17(日) 21:00:12.75
前スレのソートの質問者だけどここまで発展するとは思いませんでした

7 :デフォルトの名無しさん:2011/04/17(日) 21:01:47.87
全部読んで文字列ソートで十分な速さだね
ttp://codepad.org/HXDyRNHA

$ ./makepass (前スレ965のgenrandを直したやつ)
$ time ./a pass.txt > sorted.txt

real 0m1.478s
user 0m1.279s
sys 0m0.125s

この順で実行すると、計測時はキャッシュ効いた状態?効いてない状態?

8 :デフォルトの名無しさん:2011/04/17(日) 21:24:38.02
>>6
ここの住人はこういうパズル的な要素を求めているんですよ

http://codepad.org/9mCtwD1V

馬鹿正直にstruct tmとmktime()を使ってtime_tでソートしましたが十分な速度です

9 :デフォルトの名無しさん:2011/04/17(日) 21:27:32.47
1ギガのテキストのソートことやる意味がある。

10 :デフォルトの名無しさん:2011/04/17(日) 21:34:03.48
SQLServer2008でやったら0.7秒だった。

11 :デフォルトの名無しさん:2011/04/17(日) 21:35:35.06
>>8 pass2.txtの日付が全部1970-01-01<>08:59:59になるぞ

12 :デフォルトの名無しさん:2011/04/17(日) 21:36:52.09
>>5
無理
quick sort以上の速度を得ることはまず不可能
L2L3キャッシュの大きなCPUを使うと劇的にソート速度が向上する事があるが
それとこれとは話が別

13 :デフォルトの名無しさん:2011/04/17(日) 21:38:29.58
>>11
あれ?pass.txtの生成に次のプログラムを使っていますがどこかフォーマットが違いますか?

http://codepad.org/UhH1unQ9

14 :デフォルトの名無しさん:2011/04/17(日) 21:41:33.35
使ってるハードウェア(CPUとかHDDとか)のキャッシュの仕様を熟知して
アセンブラチューニングみたいなことすれば
改善程度はできるんじゃない?格別にってのはどうか知らんけど

15 :デフォルトの名無しさん:2011/04/17(日) 21:49:26.26
>>13
まずそれgenrandがおかしいから生成できない
50c50
< return about + (int)(rand() / 32768. * width);
---
> return about + (int)(rand() % width);
genrandを直して生成したやつ食わせても同じ結果だな

16 :デフォルトの名無しさん:2011/04/17(日) 21:53:58.66
>>15
おかしいなあうちの環境では動きますねえ(BCC6.3.1)
特に機種依存の場所もないし何が原因なんだろう?
日本語のコメントをしてるからかな?

17 :デフォルトの名無しさん:2011/04/17(日) 22:03:10.98
これで頼むわ。


#include <stdio.h>
#define FILENAME "pass.txt"
#define MAXFILESIZE (1<<29)
#define BUFSIZE (1<<20)

unsigned int rand_xor() { static unsigned int t, x=123456789UL,y=362436069UL,z=521288629UL,w=88675123UL;t=x^(x<<11); x=y; y=z; z=w; return w^=(w>>19)^t^(t>>8); }

void strgen( char *str, int &sz ) {
unsigned int x,n;
for(n=0; n<32 + rand_xor()%128 ; n+=6) {
x=rand_xor();
str[sz+n+0]='0'+x%64; x>>=6; str[sz+n+1]='0'+x%64; x>>=6;
str[sz+n+2]='0'+x%64; x>>=6; str[sz+n+3]='0'+x%64; x>>=6;
str[sz+n+4]='0'+x%64; x>>=6; str[sz+n+5]='0'+x%64; }
sz+=n; str[sz-1]='\n'; }

int main() {
FILE *fp = fopen(FILENAME, "wb");
int sum=0;
char *buf = new char [BUFSIZE+1]; int sz=0;
do{
if( sz+1024 >= BUFSIZE ) { fwrite( &buf[0], 1, sz, fp); sum+=sz; sz=0; }
strgen( buf, sz ); }while(sum < MAXFILESIZE);
fwrite( &buf[0], 1, sz, fp);
fclose(fp); }

18 :デフォルトの名無しさん:2011/04/17(日) 22:09:14.60
>>17
エラーが出てコンパイル出来ません

エラー E2293 pass4.c 8: ) が必要


19 :デフォルトの名無しさん:2011/04/17(日) 22:09:52.91
>>16
うち(gcc version 4.3.4 20090804 (release) 1 (GCC))だとmktimeが-1を返してた
t.tm_isdst = -1;(サマータイムなし)を指定しておかないと動かないようだ

20 :デフォルトの名無しさん:2011/04/17(日) 22:10:59.69
>>18
C++の機能使っているのでCPPの拡張子で。

21 :デフォルトの名無しさん:2011/04/17(日) 22:14:59.91
>>19
了解です
それが原因だと思います
うちのgcc4.3.2(MinGW)ではサマータイムを指定しなくても動くので
MinGWとLinuxで違うのかもしれませんね

>>20
了解です

22 :デフォルトの名無しさん:2011/04/17(日) 22:20:25.89
メモリについて教えてください。

例えば2Dスクロールゲームとかで
画面に映るステージの範囲って限られてますよね。
ドカンがあって、敵がいてみたいな。

では、画面に映ってないこれから進んでいく領域の情報はメモリに
保存されてるんですか?

23 :22:2011/04/17(日) 22:23:35.94
DirectXとC言語でゲーム作っています。



24 :デフォルトの名無しさん:2011/04/17(日) 22:29:07.10
映っている映ってないに関係なくステージ全体のマップをメモリに持っていて、
その中から映ってる分だけを画面に出します

25 :デフォルトの名無しさん:2011/04/17(日) 22:34:32.12
>>24
それはひどい、そんなひどい作り方したらメモリがいくらあっても足りねーよ、ボケ。

26 :デフォルトの名無しさん:2011/04/17(日) 22:38:12.05
ちょっとビール買いに行っていました

>>17
コンパイルして実行してみたらえらくグチャグチャな内容のランダムなテキストが
生成されましたが、これは何に使うのですか?

27 :22:2011/04/17(日) 22:42:51.49
>>25
メモリに保存されてる情報ってゲームのある瞬間において、
どのくらいの範囲までなんでしょう。
それ以外はストリームを介したバッファ領域に保存されてるんですか?
それともHDD?

28 :デフォルトの名無しさん:2011/04/17(日) 22:48:12.58
>>27
あのさ、プラットフォームが何かにもよるよね。
論理的に考えれば少なくともメモリに置いとくのは
キャラクタのいる画面とその周囲の画面分でいい事ぐらいわかるだろふつう。
(4画面一気に飛び越えたりとかしないかぎり。)
あとはロードにどんだけ時間がかかるかでどれだけ先読みするか決めりゃいいだけ。

ていうかスレ違いだから空気読んで。

29 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/17(日) 22:48:19.18
ステージ毎で問題あるの?

30 :デフォルトの名無しさん:2011/04/17(日) 22:50:14.88
>>26
ランダムな文字列で速いソートを作ろうという意図。

31 :デフォルトの名無しさん:2011/04/17(日) 22:53:46.33
>>22
画面に映ってなくても少し先までの画面はすぐ表示できる状態でメモリに入れてる
少なくとも自分の知ってるNintendoDSのVRAMはそんなふうだった

>>23
環境というよりも、どういう実装をするかによるだけなんじゃないかな

32 :デフォルトの名無しさん:2011/04/17(日) 22:55:46.70
>>29
50000x2000 とか?
100Mピクセルだから
フルカラーとして 300MB か 400MB
メインメモリに乗せるなら大丈夫だね

33 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/17(日) 23:00:05.58
画面に描画する色情報ってことなの?
マップチップのIDとかのことだと思ったんだけど

34 :デフォルトの名無しさん:2011/04/17(日) 23:10:43.17
ってことは、メモリの量は瞬間瞬間でリセットされるから、瞬間における
主人公の動作を快適にするのにメモリを使いまくっていいってことですか?

35 :デフォルトの名無しさん:2011/04/17(日) 23:11:31.29
>>30
ああ了解です
じゃあプログラムを完璧に作り直す必要がありますね

Cと普通のstrdup()で確保した文字列のソートと、C++でvectorに突っ込んだ
stringをsortアルゴリズムでソートして比較したりいろいろ楽しめそうです

C++の場合もstringのポインタをunique_ptrに入れて突っ込んでソートした方が
速いでしょうね

36 :デフォルトの名無しさん:2011/04/17(日) 23:22:20.38
>>35
なによりもまず500MBの入力の扱いを考えるのが最初だと思うんだが

37 :デフォルトの名無しさん:2011/04/17(日) 23:28:37.50
入力部分はiostreamよりcstdioの方が速いですね

38 :デフォルトの名無しさん:2011/04/17(日) 23:28:39.46
つかコード書いたファイルが1mbくらいあったんだがでかすぎワロタww
ソースコードだけで1mbってでかすぎないか?

39 : 忍法帖【Lv=13,xxxPT】 :2011/04/18(月) 00:38:37.08
やれやれ、賑わっていると思ったら馬鹿自慢かよ。スレタイ位見てから馬鹿やれよな

40 :デフォルトの名無しさん:2011/04/18(月) 01:12:59.59
馬鹿と言ってる奴が一番馬鹿という法則

41 :デフォルトの名無しさん:2011/04/18(月) 07:07:40.17
>>16
http://hibari.2ch.net/test/read.cgi/tech/1301773320/967 だけど、
return about + (int)(rand() / (double)RAND_MAX * width);
こういうことがしたかったんじゃないの?

42 :デフォルトの名無しさん:2011/04/18(月) 07:15:10.84
ああ、もちろん、>>15で必要十分です

43 : 忍法帖【Lv=14,xxxPT】 :2011/04/18(月) 07:51:26.75
私が一番馬鹿でいいからこのスレでやるなってばさ。
それと、どうせやるなら測定条件をはっきりさせなきゃ意味ないじゃん囧

44 :デフォルトの名無しさん:2011/04/18(月) 08:11:01.54
ほっほっ

45 :デフォルトの名無しさん:2011/04/18(月) 09:21:13.74
測定条件があいまいなのがいいんじゃないか
最初から古いPCとか、そこそこのマシンとかいう表現されてる時点でわかるだろ

46 :デフォルトの名無しさん:2011/04/18(月) 10:47:45.43
>>41
ええそうです。だからわざと32768.と実数で割っているのです。

47 :デフォルトの名無しさん:2011/04/18(月) 12:39:32.21
>>46
肝要なのは、なぜ32768なのかってところなんだが。
randの結果が1000000だった時どうなるかね。

48 :デフォルトの名無しさん:2011/04/18(月) 12:43:27.64
>>47
済みません、間違いに気付き(double)RAND_MAXと直しました。

49 :デフォルトの名無しさん:2011/04/18(月) 12:49:42.73
>>48
気づいた上で、>>15よりも優れている点は最下位ビットを使用することについての懸念から、ですかね。

50 :デフォルトの名無しさん:2011/04/18(月) 12:51:05.52
で?ランダムなデータのリストを作りたいのか、それともリストをソートするプログラムを作りたいのかはっきりしろやw


51 :デフォルトの名無しさん:2011/04/18(月) 12:54:28.60
>>17
これをいかに速くソートするか。読み込みから書き込み終了まで。



52 :デフォルトの名無しさん:2011/04/18(月) 13:47:57.91
巨大ファイルのソート方法。

行の先頭文字ごとに複数のファイルへ分類する。

それぞれのファイルをソートして連結すれば終わり。

各ファイルのサイズが均一になるように、サンプルを取って分割区間を決める。

53 :デフォルトの名無しさん:2011/04/18(月) 14:07:17.87
>>52
それだと
2011-1-3〜
2011-1-6〜
2011-1-1〜
2011-1-2〜
2011-1-7〜
2011-1-5〜

で2011-1-2〜の箇所で半分に分かれた時
2011-1-1〜
2011-1-3〜
2011-1-6〜
2011-1-2〜
2011-1-5〜
2011-1-7〜
ってなっちゃうよ?



54 :デフォルトの名無しさん:2011/04/18(月) 14:14:49.03
>>53
違うぞ。例えばファイル内容がこうだとしよう。

b****
c****
a****
b****
a****
c****
c****

そしたらファイルをよみつつ、ファイルa.dat、b.dat、c.datへ次のように書き出す。
a.dat
a****
a****

b.dat
b****
b****

c.dat
c****
c****
c****


55 :デフォルトの名無しさん:2011/04/18(月) 14:17:42.90
.datだってよw馬鹿かこいつ。。.txtで充分だろうに。カッコばっかだな。
書き出すってこと自体アホそのものだからどうでもいいが。

56 :52:2011/04/18(月) 14:19:43.82
書き込みバッファを用意すれば読み書きがシーケンシャルでプレのソートが行える。
工夫はどの区間で分類するか決める点。
メモリ上でソートするには、せいぜい30メガ程度に抑えた方がいい。各ファイルがその程度になるように分類。
大きすぎても、小さすぎても効率が落ちる。

57 :52:2011/04/18(月) 14:22:36.40
>>55
テキストのまま書き出すのはアホ。改行の区切り位置は、初めの読み込みで分かっている。
区切りを覚えておきつつ、データを圧縮して書き出せば、ロード時間が減らせるむ。

58 :デフォルトの名無しさん:2011/04/18(月) 14:23:45.39
rand()を使うときは上位ビットをとるとか工夫しないで
rand()%nでいいんじゃないの?
最近の(とういうかだいぶ前から)処理系は下位ビットだから
極端に周期が短いとかないでしょ。
>>41 も本当は
return about + (int)(rand() / ((double)RAND_MAX+1) * width);
だろうし、変に工夫してバグってる例をよく見る。

59 :デフォルトの名無しさん:2011/04/18(月) 14:27:33.70
>>58
なんで1足すの?

>>55
汎用機は一時ファイルの山ぞ。

60 :デフォルトの名無しさん:2011/04/18(月) 14:27:50.08
>>57
おまえアホだろ、バイナリデータだろうが.txtで書きだしゃいいんだよ。バカジャネーノ

61 :デフォルトの名無しさん:2011/04/18(月) 14:29:59.80
拡張子がファイル形式を決めてると思ってるアホがいるな

62 :デフォルトの名無しさん:2011/04/18(月) 14:30:10.27
>>59
なんでって、>>15の下と同じ挙動でいいんでしょ?

63 :デフォルトの名無しさん:2011/04/18(月) 14:30:35.33
そもそも一様じゃない時点で>>15に劣る

64 :デフォルトの名無しさん:2011/04/18(月) 14:32:53.23
>>62
day = genrand(1, 31);
hour = genrand(0, 23);
こう使われてるから関数の定義があいまいなんじゃないかな

65 :52:2011/04/18(月) 14:34:05.62

http://fallabs.com/mikio/tech/promenade.cgi?id=89
特筆すべきは二点で、一点目はLZOは半分以下に圧縮しているにもかかわらず
ほとんど時間的オーバーヘッドがかかっていないこと。
二点目はLZMAの圧縮処理は多大な時間的オーバーヘッドがかかっているが、
10分の1にまで圧縮できるということ。ZLIBはそれらの中間的な特性を示す。

http://alpha.mixi.co.jp/blog/?p=191
圧縮をするとしないとではデータベースのサイズが全然違うということはおわかりいただけると思います。
ZLIBだと43.7%、BZIP2だと39.1%、LZMAだと37.5%に圧縮できているわけです。
Deflateだと更新処理は195%の時間がかかりますが、検索処理は138%で済んでいます。
BZIPやLZMAはそれよりも空間効率重視だということがわかります。
LZMAはBZIP2より圧縮率が高く、探索もBZIP2よりも高速であることが確かめられました。
逆にLZOは空間効率はそれほど向上しませんが、更新処理は121%、検索処理は114%の時間で済むことが確かめられました。


66 :デフォルトの名無しさん:2011/04/18(月) 14:35:00.52
>>65
脂汗が出てるゾ

67 :52:2011/04/18(月) 14:40:03.56
一端ファイルへ分類しようとするのは、元のサイズが100ギガ以上とか巨大なケース。
これだとコピーするだけで時間食う。IO速度のため、1/3〜1/2にでもなったらそれだけ速い。


68 :デフォルトの名無しさん:2011/04/18(月) 15:02:54.37
>>55
まさかとは思うが拡張子とファイル編成が無関係なことくらい知ってるよな?

69 :デフォルトの名無しさん:2011/04/18(月) 15:12:33.32
ソートの話題で恐縮ですがサマータイムについてご教授お願いします
東証では7/1〜9月末までサマータイム導入を決めたそうですが
時刻の差が1時間である場合とします。
プログラムで現在時刻を表示させたいのですが、7/1のAM2時になったら時刻に1時間プラスして、
10/1のAM3時になったら1時間引くだけでよいのでしょうか?

70 :デフォルトの名無しさん:2011/04/18(月) 15:14:23.11
サマータイム、実にタイムリーで興味がある話題である

71 :デフォルトの名無しさん:2011/04/18(月) 15:36:18.31
>>69
東証のあれは別に時計は変えないんじゃないの?

72 :デフォルトの名無しさん:2011/04/18(月) 15:37:51.53
>>68
>>61=>>55

73 :デフォルトの名無しさん:2011/04/18(月) 15:39:52.01
>>69
OSがサマータイム対応でその設定がされていれば難しいこと考えずlocaltimeでいいはず

74 :デフォルトの名無しさん:2011/04/18(月) 15:42:02.83
日本で急遽サマータイム導入したときMSは急遽パッチく作るのか?

75 :デフォルトの名無しさん:2011/04/18(月) 15:46:18.07
>>74
つ、バーカ、無知はすっこんでろよ。

『時計を設定する』
http://windows.microsoft.com/ja-JP/windows7/Set-the-clock

76 :デフォルトの名無しさん:2011/04/18(月) 15:51:12.70
>>75
そんなの見せられてもねw
日本はタイムゾーン未導入なんだよ?OSでどうやって自動的にタイムゾーンに変更すんの?
あ、手動で時刻を変更しろって低レベルな事を言いたいわけじゃないよな?


77 :デフォルトの名無しさん:2011/04/18(月) 15:54:50.27
>>76
日本でサマタイ未導入なら設定する必要もないだろボケ

78 :デフォルトの名無しさん:2011/04/18(月) 15:57:53.12
C++のSTLにあるようなDirectoryなどのコンテナで、
Cで標準的に使用できるものはございますでしょうか?

もしかして標準関数でよういされているのでしょうか・・・。

79 :デフォルトの名無しさん:2011/04/18(月) 16:09:11.45
>>51
ソート時間しか測定していませんが

http://codepad.org/tChlNi74

全部を測定するのは簡単に改造できると思います

C++で書くならvector+string+sortですがこれより確実に遅くなるでしょうね・・・・
一応やってみます

80 :デフォルトの名無しさん:2011/04/18(月) 16:10:15.13
>>78
Directoryがよくわかりませんがコンテナなら

http://sourceforge.jp/projects/cstl/

にあるCSTLが使えると思います

81 :デフォルトの名無しさん:2011/04/18(月) 16:13:41.63
>>80
たすかりました。
ありがとうございます。

82 :デフォルトの名無しさん:2011/04/18(月) 16:28:16.79
>>77
はあ?急遽導入されたケースを話してるんだろ
バカは黙ってろ

83 :デフォルトの名無しさん:2011/04/18(月) 16:34:48.50
>>82
はぁ?急遽?「明日からサマータイムにします」ってことはねーからw
それに東証のはあんなのは真の意味でのサマータイムじゃねーよ。
いわゆるズレ勤ってだけ。

84 :デフォルトの名無しさん:2011/04/18(月) 16:40:10.37
>>82
盗電じゃないんだから……

85 :デフォルトの名無しさん:2011/04/18(月) 16:44:54.53
>>76
> 日本はタイムゾーン未導入なんだよ?
まじっすか

86 :デフォルトの名無しさん:2011/04/18(月) 16:45:52.34
> 自動的にタイムゾーンに変更
どういうことっすか

87 :デフォルトの名無しさん:2011/04/18(月) 16:58:23.29
>>86
お前、人の話を聞かないタイプってよく言われてきたでしょ

88 :デフォルトの名無しさん:2011/04/18(月) 17:15:19.27
なにせ日本はタイムゾーン未導入らしいからな〜w>>76

89 :デフォルトの名無しさん:2011/04/18(月) 17:16:27.11
>>51
C++で書いてみたが入出力、stringが強烈に遅い(と言っても2倍程度)
sortは速いと思うんだけど

http://codepad.org/1VjGnrMM

90 :デフォルトの名無しさん:2011/04/18(月) 19:57:55.09
|  |∧∧
|  | 支\
|  |#`ハ´)
|  |⊂ ノ            ずっと友達でいてね       
|  |(_)))グリグリ    ∧∧
|_|北∧         / 台\       ∧日∧ うん。
|共|#`Д´>      ( *゜ー゜ )     (・ω・` )  
| ̄| ノ∧韓∧     ( つ旦O     O旦⊂ )
|  |⌒⊃;`Д´>⊃   と_)_)      (__(__ ̄)

91 :デフォルトの名無しさん:2011/04/18(月) 21:17:45.69
ニヤニヤ
で?日本はいつになったらタイムゾーン導入なんだ?>>76

92 :デフォルトの名無しさん:2011/04/18(月) 22:36:22.97
それは国に聞くべきじゃないのか?

93 :デフォルトの名無しさん:2011/04/18(月) 22:41:14.94
>>75
そのリンク先を見てどうやってサマータイムに対応するのか教えて欲しい
煽りとして受け取らないでちゃんとした答えを書いてもらい
「サマータイムになったら自分で時刻をずらす」ってなら期待はずれだけど

94 :デフォルトの名無しさん:2011/04/18(月) 22:54:24.01
サマータイムの設定ファイルみたいなのを配信してるんだよ、updateの時

95 :デフォルトの名無しさん:2011/04/18(月) 22:57:58.75
>>93
おまえのPCはタイムゾーンすら未対応なんだから関係ない話だろーが


96 :デフォルトの名無しさん:2011/04/18(月) 23:22:16.79
>>95
何でタイムゾーンの話を俺に振るのか良く分からないけどちゃんとした回答を待ってるよ
>>94
ありがとう

97 :デフォルトの名無しさん:2011/04/18(月) 23:29:26.63
>>51
C++でboost::shared_ptrで包んだcharの配列のポインタをソート
あまり速くならんわ
生のポインタでないとだめか

http://codepad.org/2w4vp7aF

つーかC++はいい加減にスレ違いだな
でもC++スレで続きをやるような内容でもないし

98 :デフォルトの名無しさん:2011/04/18(月) 23:48:57.94
関数をRAMに展開して実行したいけど、関数ポインタで実装出来るかな?

99 :デフォルトの名無しさん:2011/04/18(月) 23:50:09.33
>>98
意味が良くわからん
普通にプログラムを読み込むとスワップが起きない限りメモリ上にあると思うが

100 :デフォルトの名無しさん:2011/04/18(月) 23:50:41.26
>>98
RAMに展開してって、オンメモリでっていう意味か?

101 :デフォルトの名無しさん:2011/04/18(月) 23:56:08.56
実行可能状態にせんと動かんの(x86とか)がある。

102 :デフォルトの名無しさん:2011/04/18(月) 23:59:40.32
もしかして、コードイメージを配列で持たせて、それを実行したい、とか?

103 :デフォルトの名無しさん:2011/04/19(火) 00:01:42.18
.netみたいなことがやりたいんじゃないの?

104 :デフォルトの名無しさん:2011/04/19(火) 00:07:24.56
DEP:Data Execute Preventionを回避するにはLinuxならmmap、WindowsならVirtualAllocに適切なプロテクトフラグを付けてRAM確保かな
で、具体的には何をどんな理由でやりたいの?

105 :デフォルトの名無しさん:2011/04/19(火) 00:40:13.87
ほっほっ

106 :デフォルトの名無しさん:2011/04/19(火) 01:01:00.00
ふっほっ

107 :デフォルトの名無しさん:2011/04/19(火) 01:28:01.57
ふっほっ

108 :デフォルトの名無しさん:2011/04/19(火) 12:53:55.65
2進数数値リテラル(0b11010011)やprintfのフォーマットに2進数変換指定子(%b)がないのは何故ですか?

109 :デフォルトの名無しさん:2011/04/19(火) 12:58:38.41
さぁ?
それらが必要だと思う人がいなかったんじゃね

110 :デフォルトの名無しさん:2011/04/19(火) 13:08:11.37
K&R の時代からすっげえ欲しかったしライブラリでの実装例も腐るほどある
近年ビット数が増えて 0x1234 5678 9abc def0 のような区切り表記も欲しくなってきた

111 :デフォルトの名無しさん:2011/04/19(火) 13:49:29.62
一部のGCC改変版で方言としてあったのはおぼえてる。
アセンブラからやってきたものとしてはありがたいものなんだけどな。

112 :デフォルトの名無しさん:2011/04/19(火) 14:09:59.06
慣れれば0xだけで事足りるしな
0〜Fまで覚えれば済むわけだし

113 :デフォルトの名無しさん:2011/04/19(火) 14:36:50.82
#define b0000 0



#define b1111 F




とか秀丸マクロとかでつくっといてインクルードするとか?
ちょっと重たすぎるかね。

114 :デフォルトの名無しさん:2011/04/19(火) 14:38:31.84
いやまあ 255 や 033 なんか普通に使うけど、そういう問題ではなくて

115 :デフォルトの名無しさん:2011/04/19(火) 14:50:27.99
#define B4__(n) (((n)&7) + ((((n)>>3)&7)<<1)+ ((((n)>>6)&7)<<2)+ ((((n)>>9)&7)<<3))

#define Bit4(n) B4__(0##n)
#define Bit8_4(h,l) ((B4__(0##h) << 4) | B4__(0##l))
#define Bit16_4(hh,hl,lh,ll) ((Bit8_4(hh,hl) << 8) | Bit8_4(lh,ll))

OpenGLでラインパターン(点線とか)指定のときに
glLineStipple(1, Bit16_4(1111,1100,1100,1111));
こうできるので少しだけ直感的 (16進⇔2進 8進⇔2進 が即脳内でできるなら不要だろうけど)

116 :タラちゃん:2011/04/19(火) 15:38:07.80
皆・・・・・・・・・・・・・・死ね!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


117 :デフォルトの名無しさん:2011/04/19(火) 16:22:37.86
>0##n

ああ、やべえ。
この書き方の意味がわからねえ・・・

118 :デフォルトの名無しさん:2011/04/19(火) 16:31:25.74
>>117
マクロ引数に渡されたシンボルの連結
#define A(n) 0##n
A(123) は 0123 に展開される
A(aabb) は 0aabb に展開される

119 :デフォルトの名無しさん:2011/04/19(火) 16:32:33.37
>>117
##はトークンを連結する

120 :デフォルトの名無しさん:2011/04/19(火) 16:58:45.69
>>118-119
ありがとうございます。
またひとつ勉強になりました。

121 :デフォルトの名無しさん:2011/04/19(火) 18:01:41.95
大丈夫だ、define以外何書いてるか分からない俺みたいなのもいる
何コレホントにC言語?

122 :デフォルトの名無しさん:2011/04/19(火) 18:43:49.85
#define int char

123 :デフォルトの名無しさん:2011/04/19(火) 21:18:10.52
ほっほっ

124 :デフォルトの名無しさん:2011/04/19(火) 21:25:35.87
ふっほっ

125 :デフォルトの名無しさん:2011/04/19(火) 22:18:57.35
ほっほっ

126 :デフォルトの名無しさん:2011/04/19(火) 22:33:21.24
ぶはっ!選ぶはっ!

127 :デフォルトの名無しさん:2011/04/19(火) 22:34:40.70
ふっほっ

128 :デフォルトの名無しさん:2011/04/19(火) 22:35:17.66
ほっほっ

129 :デフォルトの名無しさん:2011/04/19(火) 22:37:26.90
ほっへっ

130 :デフォルトの名無しさん:2011/04/19(火) 22:37:47.77
ふっふっ

131 :デフォルトの名無しさん:2011/04/19(火) 22:40:05.96
どぴゅっどぴゅっ

132 :デフォルトの名無しさん:2011/04/19(火) 22:42:18.02
ビュクッ!ビュクッ!

133 :デフォルトの名無しさん:2011/04/19(火) 22:46:04.89
ほっほっ

134 :デフォルトの名無しさん:2011/04/19(火) 22:53:50.36
ほっほっ

135 :デフォルトの名無しさん:2011/04/19(火) 22:55:27.08
ほっほっ

136 :デフォルトの名無しさん:2011/04/19(火) 22:55:41.88
ふっへっ

137 :デフォルトの名無しさん:2011/04/19(火) 22:57:54.89
ほっほっ

138 :デフォルトの名無しさん:2011/04/19(火) 22:59:05.47
ふっほっ

139 :デフォルトの名無しさん:2011/04/19(火) 22:59:20.29
          / ̄\
          |    |
          \_/
          _ |__
        /      \
       /  ─    ─\
     /    ⌒  ⌒  \
      |      ,ノ(、_, )ヽ    |
      \      トェェェイ   /   おしっこジョボジョボミラジョボビッチ♪」
       /   _ ヽニソ,  く     おしっこジョボジョボミラジョボビッチ♪」
   三. i!   ゙ヽ、 Y"  r‐!、 ヽ.
    三 ヽ. 、 ''´⌒ゝ-‐'" _ィ》 Y!
       \_|!_二|一"f ,  !゙\  三
         〈, l|゙》-i|┴ーi´ / イ ´ i! 三
      ♪   ゙ー-ニ二__,/  / / 三       ♪
               /゙ У   / /  三
            //,/-‐、  /
            i! _{!   j!'〈   ♪
          / ,,.ノ \'' ヽ \
            〈 ーぐ     \   ヽ
          ゙ー″      〉ー- 〉
                   〈___ノ


140 :デフォルトの名無しさん:2011/04/19(火) 23:04:00.13
へっふっ

141 :デフォルトの名無しさん:2011/04/19(火) 23:09:06.67
ほっふっ

142 :デフォルトの名無しさん:2011/04/19(火) 23:11:47.11
          / ̄\
          |    |
          \_/
          _ |__
        /      \
       /  ─    ─\
     /    ⌒  ⌒  \
      |      ,ノ(、_, )ヽ    |
      \      トェェェイ   /   おしっこジョボジョボミラジョボビッチ♪」
       /   _ ヽニソ,  く     おしっこジョボジョボミラジョボビッチ♪」
   三. i!   ゙ヽ、 Y"  r‐!、 ヽ.
    三 ヽ. 、 ''´⌒ゝ-‐'" _ィ》 Y!
       \_|!_二|一"f ,  !゙\  三
         〈, l|゙》-i|┴ーi´ / イ ´ i! 三
      ♪   ゙ー-ニ二__,/  / / 三       ♪
               /゙ У   / /  三
            //,/-‐、  /
            i! _{!   j!'〈   ♪
          / ,,.ノ \'' ヽ \
            〈 ーぐ     \   ヽ
          ゙ー″      〉ー- 〉
                   〈___ノ

143 :デフォルトの名無しさん:2011/04/19(火) 23:13:53.01
ふっはっ

144 :デフォルトの名無しさん:2011/04/19(火) 23:36:28.96
ほっほっ

145 :デフォルトの名無しさん:2011/04/20(水) 00:37:22.19
ふっほっ

146 :デフォルトの名無しさん:2011/04/20(水) 00:42:38.43
ほっほっ

147 :デフォルトの名無しさん:2011/04/20(水) 00:48:22.95
べっほっ

148 :デフォルトの名無しさん:2011/04/20(水) 01:29:24.99
main{
char buf[4096];
kansuu(buf);
}
kansuu(char buf[]){
memset(buf, '\0', sizeof(buf));
}

sizeof(buf)の値は、4でした。
変更
memset(buf, '\0', sizeof(buf));
→memset(buf, '\0', 4096);
これで期待通りでした。

配列全体をゼロクリアしたい。

適当な書き方を教えてください。


149 :デフォルトの名無しさん:2011/04/20(水) 01:31:45.48
>>148
サイズを一緒に与えないとダメ

150 :デフォルトの名無しさん:2011/04/20(水) 01:42:20.11
>>148
char buf[4096] = {0}; とすればヨロシ。

http://stackoverflow.com/questions/2589749/initialize-array-to-0-in-c

151 :デフォルトの名無しさん:2011/04/20(水) 01:50:42.15
返信ありがとうございます。
>>149
引数にサイズも渡す方法はできました。
スマートにしたいなぁと。

サブルーチン内で確保すべきかな


>>150
定数は避けたいです。

152 :148:2011/04/20(水) 01:52:53.93
>>150
失礼しました。
勘違いしてました。

サブルーチン内で、ゼロクリアしたいです。

153 :デフォルトの名無しさん:2011/04/20(水) 01:55:19.65
>>152
コンパイラによっては配列サイズを知ることもできるらしいが
そうだとしても渡されるものが配列の先頭である保証がないから
やっぱりサイズも渡すのが無難

154 :デフォルトの名無しさん:2011/04/20(水) 02:00:12.07
memset() を使いたいなら、こんな感じかなあ。。。

#include <string.h>
#define BUFSIZE 4096

int main() {
    char buf[BUFSIZE];
    func(buf);
}

void func(char buf[]) {
    memset(buf, 0, BUFSIZE);
}

155 :デフォルトの名無しさん:2011/04/20(水) 02:21:06.37
>>154

あ、
これが王道っぽい

156 :デフォルトの名無しさん:2011/04/20(水) 03:25:11.29
そもそもサブルーチンの中で初期化しなければならない状態ってのがどうなんだろう?
実は初期化しなくともどうにかならないかい

157 :デフォルトの名無しさん:2011/04/20(水) 03:29:36.91
typedef char HOGE[64];

HOGE hoge;//char hoge[64];

こういうtypedefの使い方ってすごく気持ち悪いんですけど一般的なんですか?

158 :デフォルトの名無しさん:2011/04/20(水) 07:07:50.66
>151

Cでは関数の引数として配列を渡すことはできない。
常にポインタとして渡すことになる。
(>148でsizeof(buf)が4になるのはそのため)
スマートも何も、引数として渡すしか方法はない。

0クリアしたいというのなら、どのみち関数内でも
配列のサイズが必要になると思われる。

159 :デフォルトの名無しさん:2011/04/20(水) 07:09:25.04
>>148
MSC の cgets() みたいにすれば。

main{
char buf[4096];
*(int*)buf = sizeof buf;
kansuu(buf);
}
kansuu(char buf[]){
memset(buf, '\0', *(int*)buf);
}


160 :デフォルトの名無しさん:2011/04/20(水) 07:10:21.09
>157
配列とか、ポインタが隠蔽されるのは個人的には嫌い。
しかし、型が入れ子になっている場合、宣言が読みやすくなるという人もいるだろう。

char (*p)[64];
より
HOGE *p;
が読みやすい、など

161 :デフォルトの名無しさん:2011/04/20(水) 07:11:24.62
>154のようにBUFSIZで縛るのは愚策だな

162 :デフォルトの名無しさん:2011/04/20(水) 07:12:59.34
>>159
環境に依っては実行時に転けるので要注意。

163 :デフォルトの名無しさん:2011/04/20(水) 07:15:01.74
>>160
読みやすいつーか
その二つは違うだろ

164 :デフォルトの名無しさん:2011/04/20(水) 07:23:34.78
>>162
どんな環境だよw

165 :デフォルトの名無しさん:2011/04/20(水) 07:35:30.32
>>164
char配列をint境界に割り当てないコンパイラと、境界を跨いだintアクセスのできないCPUの組み合わせ。

166 :デフォルトの名無しさん:2011/04/20(水) 07:37:12.46
ARMなんて捨てちまえよ。

167 :デフォルトの名無しさん:2011/04/20(水) 07:42:47.66
知ったかを主張したいんですね

168 :デフォルトの名無しさん:2011/04/20(水) 09:09:23.07
          / ̄\
          |    |
          \_/
          _ |__
        /      \
       /  ─    ─\
     /    ⌒  ⌒  \
      |      ,ノ(、_, )ヽ    |
      \      トェェェイ   /   おしっこジョボジョボミラジョボビッチ♪」
       /   _ ヽニソ,  く     おしっこジョボジョボミラジョボビッチ♪」
   三. i!   ゙ヽ、 Y"  r‐!、 ヽ.
    三 ヽ. 、 ''´⌒ゝ-‐'" _ィ》 Y!
       \_|!_二|一"f ,  !゙\  三
         〈, l|゙》-i|┴ーi´ / イ ´ i! 三
      ♪   ゙ー-ニ二__,/  / / 三       ♪
               /゙ У   / /  三
            //,/-‐、  /
            i! _{!   j!'〈   ♪
          / ,,.ノ \'' ヽ \
            〈 ーぐ     \   ヽ
          ゙ー″      〉ー- 〉
                   〈___ノ

169 :デフォルトの名無しさん:2011/04/20(水) 09:09:54.74
ほっほっ

170 :デフォルトの名無しさん:2011/04/20(水) 09:13:43.08
ほっほっ

171 :デフォルトの名無しさん:2011/04/20(水) 09:31:19.71
ふっほっ

172 :デフォルトの名無しさん:2011/04/20(水) 09:32:57.84
>>161
どうしてそう思ったのかな?

173 :デフォルトの名無しさん:2011/04/20(水) 09:40:39.08
>>161
BUFSIZなんて使ってないが

174 :デフォルトの名無しさん:2011/04/20(水) 10:04:06.53
>>173
Eが落ちた。

>>172
使い回しできない。使い回ししないなら、関数内でクリアするより呼び出し側でクリアする方が自然(≒依存度が下がる)。

175 :デフォルトの名無しさん:2011/04/20(水) 10:10:29.92
私はmemsetの話を関数の依存性の話にすり替えることで優位に立とうとします。

176 :デフォルトの名無しさん:2011/04/20(水) 10:11:22.63
優位もへったくれも、そんなもの気にするから小物なんだよ。

177 :デフォルトの名無しさん:2011/04/20(水) 10:16:09.72
WindowsでC99コンパイラーはありますでしょうか?

178 :デフォルトの名無しさん:2011/04/20(水) 10:18:26.03
MinGW は C99 使えるよ


179 :デフォルトの名無しさん:2011/04/20(水) 10:29:53.18
GNU gcc
Cygwin でも C99 使えるよ

180 :デフォルトの名無しさん:2011/04/20(水) 10:31:39.03
>>178-179
d

181 :デフォルトの名無しさん:2011/04/20(水) 10:53:34.93
>>174
君が言ってるのは、お題が気に食わないってことかな?
ここでは関数内で初期化する事が要件なんだけど。

それと、数行のコードの再利用性で愚作とまで言い切るのは相当凄腕のエスパーだよね。
この程度のコード片なら、使い回し等考えずに一番簡潔な方法で書いた方が良いと思うわ。

182 :デフォルトの名無しさん:2011/04/20(水) 10:59:40.10
関数に配列の大きさを渡さないで、関数内部に固定の数値を持つことが気に食わないんだろ

183 :デフォルトの名無しさん:2011/04/20(水) 11:01:39.76
>>181
×愚作
○愚策
普段から策もなく行き当たりばったりに作っているから間違えるんだよ。

そもそも、memset()するだけの関数なんて存在意義がない。
何らかの処理をする関数の一部と考えれば使い捨てと断じるのは迂闊。

184 :デフォルトの名無しさん:2011/04/20(水) 11:05:33.15
でも論点ズレてるよね^^
ブフフwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

185 :デフォルトの名無しさん:2011/04/20(水) 11:22:12.62
あれ?揚げ足取ってるだけじゃね?w

186 :デフォルトの名無しさん:2011/04/20(水) 11:47:10.76
そろそろマクロに頼る頭カチカチコーディングから卒業するべき
配列のサイズを知る方法は確立されてるんだからそれを使え

187 :デフォルトの名無しさん:2011/04/20(水) 12:13:32.99
>>186
コード書いてみてください

188 :デフォルトの名無しさん:2011/04/20(水) 13:29:18.23
memsetはインライン展開される場合もあるのに、関数化などお笑い

189 :デフォルトの名無しさん:2011/04/20(水) 13:45:34.00
今まで書いたコードを間違って上書きしてしまいました。
CTRL+Oでファイルを開くつもりが、人的操作ミスでファイルを保存するダイアログを開いてしまい、
現在の内容を選択したファイルに保存してしまいました。
このような事を二度と繰り返したくないのです(3回ミスをしました)
どのようにバックアップを取ればよいでしょうか?

190 :52:2011/04/20(水) 13:49:14.07
自動で履歴をとっておけよ。そういうソフト入れろよ。

191 :デフォルトの名無しさん:2011/04/20(水) 13:51:15.96
Emeditorや秀丸とかのエディタは、過去の履歴を自動でバックアップする設定付いてるぞ。
別のエディタでも設定ある可能性。
自分は、少しでも変更あったらすべての連番を自動バックアップしてる。

192 :デフォルトの名無しさん:2011/04/20(水) 13:57:34.03
最近は、編集中のバックアップとるとか気にしたことないな。

193 :デフォルトの名無しさん:2011/04/20(水) 14:09:23.94
バージョン管理ツール

194 :デフォルトの名無しさん:2011/04/20(水) 14:12:24.19
見事に話題をそらした>>186であった

195 :デフォルトの名無しさん:2011/04/20(水) 14:15:07.53
>>189
そういうミスをする根本原因を解決しないと、どんなツールを使っても同じミスをするぞ。
マウスの操作が苦手ならキーボードショートカットを使うとか、
判っていながら間違ったダイアログを開いてしまうのなら……その場合はどうしたらいいか知らんが。

>>191
自動バックアップって、>189のような上書きにも対応しているのか?
少なくとも一世代は先祖還りしそうな気がするのだが。

その点では、>189のミスに対応するには保存した版をバックアップする機能が必要になるね。
リビジョン管理ツールと連動できるエディタならできるだろうけれど。

196 :デフォルトの名無しさん:2011/04/20(水) 14:15:33.16
>>189
エディタの開くダイアログや名前を付けて保存ダイアログを使わない
エクスプローラから直接開いて上書き保存だけする

197 :デフォルトの名無しさん:2011/04/20(水) 14:19:12.66
つうかsizeof以外に配列のサイズ求める方法ってあるの?

198 :デフォルトの名無しさん:2011/04/20(水) 14:22:00.70
>>195
対応するエディタを使っていれば、上書き保存される前に、未変換のテキストをバックアップフォルダへ連番でバックアップできる。

199 :デフォルトの名無しさん:2011/04/20(水) 14:30:16.70
秀丸エディタ使ってます
GITをWindowsに入れてみたいのですが使い方とか良く分かりません



200 :デフォルトの名無しさん:2011/04/20(水) 14:33:59.80
入れてみる前から分かるはずないだろ

201 :デフォルトの名無しさん:2011/04/20(水) 14:45:32.36
>>199
おまえ、不正なPASSで秀丸使ってるだろ。
ちゃんと金払えよな。

202 :デフォルトの名無しさん:2011/04/20(水) 14:49:10.76
>>189
ショート・カットキーは押し間違えやすい
ミスタイプってあるよな?あれと同じ事が起きる
俺もCtrl+CとCtrl+Vをたまに押し間違える

対策はボタンを使うか、面倒だけどもメニューから
開くを選択する事だ

203 :デフォルトの名無しさん:2011/04/20(水) 14:50:03.09
すいませんミスです入れてた後です
入れた後なんですがどうやってバックアップを取ればよいのか
Gitって難しいですね
SVNなら簡単なんでしょうか?
秀丸エディタはお金を払って利用はしておりませんが作者様から免除のライセンスを頂いてますので正式ユーザーです
一応フリーソフト開発者です

204 :デフォルトの名無しさん:2011/04/20(水) 14:54:22.05
>>203
で、Gitの使い方ならGitスレへ。

205 :デフォルトの名無しさん:2011/04/20(水) 14:54:54.58
バージョン管理ツールは使い方わからん。
これって関数の仕様が決まってからでないと使えないのか?
動作しファイル組み合わせは自動で記録できるのか。

206 : 忍法帖【Lv=15,xxxPT】 :2011/04/20(水) 14:55:39.44
>>203
秀丸のバックアップ単体で十分。

207 :デフォルトの名無しさん:2011/04/20(水) 14:59:39.65
>>204
Gitのスレも除いてみます。ありがとうごじあます

>>205
お互い頑張りましょう。

>>206
えええええええええ

208 :デフォルトの名無しさん:2011/04/20(水) 15:01:06.78
すいませんミスです

×Gitのスレも除いてみます。ありがとうごじあます
○Gitのスレも覗いてみます。ありがとうございます

興奮して早くレス打たないといけないと思って誤字になりました。

209 : 忍法帖【Lv=15,xxxPT】 :2011/04/20(水) 15:03:46.68
秀丸のファイルタイプ別の、保存とかいう所に世代バックアップあるぞ。
常に秀丸を使うんだったら、この機能ONにしとけば全部残る。

210 :デフォルトの名無しさん:2011/04/20(水) 15:22:06.70
秀丸のバックアップを試してみたんですが
保存した内容と同じでないのでツライです
2回保存しないと同じ内容でバックアップになんないのでキビシイです

211 : 忍法帖【Lv=15,xxxPT】 :2011/04/20(水) 15:25:06.94
>>210
世代にしろ。変更前、保存前のデータが残るんだ。
変更前と変更後を常に残していけば良いんだよ。

212 : 忍法帖【Lv=15,xxxPT】 :2011/04/20(水) 15:27:37.99
動作しては。Aを更新して上書き保存する場合。
Aをバックアップフォルダへ移動した後に、変更後の内容をAのあった場所へファイル作成して保存するの。


213 :デフォルトの名無しさん:2011/04/20(水) 15:32:31.84
作業過程(途中) と 区切れ目(どりあえず動作可能な一式がそろった とか) とを 区別してるな

前者はバックアップとってない or フォルダ(ディレクトリ)ごと 別にコピー(おおがかりに変更かけるときとか)
後者は バージョン管理ツールでコミット

214 :デフォルトの名無しさん:2011/04/20(水) 15:36:07.11
>フォルダ(ディレクトリ)ごと 別にコピー(おおがかりに変更かけるときとか)
これこそ(分散型)リビジョン管理ツールの出番だ。

215 :デフォルトの名無しさん:2011/04/20(水) 15:39:21.54
何、C言語やってんのにここの連中はバージョン管理も出来ないの?

216 :デフォルトの名無しさん:2011/04/20(水) 15:45:00.63
>>214
主目的が コピペ元 なんで、基本的には管理ツールでことたりてるね
基本 1本幹で 枝からの平行成長は使わない方向かな…

枝分け 複数並行リビジョン運用 根に修正はいって マージどおすべぇ問題に目を背けてる使い方

217 :デフォルトの名無しさん:2011/04/20(水) 15:46:33.79
自分専用と割り切るならどの段階でもコミットしていいんでないかな。
タグだけ打っとけばどうにかなるだろ

218 :デフォルトの名無しさん:2011/04/20(水) 15:47:16.83
>>216
どおすべぇって、マージすればよくね?

219 :デフォルトの名無しさん:2011/04/20(水) 15:50:24.80
>>215
入門書では教えないからね(このこと自体クソだが)

220 :デフォルトの名無しさん:2011/04/20(水) 15:50:51.63
マージは怖くないよ

221 :デフォルトの名無しさん:2011/04/20(水) 15:57:42.62
便利なマージツール、マージンガーZってのをみつけたよ。
まじでググってみるといいよ。

222 :デフォルトの名無しさん:2011/04/20(水) 15:58:00.05
書けるのに読めない人がバージョン管理なんて出来るわけ無いでしょ

223 :デフォルトの名無しさん:2011/04/20(水) 16:00:24.52
自分はwindowsエクスプローラーで手動でドラッグアンドドロップして、
コピー 〜 ○○というのを作る。
失敗したら手動で戻す。
SVNとかテキストでそのまま残らないず管理ツール本体が壊れたら嫌だ。

224 :デフォルトの名無しさん:2011/04/20(水) 16:19:14.20
>>223
SVNなら週一でスナップショットをローカルに保存しときゃいいだろ。
まあGIT使えばそんな心配もねえけどな。

225 :デフォルトの名無しさん:2011/04/20(水) 16:23:20.81
言語の入門とバージョン/リビジョン管理入門はセットになってると良いが…
なかなかそうはいかんよな

226 :デフォルトの名無しさん:2011/04/20(水) 16:32:20.44
バージョン管理は使わん。
自動でやってくれないし、無駄なファイルを生成するし。
自動でバックアップフォルダへ連番つきで保存してくれれば十分。
普通のテキストエディタでこの機能は付いている。


227 :デフォルトの名無しさん:2011/04/20(水) 16:33:44.16
そりゃそうよ。本を書いているのは現場経験のない人間なんだから。
だから、未だにprintf()とscanf()のフォーマット指定は互換だなんて書いてある本が出回るわけで。

228 :デフォルトの名無しさん:2011/04/20(水) 16:35:52.95
重複しない名前でバックアップしてくれるだけで、
あとは問題起こったとき更新日時から手動で復元できる。
バージョン管理ツール何が良いのか。

229 :デフォルトの名無しさん:2011/04/20(水) 16:36:23.18
>>211
それだと
保存したときに、変更前の内容がバックアップに残り、
最新の内容がバックアップに残りません
最新の内容を間違えて上書きしちゃったときのためにバックアップを取りたいのでキツイです

230 :デフォルトの名無しさん:2011/04/20(水) 16:36:32.65
>>226
連番だけでひたすら保存して、特定の状態に戻したくなったらどうするの?

私は連番管理や日付け管理ではその辺りがどうにもならないからリビジョン管理ツールを使っているのだけれど。
分岐の管理もできるしマージは強力だし、今では只のバックアップに留まらずいろいろ有効活用しているけどね。

231 :デフォルトの名無しさん:2011/04/20(水) 16:36:47.80
差分見て違いがわからないと...

232 :デフォルトの名無しさん:2011/04/20(水) 16:39:19.36
>>229
最新の内容を上書きする前に自動でバックアップするから、
間違って上書きしないわけだが。エディタを固定して使っていたら。


233 :デフォルトの名無しさん:2011/04/20(水) 16:42:35.38
>>232
うああああああああああああああバックアップされてました
ためしに無題ファイルで上書きしたらバックアップされてました
すいませんでした

234 :デフォルトの名無しさん:2011/04/20(水) 16:45:11.14
あ、やっぱだめです
ファイルを削除したときはバックアップされませんでした

235 :デフォルトの名無しさん:2011/04/20(水) 16:53:46.53
削除すんなよw
ゴミ箱に入ってんじゃない

236 :デフォルトの名無しさん:2011/04/20(水) 17:03:38.25
無理ですよ
シフト+DELETEで消しましたから

237 :デフォルトの名無しさん:2011/04/20(水) 17:05:52.35
今度は間抜け自慢か?

238 :デフォルトの名無しさん:2011/04/20(水) 17:11:01.04
シフト+DELETEなどはまれに起こる異常事態と考えてあきらめて、一つ前の履歴から復元しろ。
これからはシフト+DELETEを使わなければ良い。




239 :デフォルトの名無しさん:2011/04/20(水) 17:12:38.97
一分ごとに自動保存、自動バックアップしていれば
異常事態が起こっても
最大で一分間の作業が無駄になるだけじゃん。
一分くらい気にするな。

240 :デフォルトの名無しさん:2011/04/20(水) 17:15:08.42
つか一度書いたソースくらいさっさと書き直せよ。
さっきより良いコードが必ず書ける。

241 :デフォルトの名無しさん:2011/04/20(水) 18:38:56.64
書くしか能がないのに覚えてるわけが

242 :デフォルトの名無しさん:2011/04/20(水) 19:17:36.28
          / ̄\
          |    |
          \_/
          _ |__
        /      \
       /  ─    ─\
     /    ⌒  ⌒  \
      |      ,ノ(、_, )ヽ    |
      \      トェェェイ   /   おしっこジョボジョボミラジョボビッチ♪」
       /   _ ヽニソ,  く     おしっこジョボジョボミラジョボビッチ♪」
   三. i!   ゙ヽ、 Y"  r‐!、 ヽ.
    三 ヽ. 、 ''´⌒ゝ-‐'" _ィ》 Y!
       \_|!_二|一"f ,  !゙\  三
         〈, l|゙》-i|┴ーi´ / イ ´ i! 三
      ♪   ゙ー-ニ二__,/  / / 三       ♪
               /゙ У   / /  三
            //,/-‐、  /
            i! _{!   j!'〈   ♪
          / ,,.ノ \'' ヽ \
            〈 ーぐ     \   ヽ
          ゙ー″      〉ー- 〉
                   〈___ノ

243 :デフォルトの名無しさん:2011/04/20(水) 20:01:23.92
ほっほっ

244 :デフォルトの名無しさん:2011/04/20(水) 20:18:18.35
教えてください
キーボードのAを押している間はディスプレイに任意の文字を出力させて、離したらその文字を消す
というプログラムをつくりたいです
ご教授お願いします

245 :デフォルトの名無しさん:2011/04/20(水) 20:26:24.35
>>244
非標準関数だけどgetch()を使う

246 :デフォルトの名無しさん:2011/04/20(水) 21:31:52.82
>>183
>何らかの処理をする関数の一部と考えれば使い捨てと断じるのは迂闊。

使い回すと考えるのも早計だと思うけど。
あの質問からそこまでネチネチ考えるのはむしろナンセンスじゃない?

茶茶入れする為の茶茶入れをしても誰からも感謝されないと思うんだが・・・

247 :デフォルトの名無しさん:2011/04/20(水) 22:38:35.62
          / ̄\
          |    |
          \_/
          _ |__
        /      \
       /  ─    ─\
     /    ⌒  ⌒  \
      |      ,ノ(、_, )ヽ    |
      \      トェェェイ   /   おしっこジョボジョボミラジョボビッチ♪」
       /   _ ヽニソ,  く     おしっこジョボジョボミラジョボビッチ♪」
   三. i!   ゙ヽ、 Y"  r‐!、 ヽ.
    三 ヽ. 、 ''´⌒ゝ-‐'" _ィ》 Y!
       \_|!_二|一"f ,  !゙\  三
         〈, l|゙》-i|┴ーi´ / イ ´ i! 三
      ♪   ゙ー-ニ二__,/  / / 三       ♪
               /゙ У   / /  三
            //,/-‐、  /
            i! _{!   j!'〈   ♪
          / ,,.ノ \'' ヽ \
            〈 ーぐ     \   ヽ
          ゙ー″      〉ー- 〉
                   〈___ノ

248 :デフォルトの名無しさん:2011/04/20(水) 23:01:43.39
普通は変更した部分なんて全部覚えてるから手動で戻せるだろ。
おまえら記憶力に障害でもあるのか?
脳の検査してきたほうがいいんじゃね?

249 :デフォルトの名無しさん:2011/04/20(水) 23:03:34.47
>>248
バージョン管理ツール必要ないな

250 :デフォルトの名無しさん:2011/04/20(水) 23:09:23.01
>>245
なんとかできそうです
ありがとうございました( ´ ▽ ` )

251 :デフォルトの名無しさん:2011/04/20(水) 23:13:08.21
ほっほっ

252 :デフォルトの名無しさん:2011/04/20(水) 23:13:24.05
ひゅん

253 :デフォルトの名無しさん:2011/04/20(水) 23:19:36.24
へっほっ

254 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/20(水) 23:23:37.11
いつの間にか不具合が紛れ込んでたみたいなときにどの修正がまずかったか切り分けができるのがいいね

255 :デフォルトの名無しさん:2011/04/20(水) 23:23:46.42
はっぷっ

256 :デフォルトの名無しさん:2011/04/20(水) 23:28:31.51
どぴゅっどぴゅっ

257 :デフォルトの名無しさん:2011/04/20(水) 23:43:40.60
ぶはっ!選ぶはっ!

258 :デフォルトの名無しさん:2011/04/20(水) 23:47:19.31
しゅっしゅっ

259 :デフォルトの名無しさん:2011/04/20(水) 23:52:10.20
ほっほっ

260 :デフォルトの名無しさん:2011/04/20(水) 23:55:39.22
ふっほっ

261 :デフォルトの名無しさん:2011/04/20(水) 23:57:53.42
memset

262 :デフォルトの名無しさん:2011/04/20(水) 23:58:11.60
ひっふっ

263 :デフォルトの名無しさん:2011/04/21(木) 00:00:58.17
はっはっ

264 :デフォルトの名無しさん:2011/04/21(木) 00:01:16.68
ぴっふっ

265 :デフォルトの名無しさん:2011/04/21(木) 00:02:10.20
べっぽっ

266 :デフォルトの名無しさん:2011/04/21(木) 00:11:37.74
http://www.vector.co.jp/soft/dl/other/h8/se310593.html
このLCDライブラリのソースlcd.cの中の

static LCD  *lcd;
という宣言の意味がよくわからないです

あと、
lcd = (LCD *)&PB.DR.BYTE;
PB.DRのポート8ビットが構造体の各メンバに定義されてると思うんだけど
void LCDInitの中だけで定義されていて大丈夫なの?

267 :デフォルトの名無しさん:2011/04/21(木) 00:12:49.23
>>266
不完全型でググれ

268 :デフォルトの名無しさん:2011/04/21(木) 00:13:38.96
がう

269 :デフォルトの名無しさん:2011/04/21(木) 00:17:34.51
ぽひょ

270 :デフォルトの名無しさん:2011/04/21(木) 00:17:55.20
ひっへっ

271 :デフォルトの名無しさん:2011/04/21(木) 00:22:08.71
ほっほっ

272 :デフォルトの名無しさん:2011/04/21(木) 00:24:42.71
ほっほっ

273 :デフォルトの名無しさん:2011/04/21(木) 00:26:04.90
ふっほっ

274 :デフォルトの名無しさん:2011/04/21(木) 00:26:43.89
ふっふっ

275 :デフォルトの名無しさん:2011/04/21(木) 00:29:24.35
ひっひっ

276 :デフォルトの名無しさん:2011/04/21(木) 00:31:12.67
ほっほっ

277 :デフォルトの名無しさん:2011/04/21(木) 00:33:59.84
ほっふっ

278 :デフォルトの名無しさん:2011/04/21(木) 00:36:06.44
ふっふっ

279 :デフォルトの名無しさん:2011/04/21(木) 00:38:45.30
ふっほっ

280 :デフォルトの名無しさん:2011/04/21(木) 00:42:13.43
>267
サンクス

281 :デフォルトの名無しさん:2011/04/21(木) 00:53:09.71
>>267
サンクス

282 :デフォルトの名無しさん:2011/04/21(木) 00:55:16.76
>>267
サンクス

283 :デフォルトの名無しさん:2011/04/21(木) 01:20:01.34
>>267
サンクス

284 :デフォルトの名無しさん:2011/04/21(木) 06:18:55.81
>>267
サンクス

285 :デフォルトの名無しさん:2011/04/21(木) 12:40:54.28
C言語でOSってかけますか??

286 :デフォルトの名無しさん:2011/04/21(木) 12:54:13.40
>>285
書けますが、基幹部分とI/O及びアトミック操作はアセンブラで書かざるを得ない
場合がほとんどです

287 :デフォルトの名無しさん:2011/04/21(木) 13:37:29.67
LINUXの95%くらいはC言語で書いてあるんじゃないかな?

288 :デフォルトの名無しさん:2011/04/21(木) 13:54:47.70
99.6%

289 :デフォルトの名無しさん:2011/04/21(木) 13:57:30.91
単位はByte。

Cソースコード分量 / (Cソースコード分量+アセンブラコード分量)

290 :デフォルトの名無しさん:2011/04/21(木) 14:03:17.85
LinuxはC++だろ

291 :デフォルトの名無しさん:2011/04/21(木) 14:03:22.57
LinuxはモノリシックだからC言語が最適だな
あれをアセンブラで書けと言われたら気が狂う

292 :デフォルトの名無しさん:2011/04/21(木) 14:08:17.56
Linusがこんな人なんで、C++が使われる可能性は今後も低いよ
ttp://tabesugi.net/memo/2009/1a.html#152154


293 :デフォルトの名無しさん:2011/04/21(木) 14:20:28.07
C++のテンプレート部分だけはCにも欲しいな。
まあべつにCでポリモできねえわけじゃねえし。


294 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/21(木) 20:53:56.53
テーブルのサイズが大きすぎてメモリを使い果たすことはありますが
ソースコード量が多すぎてテキスト領域がバッファオーバーフローすることはないんですか

295 :デフォルトの名無しさん:2011/04/21(木) 21:09:48.75
それはもしあったとしても実行ファイルをリンクする時点で判明するんじゃない

296 :デフォルトの名無しさん:2011/04/21(木) 21:16:08.25
やっぱりCだけ覚えとけばC++は必要ないの!?


297 :デフォルトの名無しさん:2011/04/21(木) 21:45:14.93
>>296
どちらでも
ただバグ取りはCよりC++の方が格段に楽

298 :デフォルトの名無しさん:2011/04/21(木) 21:49:03.39
なんで!?何でC++のほうが楽なの?Cと比べてC++だと何がいいの?

299 :デフォルトの名無しさん:2011/04/21(木) 21:54:14.89
クイックソートの欠点って何でしょうか?
クイックソートが一番早いならソートは全部クイックでやればいいのでは?

300 :デフォルトの名無しさん:2011/04/21(木) 21:54:24.65
C++のほうがプログラムが容易になる。クラス、テンプレート、STLなど。

301 :デフォルトの名無しさん:2011/04/21(木) 21:56:12.69
>>299
同値のデータがあったときに、並び方が変わることかな?

302 :デフォルトの名無しさん:2011/04/21(木) 21:56:33.50
>>299
データすべてがメモリに乗っていないと遅くなる。
HDDを補助に使えるソートのほうが速くなる可能性。
シーケンシャルアクセスで済ませれば、HDD使ってもそれほど遅くならん。極端には。

303 :デフォルトの名無しさん:2011/04/21(木) 22:08:23.27
>>301
計算量的には最速なのでは?
>>302
工学的にはそうなんですか。

304 :デフォルトの名無しさん:2011/04/21(木) 22:21:12.99


メモリ使用パターンとインデックスソートソート

対象の配列が主記憶を使い切るような大きさであった場合、より低速な補助記憶装置が使われるので、
アルゴリズムのメモリ使用パターンが重要となる。

そのような状況では、主記憶上ですべてソートできることを前提としたアルゴリズムは効率が極端に悪化する可能性がある。

このような状況では、比較演算回数はあまり重要ではなくなり、ディスクとのメモリ領域のスワップ回数が重要となる。

したがって、なるべくスワップ回数を増やさないようにするために、配列全体を走査する回数や比較の局所性が比較回数よりも重要となる。

例えば、再帰型のクイックソートは主記憶上では性能が良いが、ソート対象の配列が主記憶に収まらない場合は

スワップが頻繁に発生して、性能が極端に低下する。

したがって、そのような場合は比較回数が多くても他のアルゴリズムを使った方がよい。

ソート - Wikipedia

305 :デフォルトの名無しさん:2011/04/21(木) 22:25:19.60
理論的にはもっと速いやつあるぞ。


主なソーティングアルゴリズムと性能

クイックソート 平均計算時間  O(nlog n)  最悪計算時間 O(n2)

分布数えソート 平均計算時間  O(n)  最悪計算時間 O(n)

http://www.motorwarp.com/koizumi/sort.html

306 :デフォルトの名無しさん:2011/04/21(木) 22:28:16.58


分布数えソート(最高速のソート)
最高速のソートとは大きく出たなと思われるでしょうが、
分布数えソートはクイックソートですら足元に及ばないほど高速です。
おそらく、広く知られたソートアルゴリズムの中ではこれが最高速のソートでしょう。
その計算量のオーダは O(N)という驚異的なものです。
しかも分布数えソートは安定なソートなのです。
http://www.moon.sannet.ne.jp/okahisa/sort/node25.html


バケットソートは、ソートのアルゴリズムの一つ。
バケツソート、分布数えソート、計数ソート、ビンソートなどともいう。
計算時間はO(n)と高速だが、要素の定義域分の外部記憶が必要。安定ソートが可能。
バケットソート - Wikipedia

307 :デフォルトの名無しさん:2011/04/21(木) 22:33:32.84
>>304
スワップって何ですか?
プログラムを書いただけではメモリ使用パターン何て分かりません・・
マージやヒープソートはどうなんですか?
>>306
クイックソートより早いソートは不可能って前レスであったけどどうなんでしょう?




308 :デフォルトの名無しさん:2011/04/21(木) 22:34:14.97
テキストファイルを編集して別の新しいテキストファイルに出力するコードを作り、エラーもなくコンパイル出来たのですが、
ファイルのどこを探してもそのテキストファイルがありません・・・

漠然としすぎだとは思いますが、どこに問題があるのか分かる方いらっしゃいますか?

309 :デフォルトの名無しさん:2011/04/21(木) 22:41:54.73
そのコードをコンパイルしてできた実行ファイルはどこにある?

310 :デフォルトの名無しさん:2011/04/21(木) 22:42:07.45
>>307
スワップは、巨大メモリ(仮想メモリ)を使用して、ランダムリード、ライトがあれば起こりやすい。
メモリ上だけ処理できないってことだ。
クイックソートだと、初めに二分割するときに、メモリ上で大規模な入れ替え、大移動が起こる。

311 :デフォルトの名無しさん:2011/04/21(木) 22:46:13.62
>>307
分布数えソート(パケットソート)は、ソートする値が、たとえば 0〜100 の間、という風に狭い範囲に限定しているときに力を発揮します。
もっと一般の場合、たとえば 0〜4294967296 の範囲といった場合には、主記憶をそれだけ必要とするゆえに、現実的でなくなります。

312 :デフォルトの名無しさん:2011/04/21(木) 22:49:31.92
>>310
マージも分割するんやないのですか?

313 :デフォルトの名無しさん:2011/04/21(木) 23:15:43.81
そんなことよりも何よりも、クイックソートは整列済みのデータのソートが呆れるほど苦手だな。

314 :デフォルトの名無しさん:2011/04/21(木) 23:44:33.16
分布数えソートってなんだろうって思ったらバケットソートの別称なのね

315 :デフォルトの名無しさん:2011/04/21(木) 23:52:09.73
またクイックソート信者か
クイックソートは悪くないけど、盲信してる奴は最悪計算時間を知らない奴が多い
あと非安定だから用途によってはマージソートとか使った方が良い

316 :デフォルトの名無しさん:2011/04/21(木) 23:54:41.29
最悪計算時間よりも、平均計算量が大事。多くの場合は平均時間になるため。
クイックは大域的なメモリアクセスが起こるのも良くない。

317 :デフォルトの名無しさん:2011/04/21(木) 23:59:41.84
巨大なソートは、分布数え + クイックでいいのでは?
たとえばソート対象はaa* 〜 zz*として。
aa - ca、 cb - fd 、fe - ma、・・・ とファイルへ分類して書き出しておき
各ファイルはメモリ上でソート可能とする。
それらをソートして連結。
前にも同じような事書いたが。




318 :デフォルトの名無しさん:2011/04/21(木) 23:59:45.04
ちょっとまって!
ってことはCよりC++を勉強したほうがいいってことなの!?
Cがおすすめってここで教えてもらったのに超損した!

319 :デフォルトの名無しさん:2011/04/22(金) 00:01:28.72
>>318
Cでオケ。C++やるならもっと他の選択肢も検討した方がいい。

320 :デフォルトの名無しさん:2011/04/22(金) 00:05:06.80
>>317
マージソートのほうがよさげ

321 :デフォルトの名無しさん:2011/04/22(金) 00:07:10.15
>>317
普通マージソート使う

322 :デフォルトの名無しさん:2011/04/22(金) 00:13:47.88
>>313
えっ、なんでなんすか?
整列済みなら、手間が省けて余計に早くなるんじゃないん?
違うんですか?

323 :デフォルトの名無しさん:2011/04/22(金) 00:23:20.77
勉強してください

324 :デフォルトの名無しさん:2011/04/22(金) 00:23:23.04
C言語よりコードが読みやすい言語はないだろ。緻密だから分かりやすい。


325 :デフォルトの名無しさん:2011/04/22(金) 00:26:35.76
シーケンシャルアクセスで済ませれば、HDD使ってもそれほど遅くならん。
>>
    ___   ━┓
     / ―  \ 
    /  (●)  \ヽ
  /   (⌒  (●) /
/´     ___/  
|        \   


326 :デフォルトの名無しさん:2011/04/22(金) 00:32:20.12
>>306
大きくも小さくも最速かどうかは証明か反証のどちらかが見つかっているということだ
驚異的とかハァハァするとかそういう主観は誰もおまえに尋ねてはいない

おまえに対する要求はただ1つ、嘘をつくな

327 :デフォルトの名無しさん:2011/04/22(金) 00:36:01.94
>>326
データ数Nで計算量がO(N)より縮まることはない。
質量保存則、運動量保存則と共通する原理に近い。

328 :デフォルトの名無しさん:2011/04/22(金) 00:41:56.47
C言語には文字列型がないと聞きました。

文字列型がある言語では、例えば"TREE"や"mountain"などの文字列は
全て同じバイト数なんでしょうか?

329 :デフォルトの名無しさん:2011/04/22(金) 00:42:01.99
計算量的最速って意味ね。実測ではクイックソート他のほうが速いことはあり得る。

330 :デフォルトの名無しさん:2011/04/22(金) 00:54:52.11
>>328
同じバイト数でそれら扱う言語があるかも知れませんが、スレ違いですね

331 :325:2011/04/22(金) 01:09:26.27
fC0eNFSnjkhYtDZに水遁されたw
まじ糞過ぎるwwwwww

332 : ◆QZaw55cn4c :2011/04/22(金) 08:06:24.40
>>315
非安定は、たとえばデータに通し番号を打って比較交換のときに考慮すればいいので、大きな問題ではない。
なお私はシェルソート信者。

333 :デフォルトの名無しさん:2011/04/22(金) 08:20:04.97
>>332
消えろクズ

334 : ◆QZaw55cn4c :2011/04/22(金) 12:42:21.68
>>331
http://hibari.2ch.net/test/read.cgi/tech/1295273862/411
で懸念してるとおりですね。

335 :デフォルトの名無しさん:2011/04/22(金) 12:50:55.40
>>334
失せろカス

336 :デフォルトの名無しさん:2011/04/22(金) 13:14:09.75
>>327
それはソートにおける原理と限定しておかないと。

337 :デフォルトの名無しさん:2011/04/22(金) 18:21:28.84
内部安定ソート以外は欠陥だっつってんだろ

338 :デフォルトの名無しさん:2011/04/22(金) 20:40:19.63
せやな

339 :デフォルトの名無しさん:2011/04/22(金) 20:55:44.27
CでGUI作ろうと思ったら環境依存じゃないと駄目なの?
そんなモジュールとか用意されてない?
例えばLinuxだとどうしたら・・・

340 :デフォルトの名無しさん:2011/04/22(金) 20:58:20.02
>>339
tcl/tk呼び出すとか

341 :デフォルトの名無しさん:2011/04/22(金) 21:16:18.16
仕事でやってる人に質問です
Cが出来てJavaが出来ない人っていますか?
その逆もいますか?

342 :デフォルトの名無しさん:2011/04/22(金) 21:18:27.94
>>341
Cができれば、Javaは出来るんじゃないか?
逆は無理かも知れない。

343 :デフォルトの名無しさん:2011/04/22(金) 21:19:54.61
>>341
両方いるね。
書けても、形だけとかそんな感じのも多い。


344 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/22(金) 21:32:34.23
CをやってC++,JavaをやってCに戻ったらCのコードがオブジェクト指向臭くなってよくなったわ

345 :デフォルトの名無しさん:2011/04/22(金) 21:50:22.68
>>341
俺俺 C⇔C++ はOK
Java は無理

当たり前に使ってる標準関数とかの相当品をリファレンス頼りにいちいち探さないとっていう理解度なので
道具として即使えてる C/C++ で済ましてる

346 :デフォルトの名無しさん:2011/04/22(金) 22:21:17.08
C言語で少数点20以下〜20桁までの計算(結果もこの範疇)したいのですがどうしたらいいですか?

10000000000000000000.00000000000000000000です。

例えば6323234×32342とか


0.2323×0.232453とか。

347 :デフォルトの名無しさん:2011/04/22(金) 22:21:50.08
>341

両方いる。

Cがちゃんと分かっている人には、ちょっと説明すれば、Javaは
かけるようになる。あとはAPIを覚えるだけ。

Javaがちゃんと分かっている人も、説明すればCでかけるだろうけど、
Cは標準関数があまりにも質素すぎて、我慢出来ないと思う。

まぁ設計が判る人というかOOPやデザパタが判る人なら、
C⇔Javaは可能でしょ。

348 :デフォルトの名無しさん:2011/04/22(金) 22:25:20.07
>>346
google 任意精度演算

349 :デフォルトの名無しさん:2011/04/22(金) 22:38:38.97
Cでコード書けてもちょっと説明されただけじゃJavaでまともなコードかけない。

350 :デフォルトの名無しさん:2011/04/22(金) 22:41:54.96
プログラマーになるためにはC言語を最低限どの程度覚えたらいいでしょうか?

351 :デフォルトの名無しさん:2011/04/22(金) 22:45:23.71
ならされた奴 いつのまにかなってた奴 は心当たりはあるけど
なりたいって言ってなった奴 ってあんまり印象ないな

352 :デフォルトの名無しさん:2011/04/22(金) 22:48:18.74
最低限って、
書き方覚えてもダメってことがこのスレ見たらわかるでしょ

353 :デフォルトの名無しさん:2011/04/22(金) 22:53:15.66
最低でも人様に使っていただく事ができるソフトをいくつか提示できる程度

354 :デフォルトの名無しさん:2011/04/22(金) 22:54:04.27
>>341
漠然と聞きたければマ板へ行け
ム板で聞きたければ具体的な問題を用意しろ

355 :デフォルトの名無しさん:2011/04/22(金) 23:24:55.76
>>346
その精度で計算できるハードウエアを持ってくる

356 :デフォルトの名無しさん:2011/04/23(土) 00:45:02.95
ゲーム制作メンバーを募集しています。

http://yuzuru.2ch.net/test/read.cgi/ff/1298538064/l50
http://www31.atwiki.jp/fftsukurou/

・最近のFFが嫌い
・昔のFFが好き

どちらかに当てはまれば誰でも結構です。
昔ながらのFFをみんなで作りましょう。


357 :デフォルトの名無しさん:2011/04/23(土) 00:55:02.10
参加申請とかはそこを見ればいいんですか?

358 :デフォルトの名無しさん:2011/04/23(土) 06:37:13.33
リトルエンディアンとビッグエンディアンについて質問。

<前提>

例えば 0xAABBCCDD の場合、これを配列 unsigned char a[4] だと
リトル:
    a[0] = DD
    a[1] = CC
    a[2] = BB
    a[3] = AA

ビッグ:
    a[0] = AA
    a[1] = BB
    a[2] = CC
    a[3] = DD
となります。

これを
printf("%x %x %x %x", a[0], a[1], a[2], a[3]) とすると、
リトル:
    DD CC BB AA
ビッグ:
    AA BB CC DD
となります。


359 :358:2011/04/23(土) 06:38:09.24
a[0] と a[3] の、メモリー中での位置を比較した場合、

上位番地 0xFFFF
    a[3]
    a[2]
    a[1]
    a[0]
下位番地 0x0000
となります。
だから &a[1] + 1 == &a[2] です。 配列の番号と、メモリの番地が比例関係なのは、リトルエンディアンでも、ビックエンディアンでも同様です。
(もしもリトルとビックで、配列の番号順が逆になってしまったら、 反比例の場合 &a[1] + 1 == &a[0] という現象も起こりうるはずですが、実際には起きてません。)

0xAA を2進数に直すと 10101010 です。これは
上位ビット(上位番地)
    1
    0
    1
    0
    1
    0
    1
    0
下位ビット(下位番地)
です。
これも配列同様に、ビックでもリトルでも、変化しません。

<質問>
つまり、ビックエンディアンで順序が逆転するのは、あくまで1バイト単位のブロックの並べ替え単位にすぎない。
ビット単位での逆転は起きない。ビット単位で見れば、上位ビットの高位桁、下位ビットに下位桁が記録されるというフォーマットに違いはない。

という理解で良いですか?

360 :デフォルトの名無しさん:2011/04/23(土) 06:40:47.05
C言語まったく関係ねえじゃん

361 :358:2011/04/23(土) 07:13:25.38
ビックとリトル、どちらが自然か?という観点で考えた場合、リトルの方が自然だと思います。
なぜなら、『数値の位』と『メモリー番地』が対応するからです。

リトルエンディアンの場合
    1 の位が、メモリー番地 0x0001 だとします。
    2 の位は、メモリー番地 0x0002 です。
    4 の位は、メモリー番地 0x0003 です。
    8 の位は、メモリー番地 0x0004 です。
つまり、位が増加すれば、メモリー番地も増加します。

ビックエンディアンの場合
    1 の位が、メモリー番地 0x0018 だとします。
    2 の位は、メモリー番地 0x0019 です。
    4 の位は、メモリー番地 0x001A です。
    8 の位は、メモリー番地 0x001B です。
    (1の位 〜 128の位までに関しては、位の増加 = 番地の増加です)
    しかし、 256 の位は、メモリー番地 0x0020 ではなく、 0x0010 になります。
つまり、位の増加と、メモリーの番地の増加が、必ずしも比例しないということです。

だからビックエンディアンは不自然だと思います。
もしもビックエンディアンの目的である「下位桁よりも、上位桁を先に読んでいける」を自然に実現したいのであれば、
バイト単位の入れ替えではなく、ビット単位での入れ替えをして記録すべきだと思います。(そこまで徹底してほしいです)

つまり、
Xエンディアンの場合
    1 の位が、メモリー番地 0x001F だとします。
    2 の位は、メモリー番地 0x001Eです。
    4 の位は、メモリー番地 0x001D です。
    8 の位は、メモリー番地 0x001C です。
という具合に、メモリー番地と位が、完全に反比例します。(ビット単位で)

362 :358:2011/04/23(土) 07:18:25.78
補足:
361のメモリー番地は、バイト単位ではなく、ビット単位としてです。
つまり 0x0000 〜 0x0020 で4バイトという意味です。


363 :デフォルトの名無しさん:2011/04/23(土) 07:18:49.52
ビット単位の順序は無意味
ビットにはアドレスが付いておらず、ビット単位でメモリから読むことは出来ない
バイト単位で読めば例えバイト内でビットが逆順で記録されてても読むときには通常の順序に戻る

364 :デフォルトの名無しさん:2011/04/23(土) 07:23:21.03
>359

質問にたいしては、その理解で良い、かな。
エンディアンを「バイトオーダー」ともいいますが、要するに、バイト単位でのデータ配置
方法を指しています。バイトの中身のビットフォーマットについては触れていません。

というか、Cの中ではビットの具体的な配置方法を知る方法は無いから、実際の
ビットフォーマットが逆転していてもわからないと思いますよ。

365 :358:2011/04/23(土) 07:38:38.05
この仕様書の
http://k.osask.jp/nosup/knzk000a.zip
#0004 : エンディアン等
の章で、ビッグエンディアンを採用するらしきことが書かれてるのですが、
気になったのは、最後の行の「これがワード列やビット列になってももちろん同様の方針
を採る。」です。

『ビット列でも同様』ということは、つまり
ビット単位で『上位アドレス=下位桁、下位アドレス=上位桁』をやろうとしてる? ということなのでしょうか?
だとしたら、これはビッグエンディアンと呼べるのでしょうか? 
別物ではないでしょうか? 
むしろ、さっきの例のXエンディアンに相当しませんか?(ビット単位での、全体的な、上位下位の逆転)

どうにもこの章の言わんとしてることが、いまいち理解できなくてこまってます。

ただ、思想としては、「符号ビットをまっさきに読みたい」という考えなのだろうから、
データの記録や送信や運用の方法として、「まず上位桁のバイトから転送していく」という考えなのだろうか?

366 :358:2011/04/23(土) 07:40:22.54
誤:「まず上位桁のバイトから転送していく」
正:「まず上位桁のビットから転送していく」

367 :デフォルトの名無しさん:2011/04/23(土) 07:54:16.49
そもそも1バイトが何ビットであるかは決まっていない。


368 :デフォルトの名無しさん:2011/04/23(土) 07:59:23.95
>>365
先ず第一に、スレ違い。
第二に、仕様書の問題なら当事者に聞け。
まぁ、趣旨としては「データをビット単位で扱う場合もワード単位で扱う場合も先頭データが先頭バイトに格納される」だと思うが。
データの並びと格納されるバイトの中身をごっちゃにしちゃいかんよ。

369 :364:2011/04/23(土) 08:29:50.56
>365

>ただ、思想としては、「符号ビットをまっさきに読みたい」という考えなのだろうから、
>データの記録や送信や運用の方法として、「まず上位桁のバイトから転送していく」という考えなのだろうか?
メモの内容はそうですね。というか符号ビットが大事だから、先に置くというポリシーらしい。

くり返しなりますが、
Cでは「物理的なビットオーダー」を気にする場面は無いはずです。
0x0aが
MSb 0b1010 LSb でも LSb 0b0101 MSbでも
Cで扱う場合は、それを区別できないですよね。

少なくとも同一のハード上で、それを気にすることはないです。
異なるハード間の話になれば、それはプロトコルの問題になります。




370 :デフォルトの名無しさん:2011/04/23(土) 09:04:22.46
>>369
>0x0aが
>MSb 0b1010 LSb でも LSb 0b0101 MSbでも
それ一緒や

371 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/23(土) 10:05:22.92
ビッグエンディアンだとハード屋さんにとって何が嬉しいの

372 :デフォルトの名無しさん:2011/04/23(土) 10:11:59.65
嬉しくない…

373 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/23(土) 10:12:59.23
ビッグエンディアンってみんなを不幸にするシステムなんじゃないの

374 :デフォルトの名無しさん:2011/04/23(土) 10:31:48.54
a[0] と a[3] の、メモリー中での位置を比較した場合、

上位番地 0x0000
    a[0]
    a[1]
    a[2]
    a[3]
下位番地 0xFFFF
となります。
>>って、直してあげればいいんじゃない。...

375 :デフォルトの名無しさん:2011/04/23(土) 11:11:06.92
>370

だから一緒だって。

物理的な並びと、それを同解釈するかは別問題でしょ。

横書きを左から右に読むのか
一期一会
右から左に読むのかは
会一期一
決め事でしか無いわけだから。

376 :369:2011/04/23(土) 11:30:30.38
369=375です。

なんだか舌足らずですみません。

物理的なビットオーダーがどうなっていようが、意味的なビット状態が
同じならば気にならない、ということです。

そもそもCではビットオーダーがわかりません。
Cでプログラムしている上では気にしたことも無いです。

いま気づいたけど、
>362
>361のメモリー番地は、バイト単位ではなく、ビット単位としてです。
ビットにはアドレスは無い。ここから勘違いが始まっている?



377 :374:2011/04/23(土) 11:51:26.62
エンディアンにビット順序は関係ない。エンディアンはバイト順序。

378 :デフォルトの名無しさん:2011/04/23(土) 16:00:12.26
10日でおぼえるC言語入門教室という参考書を一通りしたのですが、
これだけではプログラマーになるには難しいですか?

379 :デフォルトの名無しさん:2011/04/23(土) 16:05:28.25
君は今、プログラマーじゃないだろう?
そういう事だ

380 :デフォルトの名無しさん:2011/04/23(土) 16:10:32.39
>>378
プログラマーとはプログラムを作る人だ
つまり何らかのプログラムを作れば、あなたはプログラマーだ
参考書を読んだだけとか参考書のソースを写しただけとかじゃ自分でプログラムを作ったとは言いにくいが
何か作ってみ

381 :デフォルトの名無しさん:2011/04/23(土) 16:44:50.85
そういうのはいいです

382 :デフォルトの名無しさん:2011/04/23(土) 16:49:06.64
>>380
無意味なレスしなくていいから

383 :デフォルトの名無しさん:2011/04/23(土) 16:54:07.01
まずプログラミング言語とは道具であるという理解が大切。
10日でおぼえる〜を読んで自分のしたいことを実際に作れるか。
それで知識が足らないと思うんならもっと勉強する。
これでアナタも立派なプログラマー

384 :デフォルトの名無しさん:2011/04/23(土) 16:56:46.69
そういうのもいいです

385 :デフォルトの名無しさん:2011/04/23(土) 16:59:57.01
無理。終わり

386 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/23(土) 17:04:43.83
進化とは淘汰の結果である
つまりできるやつは最初からできるしできないやつはできないまま死んでいく
努力したらできないやつができるようになるわけじゃないセンスのないやつにはどうしようもない
つまり向いてないから死ねということ

387 :デフォルトの名無しさん:2011/04/23(土) 17:13:57.30
web系やるならCはコンソールで何か作れる程度に抑えて、JavaやPHPを極めたほうが仕事としては良いですか?

388 :デフォルトの名無しさん:2011/04/23(土) 17:16:56.56
>>387
そうですね。
C は必要になったら思い出せる程度で良いと思います。
それと SQL と JavaScript も習得すると良いと思います。

389 :デフォルトの名無しさん:2011/04/23(土) 17:36:44.19
結局今からやるならどの言語よ?
C++, Java, PythonでOK?

390 :デフォルトの名無しさん:2011/04/23(土) 17:38:41.17
C, Java, Python, JavaScript を薦めとくわ


391 :デフォルトの名無しさん:2011/04/23(土) 17:43:38.35
ここは C 言語のスレですから・・・

392 :デフォルトの名無しさん:2011/04/23(土) 17:48:03.01
C++, Java

393 :デフォルトの名無しさん:2011/04/23(土) 17:51:18.88
もうC++の栄光の時代は終わった
すでに使えるならともかく、今から覚える言語としては・・・


394 :デフォルトの名無しさん:2011/04/23(土) 18:13:18.63
ほっほっ

395 :デフォルトの名無しさん:2011/04/23(土) 18:21:01.53
むしろいまだにJavaが勧められることに驚き

396 :デフォルトの名無しさん:2011/04/23(土) 18:24:23.26
サーバサイドで生き残り、スマートフォンで生き残り
とにかくしぶとい印象があるから


397 :デフォルトの名無しさん:2011/04/23(土) 18:24:28.96
Androidアプリ作りたいんですけどJavaって今からならやらないほうがいいですかね?

398 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/23(土) 18:53:04.84
組み込みにおけるCのようにモバイルの主流はJavaじゃないの

399 :デフォルトの名無しさん:2011/04/23(土) 20:58:58.39
>397
Androidアプリをやりたいなら、Javaをやらざるを得ない。

>398
レイヤーによる。
アプリ層はJavaが多いが、下回りはCが多いのではないか。

400 :デフォルトの名無しさん:2011/04/23(土) 21:35:07.83
bitfieldの記述の時にエンディアンで変わるんですけど...

401 :デフォルトの名無しさん:2011/04/23(土) 21:47:03.13
質問ですがWindowsのシステムはC言語で作られているんですか?
それともコンパイラによってC言語が使えるようになってるだけですか?


402 :デフォルトの名無しさん:2011/04/23(土) 21:52:56.71
低レベル部分は謎だな

403 :デフォルトの名無しさん:2011/04/23(土) 21:58:44.81
一番低レベルな何言語、どんなOSにも共通する言語って何なんですか?
また言語を開発するときその低級言語を理解してないと言語の開発はできないのでしょうか?

404 :デフォルトの名無しさん:2011/04/23(土) 22:07:49.90
>>403
1行目:そんなものは存在しない
2行目:そんなことはない

405 :デフォルトの名無しさん:2011/04/23(土) 22:10:08.98
windowsの機能を使うには、winapiやダイレクトXでいいだろ。
それより低級なアクセスはせず言語作れるだろ。

406 :デフォルトの名無しさん:2011/04/23(土) 22:12:02.71
日本語でお願いします

407 :デフォルトの名無しさん:2011/04/23(土) 22:58:43.38
開発した言語からCに変換できればそれでいい

408 :デフォルトの名無しさん:2011/04/23(土) 23:01:38.17
フリーの逆コンパイラは一応あるけど
雰囲気が掴めるかな〜程度だったな

409 :デフォルトの名無しさん:2011/04/23(土) 23:25:49.71
winAPIって難しいよね〜
普通に構造体やら配列のポインタやら使いこなせないと分からん。。。

410 :デフォルトの名無しさん:2011/04/23(土) 23:39:08.04
>>409
全部を理解しようと思わずに、やりたいことがあればその度調べながらって割り切ってやればそんなに難しくない
ってかまともにやってられないわ

411 :デフォルトの名無しさん:2011/04/23(土) 23:45:26.85
WinAPIは面倒くさいだけで難しくはないと思うが

412 :デフォルトの名無しさん:2011/04/24(日) 00:50:27.67
>>401
C++

413 :デフォルトの名無しさん:2011/04/24(日) 01:45:55.63
C++な部分の多くはCのラッパーなんじゃなないの

414 :デフォルトの名無しさん:2011/04/24(日) 12:56:17.64
あかん、俺、どうもプログラムだけは性に向いてないみたいだわ。

10年やっても、どうにもならんかった。

415 :デフォルトの名無しさん:2011/04/24(日) 13:19:15.38
いいえ。Cのトランペッターです。

416 :デフォルトの名無しさん:2011/04/24(日) 14:19:46.50
ループ処理内で1つの条件を満たした時の値を変数に代入したいのですが
1回目見つかったとして、2回目が見つかったとき、変数の値に1回目、2回目の値と保存させたいのですが
どうすればいいでしょうか?

417 :デフォルトの名無しさん:2011/04/24(日) 14:23:21.58
変数Xに代入するとして
X += X の式で継続的に値が入っていきますか??

418 :デフォルトの名無しさん:2011/04/24(日) 14:23:29.98
値を入れる配列と、いくつ入れたかを保存する変数を用意する

419 :デフォルトの名無しさん:2011/04/24(日) 14:26:48.74
+=演算子をオーバーロードすればおk

420 :デフォルトの名無しさん:2011/04/24(日) 14:28:13.77
>>417
何で自分でやってみないの?

421 :デフォルトの名無しさん:2011/04/24(日) 14:32:59.38
>>419
C言語でのオーバーロードのやり方を教えてください

422 :デフォルトの名無しさん:2011/04/24(日) 14:49:16.89
ほら、釣りだっただろ?

423 :デフォルトの名無しさん:2011/04/24(日) 15:01:37.75
>>421>>416-417とは別人だw

424 :デフォルトの名無しさん:2011/04/24(日) 15:12:46.50
>>416
>ループ処理内で1つの条件を満たした時の値を変数に代入したいのですが
>1回目見つかったとして、2回目が見つかったとき、変数の値に1回目、2回目の値と保存させたいのですが

質問者の意図を判断しかねるんだが。
条件によるデータの検索なのか、
値を使った計算値が条件を満たすか、とか。
前者なら、同一ループ内で複数見つかる事もあるだろうし。

代入したい値というのが、満たしたときのループの条件なのか、
それとも条件を満たす、見つけたデータなのかもはっきりしない。


425 :デフォルトの名無しさん:2011/04/24(日) 15:50:08.00
>>424
条件によるデータの検索です

代入したい値は見つけたデータです

426 :デフォルトの名無しさん:2011/04/24(日) 15:56:12.91
data[N], data_cnt = 0;

for( ; ; ) {
if(データ発見) data[data_cnt++] = 見つけたデータ;
}

427 :デフォルトの名無しさん:2011/04/24(日) 16:04:58.75
>>426
ありがとうございます
配列を使用するみたいですね
配列を勉強してきます

428 :デフォルトの名無しさん:2011/04/24(日) 16:06:30.93
for(;ω;){

429 :デフォルトの名無しさん:2011/04/24(日) 16:11:16.10
418で終わってりゃいいのにな

430 :デフォルトの名無しさん:2011/04/24(日) 16:37:18.70
スレチになるとは思うけど、ふと思ったんで書いてみる。

fseek関数ってファイルの先頭と末尾の両方を指定できるんだから、
現在のメモリ番地を返却できるようにしてくれれば
簡単にファイルサイズ分かる気がするのは気のせいだろうか。

431 :デフォルトの名無しさん:2011/04/24(日) 16:41:43.75
>>430
そうだな ftell みたいなのがあればなぁ・・・あれっ

432 :デフォルトの名無しさん:2011/04/24(日) 19:54:29.21
fseek(SEEK_END)してftell()するイディオムは、対象がストリームやテキストモードの場合に破綻するので要注意。

433 :デフォルトの名無しさん:2011/04/24(日) 20:12:47.30
素直にstat使えばいいのに。駄目なの?

434 :デフォルトの名無しさん:2011/04/24(日) 20:23:07.00
ftell()はリターン値がlongだから。

435 :デフォルトの名無しさん:2011/04/24(日) 20:32:07.70
>>433
stat()はC標準関数じゃないよ

436 :デフォルトの名無しさん:2011/04/24(日) 22:14:12.61
これだからUNIX厨は

437 :デフォルトの名無しさん:2011/04/24(日) 22:31:24.49
ファイルシステムが環境によって異なるからなんだろうが、
ファイルサイズくらいは標準的な取得方法があってもいいよね?

438 :デフォルトの名無しさん:2011/04/24(日) 22:33:49.13
WindowsでもVCなら_stat(), _wstat()が使えるな

BCBなら _stati64, _tstati64, stati64, _wstati64

Win32ならGetFileAttributes()

439 :デフォルトの名無しさん:2011/04/24(日) 22:52:32.68
その調子であらゆるプラットフォームについて書いていってください

440 :デフォルトの名無しさん:2011/04/24(日) 22:53:35.92
やだよ
stat()のラッパーでも書けば?

441 : ◆QZaw55cn4c :2011/04/24(日) 23:11:40.11
関係ないかもしれないけれども、
win32api で既存のファイルにある内容をアペンドしようとして、
SetFilePointer(, , ,FILE_END) -> WriteFile() すると、ゴミが混入してしまいました。
SetFilePointer(f, 0, NULL, FILE_END) でも SetFilePointer(f, 1, NULL, FILE_END) でもうまくいかない。もしかして -1? まさか‥‥‥。

苦肉の策として
s1 = GetFileSize(f, &s2);
SetFilePointer(f, s1, (PLONG)&s2, FILE_BEGIN);
WriteFile(f, p, strlen(p), &n, 0);
にしてしまったんですが、正解はなんでしょうか?

442 :デフォルトの名無しさん:2011/04/24(日) 23:13:43.56
スレ違いです
Win32 APIスレで聞いてください

443 :デフォルトの名無しさん:2011/04/25(月) 12:05:44.75
yonmoji.exeって名前のプログラムをコマンドプロンプトで実行すると4行の文字列を出力します

あああああ
いいいいい
ううううううう
えええええ

これを3行目のみ背景色を変更する方法はございますでしょうか?

444 :デフォルトの名無しさん:2011/04/25(月) 12:16:54.00
どうぞこちらに ideone.com yonmoji.c を貼り付けて下さい。

445 :デフォルトの名無しさん:2011/04/25(月) 12:40:36.36
>>443
http://homepage2.nifty.com/c_lang/intro/no_58.htm

446 :デフォルトの名無しさん:2011/04/25(月) 12:46:55.58
>>443
C標準ではそんな機能はありません。Windowsなんかを使っているなら>445でもいいとして、
そうでないなら環境を明記の上、環境依存もOKのスレでどうぞ。

447 :デフォルトの名無しさん:2011/04/25(月) 12:47:13.57
>>445
うはw難しいですねw挫折しました

448 :デフォルトの名無しさん:2011/04/25(月) 12:56:33.30
>>447
難しかったらここへ行って聞いて見ろ
サンプルコードを書いてくれるかもしれん

Win32API質問箱 Build92
http://hibari.2ch.net/test/read.cgi/tech/1293326606/

>>446
C標準では色を変える機能はないよな
GUIもバリバリの環境依存だし

449 :デフォルトの名無しさん:2011/04/25(月) 20:06:11.11
visual c++ 2010使ってWin32コンソールアプリケーションで空のプロジェクトで
C言語の勉強してるんだけど、
ファイル入出力(fopen,fclose等)がうまくいかない
コンパイルとその後の実行はできるんだけどファイルが生成されない
どうしてか分かる人いますか 
↓ソース

450 :デフォルトの名無しさん:2011/04/25(月) 20:08:19.15
#include <stdio.h>

int main()
{
FILE *fp_r, *fp_w;
int cc;

printf("start fcopy.\n");

if((fp_r=fopen("C:\\Documents and Settings\\***\\My Documents\\Visual Studio 2010\\Projects\\file01.txt", "r"))==NULL) return(-1);
if((fp_w=fopen("C:\\Documents and Settings\\***\\My Documents\\Visual Studio 2010\\Projects\\file02.txt", "w"))==NULL) return(-1);

while((cc=fgetc(fp_r)) != EOF) fputc(cc, fp_w);

fclose(fp_r);
fclose(fp_w);

printf("end of fcopy.\n");
}

451 :デフォルトの名無しさん:2011/04/25(月) 20:10:34.28
カレントディレクトリとexeのあるディレクトリの違いに注意。

452 :デフォルトの名無しさん:2011/04/25(月) 20:12:59.24
file01.txtがないとか、file01.txt.txtだったとか。

453 :デフォルトの名無しさん:2011/04/25(月) 20:16:18.98
デバッガの使い方を覚えるべき

454 :449:2011/04/25(月) 20:16:56.37
あら?すまそ
実行自体失敗してました
どっかおかしいだけだ・・スルーでおねがいします

455 :449:2011/04/25(月) 20:23:14.97
すまそ、パス指定っていうかディレクトリ1階層まちがってた
だけだった

456 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/25(月) 20:54:30.45
エスケープシーケンスは

457 :デフォルトの名無しさん:2011/04/25(月) 21:48:18.67
VC++2010Expressなんですけどプロジェクト作って下のコード書いてF5押しても実行できません
#include <stdio.h>

int main(void)
{
printf("test");
return 0;
}

458 :デフォルトの名無しさん:2011/04/25(月) 21:55:46.65
実行できないんじゃなく、あっという間に終了してるの
気づいてないだけじゃないの?

459 :デフォルトの名無しさん:2011/04/25(月) 21:56:54.66
>>457
Shift+F5で実行してみろ

460 :デフォルトの名無しさん:2011/04/25(月) 22:08:16.15
なんか下のほうのスペースに文章が出てきて実行できないんです
Shift+F5押してみましたが反応しないのでF5押してみました
こういうふうにでてました
cuimenu.cpp
cuimenu.cpp(1): warning C4627: '#include <stdio.h>': プリコンパイル済みヘッダーの使用を検索中にスキップされました
ディレクティブを 'StdAfx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します
cuimenu.cpp(8): fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "StdAfx.h"' をソースに追加しましたか?
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========


461 :デフォルトの名無しさん:2011/04/25(月) 22:12:09.33
>>460
cuimenu.cppの頭に
#include "StdAfx.h"
を追加してください

462 :デフォルトの名無しさん:2011/04/25(月) 22:13:44.52
そのまえにスレ違いだろ

463 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/25(月) 22:23:46.71
空のプロジェクトにせずにwindowsアプリケーションかなんかでプロジェクト作っただろ
だから素人はLinux+viでgccしろと言ってるんだ

464 :デフォルトの名無しさん:2011/04/25(月) 22:29:14.46
テキストエディタでC言語の勉強してきてStdAfx.hは出てこなかったのですがVC++の場合は特別に書くまりなのでしょうか?


465 :デフォルトの名無しさん:2011/04/25(月) 22:34:12.72
aの値が100だったらループから抜けたいのですが
ifに書き換えずに、swtichを使う場合どうやって抜け出せばよいでしょうか?

int a = 100;
while(1){
switch(a){
case 100:
break;
}
}

466 :デフォルトの名無しさん:2011/04/25(月) 22:35:13.43
プロジェクトの設定で、プリコンパイル済みヘッダーをOFFにすればスッキリするよ。


467 :デフォルトの名無しさん:2011/04/25(月) 22:36:00.20
>>465
gotoで。

468 :デフォルトの名無しさん:2011/04/25(月) 22:41:14.07
int a = 100;
こうだな

while(flag){
switch(a){
case 100:
flag=0;
break;
}
}

469 :デフォルトの名無しさん:2011/04/25(月) 22:43:22.16
while (1) {
switch (a) {
case 100:
break;
default:
continue;
}
break;
}

470 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/25(月) 22:44:20.96

int main(void){
  fuck();
}

void fuck(void){
  int a = 100;
  while(1){
    switch(a){
      case 100:
      return ;
    }
  }
}

これで案は出尽くしたか

471 :デフォルトの名無しさん:2011/04/25(月) 22:46:18.12
>>465
#include <stdbool.h>

int main() {
  bool f = false;
  int a = 100;

  while(1) {
    switch(a) {
      case 100:
        f = true;
        break;
    }
    if(f) break;
  }
}

472 :デフォルトの名無しさん:2011/04/25(月) 22:48:16.69
無駄な変数と関数追加してんじゃねぇよ!

473 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/25(月) 22:49:27.57
じゃあ>>469の勝ちということで

474 :デフォルトの名無しさん:2011/04/25(月) 22:49:31.92
って言うと思った・・・

475 :デフォルトの名無しさん:2011/04/25(月) 22:50:21.23
4 秒遅かったか・・・

476 :デフォルトの名無しさん:2011/04/25(月) 22:52:40.21
flag を使う事に突っ込む人の解答は見た事が無いのであった

477 :デフォルトの名無しさん:2011/04/25(月) 22:52:41.05
その条件ならラベルは変数でも関数でもないからgotoでもいいはず

478 :デフォルトの名無しさん:2011/04/25(月) 22:55:53.00
gotoとか禁じ手。
>>469は汚い。
よって>>468優勝、終わり

479 :デフォルトの名無しさん:2011/04/25(月) 22:57:18.71
ogog ogto gogo ottg toog

480 :デフォルトの名無しさん:2011/04/25(月) 22:57:23.23
caseが1個だけならそれらでも問題ないけどswitchで1個前提のコードはきもいよ

481 :デフォルトの名無しさん:2011/04/25(月) 23:01:16.18
>>478
フラグよかgotoのほうがいい。

482 :デフォルトの名無しさん:2011/04/25(月) 23:02:08.37
getchで矢印の上キーを取得したとき、判定は72と0x48のどっちがいいでしょうか?

483 :デフォルトの名無しさん:2011/04/25(月) 23:05:08.90
>>482
どっちでもいいよ。
あとマジックナンバー使わないようにな。

484 :デフォルトの名無しさん:2011/04/25(月) 23:07:43.92
マジックナンバーってなんですか?

485 :デフォルトの名無しさん:2011/04/25(月) 23:09:18.62
プログラムの途中にとつぜん出てくる 72 とかの意味わかんない数字のこと

486 :デフォルトの名無しさん:2011/04/25(月) 23:15:52.88
まだこういう狂信者いたんだ

487 :デフォルトの名無しさん:2011/04/25(月) 23:44:55.82
int sln(char *str){
   int sln=0; for(;str[++sln];);
}

これは何をするプログラムでしょうか?
コンパイラ: bcc32

488 :デフォルトの名無しさん:2011/04/25(月) 23:46:20.23
>>487
strlen

489 :デフォルトの名無しさん:2011/04/25(月) 23:47:43.74
>>488
正解。 2byte文字にしか対応してないが
入力されたChar配列(文字列)の文字数をカウントして返す。

490 :デフォルトの名無しさん:2011/04/25(月) 23:49:44.54
では>>487がbcc32使用で正しく動作する理由を簡潔に説明してください

491 :デフォルトの名無しさん:2011/04/25(月) 23:50:11.79
returnしてないけど問題ないの?

492 : 忍法帖【Lv=19,xxxPT】 :2011/04/25(月) 23:50:58.88
>>487
コンパイルエラー

493 :デフォルトの名無しさん:2011/04/25(月) 23:51:49.56
当然エラー吐くだろうね

494 :488:2011/04/25(月) 23:51:58.98
strlen じゃなかった
str[0]=='\0' の時の動作が違った

うーん bcc だと最適化に関わらず
sln には EAX が使われるのは確定なのかも分からん

495 :デフォルトの名無しさん:2011/04/25(月) 23:52:24.35
returnを省略した場合は第一局所変数の値が返るから問題ない

496 :487:2011/04/25(月) 23:56:10.67
>>491
大丈夫だ、問題ない。

正解は
int slnはインラインじゃない自動変数であるから特に設定がない限りはEAXレジスタが使われる
よって、値が正常に返される
らしい

497 :デフォルトの名無しさん:2011/04/25(月) 23:58:07.09
warningを無視すんなって

498 :デフォルトの名無しさん:2011/04/25(月) 23:58:11.15
自分の環境では一応に正常にコンパイルされた。

bcc32とC言語を始めよう

499 :デフォルトの名無しさん:2011/04/25(月) 23:58:52.41
わりと、こわい

500 :デフォルトの名無しさん:2011/04/26(火) 00:00:15.26
>>497
もはやShortCoderの世界だから仕方ないさ

501 :デフォルトの名無しさん:2011/04/26(火) 00:00:35.34
>>495-496
thx
規格書の該当部分が見つからないので
暇見て自分で試してみる

502 :デフォルトの名無しさん:2011/04/26(火) 00:01:18.93
馬鹿なコンパイラは兎も角、最適化でループごと消えてなくなる悪寒。

503 :デフォルトの名無しさん:2011/04/26(火) 00:02:41.00
ほう、どう最適化されるか言ってみ

504 :デフォルトの名無しさん:2011/04/26(火) 00:03:18.06
で、bccでこのコードがエラー出ずにコンパイルできるのは
コンパイラ(bcc)のバグなのか・・?

505 :デフォルトの名無しさん:2011/04/26(火) 00:04:31.76
まともに読める(読もうとする)奴がほとんどいないね。

506 :デフォルトの名無しさん:2011/04/26(火) 00:06:50.72
自己紹介はいいです

507 :デフォルトの名無しさん:2011/04/26(火) 00:31:09.76
お前ら賢いな。

508 :デフォルトの名無しさん:2011/04/26(火) 00:40:10.79
>>505
トリビアが必要なコードって目にする機会がなくなってくからね

509 :デフォルトの名無しさん:2011/04/26(火) 00:44:10.11
トリビアがはやりなのかな、最近は

510 :デフォルトの名無しさん:2011/04/26(火) 02:10:23.40
>>495
処理系によっては、たまたま期待通り動くだけでしょ
Cリファレンスマニュアルいわく

>プログラムの制御が return 文に出会わずに関数本体の終わりに到達したときの効果は、
>式のない return 文が実行されるのと同じである。
>関数の返却値の型が void でないと、その振る舞いは未定義である。

511 :デフォルトの名無しさん:2011/04/26(火) 04:44:25.48
bcc32って環境の説明になってないだろ。
bcc55って書くならともかく。

512 :デフォルトの名無しさん:2011/04/26(火) 05:14:49.03
>>377
ビット順が逆だからバイト順も逆になるんだが。

513 :デフォルトの名無しさん:2011/04/26(火) 07:08:34.02
>>512
わざわざ古いネタ引っ張り出して馬鹿晒さなくていいから。

514 :デフォルトの名無しさん:2011/04/26(火) 07:32:41.16
そういや Borland C/C++ Compiler 5.5 の日本語版ってもう正規の入手は不可だっけ?


515 :デフォルトの名無しさん:2011/04/26(火) 12:09:05.48
Windowsです
コマンドプロンプトに横いっぱいに文字列を並べたいのですが
何バイト分文字列を表示できるか調べる方法ってありませんか?

516 :デフォルトの名無しさん:2011/04/26(火) 12:11:18.57
スレ違い

517 :デフォルトの名無しさん:2011/04/26(火) 12:29:16.80
>>515
WinAPIスレ辺りへどうぞ。

518 :デフォルトの名無しさん:2011/04/26(火) 12:42:31.39
わかりました

519 :デフォルトの名無しさん:2011/04/26(火) 13:20:17.63
画像ビューアを勉強で作りたいと思います
jpg画像を表示させたいのですが難しいでしょうか?
また、C#やJavaのほうが簡単でしょうか?

520 :デフォルトの名無しさん:2011/04/26(火) 13:28:33.42
>>519
へぇ、「難しい」って言ったらやめんの?そんな考えならJAVAだろうがC#だろうがはなっから無理じゃね?

521 :デフォルトの名無しさん:2011/04/26(火) 13:29:19.07
↑なんか嫌な事でもあったのか

522 :デフォルトの名無しさん:2011/04/26(火) 13:33:34.16
>>519
JAVAのほうが簡単です。
ということで、もうこのスレには用は無いでしょうから二度と来ないで下さい、以上。

523 :デフォルトの名無しさん:2011/04/26(火) 13:35:23.47
そうですか、理論的にCで作るのは面倒くさいというものを知っててのアドバイスだと思いますがjavaでやってみたいと思います
ただこのスレには来るなと指図される覚えはありません

524 :デフォルトの名無しさん:2011/04/26(火) 13:37:24.03
二度と来るな

525 :519:2011/04/26(火) 13:40:37.04
わかりましたもう二度とみなさんのお邪魔をしないようにします。
生意気な口を利いて本当にごめんなさいでした。

526 :デフォルトの名無しさん:2011/04/26(火) 13:45:15.68
Cの入門解説スレでJavaだの他の言語がどうたらと聴いてくる奴なんなの?

527 :デフォルトの名無しさん:2011/04/26(火) 13:48:19.23
>>520-527こんなにゴミレスで埋められるほうが迷惑

528 :デフォルトの名無しさん:2011/04/26(火) 13:49:19.01
お前も同類だろカス

529 :デフォルトの名無しさん:2011/04/26(火) 14:13:58.90
>>528
大丈夫、>527は自覚があるようだw

530 :デフォルトの名無しさん:2011/04/26(火) 14:19:38.77
誘導されたんでこっちでききます

double pai = 3.14159;
int mon = 2;
float flt = 1.2f;

printf("%5.2hf\n", flt);



これを出力させると1.20になるようなんですがなぜですか?
%5.2hfの意味がイマイチ分かりません。
hとfはいいんですが、5.2ってのがなんのこっちゃです

531 :デフォルトの名無しさん:2011/04/26(火) 14:22:45.42
http://www.google.co.jp/search?q=printf+%E6%9B%B8%E5%BC%8F

532 :デフォルトの名無しさん:2011/04/26(火) 14:24:22.87
小数点以下を2文字で 全部で5文字になるように出力

533 :デフォルトの名無しさん:2011/04/26(火) 14:29:12.13
>>530
どうでもいいけどそのhには何の意味もない。寧ろ害悪。普通に%5.2fと書くべき。
ついでに言えば、%gにももっと注目をw

534 :デフォルトの名無しさん:2011/04/26(火) 14:47:27.12
>>532
1.20だから4文字ですよね
あと残り1文字はどうなっとりますか?

>>533
なぜですか?

535 :デフォルトの名無しさん:2011/04/26(火) 14:55:45.25
>>534
もう仕様を読んでくださいよw

536 :デフォルトの名無しさん:2011/04/26(火) 15:00:05.03
では仕様が書かれたurlを教えてください
自分で読みます

537 :488:2011/04/26(火) 15:00:47.40
>>536
manpage printf

538 :デフォルトの名無しさん:2011/04/26(火) 15:32:04.00
>>535
おねがいしますよ

ちなみに>>536はニセモノです


539 :デフォルトの名無しさん:2011/04/26(火) 15:35:08.01
5カラム分のスペースを取り、小数点以下2桁。
先頭の余った桁は空白文字を埋める。

540 :デフォルトの名無しさん:2011/04/26(火) 15:44:26.37
>>534
早くしてよ!

541 :デフォルトの名無しさん:2011/04/26(火) 16:48:27.54
正規表現を使いたいのですがC言語で使えますか?

542 :デフォルトの名無しさん:2011/04/26(火) 17:37:15.69
つかえますん。

543 :デフォルトの名無しさん:2011/04/26(火) 18:34:27.90
標準では無いので、
鬼車とかのライブラリを用意する必要がある

544 :デフォルトの名無しさん:2011/04/26(火) 18:38:44.47
>>541
シェルスクリプトと勘違いしてない?

545 :デフォルトの名無しさん:2011/04/26(火) 19:38:15.26
正規表現ライブラリはCで書かれてるものもあるから、ある意味使えるといえなくも無い

546 :デフォルトの名無しさん:2011/04/26(火) 19:50:25.46
メモ帳のカーソル前にある文字列を取得する方法はございますか?
例えばauioって書いてあったらプログラムでauioを取得したいのですが

547 :デフォルトの名無しさん:2011/04/26(火) 19:54:20.57
>>546
環境依存質問OKかAPIスレで。

548 :デフォルトの名無しさん:2011/04/26(火) 20:45:17.22
>>546
秀丸ならそういうマクロも簡単にかけるよ。

549 :デフォルトの名無しさん:2011/04/26(火) 21:16:56.60
getch() の後に何かを付け足せば入力待機のループになる
というのを何処かのサイトで見たのですが忘れました
知ってる方いたら教えてください

550 :デフォルトの名無しさん:2011/04/26(火) 21:31:17.00
getch();

551 :デフォルトの名無しさん:2011/04/26(火) 21:33:17.37
マクロって何ですか?良く出てくる言葉なんですが意味が分かりません。
ミクロの逆って事は分かるのですが、C言語においてどういいう意味ですか?

552 :デフォルトの名無しさん:2011/04/26(火) 21:35:15.05
◆QZaw55cn4cを叩いてる人たちは嫉妬してるんだな
完全に論破されてたもんなぁ
まぁみんなも◆QZaw55cn4cを援護頼むよ

553 :デフォルトの名無しさん:2011/04/26(火) 21:36:19.51
>マクロ (コンピュータ用語) - コンピュータ用語の一種で、プログラム中の文字列を定義された規則に従って置換すること。

554 :デフォルトの名無しさん:2011/04/26(火) 21:40:20.28
>>552
あいつらは実力で勝てないからな

555 :デフォルトの名無しさん:2011/04/26(火) 21:43:01.72
>>552>>554
コテ外してこんな所で吠えるなよ◆QZaw55cn4c
論破されてたのはお前の方だろ
モリタポ儲けという屁理屈も通用しなくなったし
負け犬◆QZaw55cn4c

556 :デフォルトの名無しさん:2011/04/26(火) 21:44:26.60
>>548
メモ帳を挙げましたが、テキストエディタにとらわれず取得したいと思います


557 :デフォルトの名無しさん:2011/04/26(火) 21:47:49.39
>>552
俺も援護する
金儲けではなくモリタポ儲けであることが運営に認められたからな

558 :デフォルトの名無しさん:2011/04/26(火) 21:51:09.23
>>553
例を教えてください。
マクロって重要なんですか?

559 :デフォルトの名無しさん:2011/04/26(火) 21:55:29.10
>>557==◆QZaw55cn4c

>金儲けではなくモリタポ儲けであることが運営に認められたからな

いつ認められたのですか?

560 :デフォルトの名無しさん:2011/04/26(火) 21:58:15.99
>マクロって重要なんですか?
使わなくても書けるけど
知ってると何かと便利...

561 :デフォルトの名無しさん:2011/04/26(火) 22:01:41.91
なぁみんな
>>519 = >>551
だとは思わないか?

562 :デフォルトの名無しさん:2011/04/26(火) 22:05:31.82
>>559
少しは自分で考えな

563 :デフォルトの名無しさん:2011/04/26(火) 22:07:10.40
>>562
答えられないからって逃げるな◆QZaw55cn4c

564 :デフォルトの名無しさん:2011/04/26(火) 22:08:57.90
どうでもいい

565 :デフォルトの名無しさん:2011/04/26(火) 22:13:22.87
◆QZaw55cn4c の俺俺スレがある限りアンチの負けだろ

566 :デフォルトの名無しさん:2011/04/26(火) 22:27:08.16
>>565
スレ主は叩かれまくってるけどな
マゾかいな

567 :デフォルトの名無しさん:2011/04/26(火) 22:40:54.42
>>561
昼間荒らしてたのがお前だと思ってるよ

568 :デフォルトの名無しさん:2011/04/26(火) 22:44:40.50
>>566
あれだけ馬鹿にされたり叩かれまくりでも活動するんだから
根性はあるんじゃないか
いまどき珍しいよな


569 :デフォルトの名無しさん:2011/04/26(火) 22:48:13.36
>>568
心を病んでる方にそういう人多いです。

570 :デフォルトの名無しさん:2011/04/26(火) 23:06:11.01
◆QZaw55cn4cはお藻まいらにできないことをやってるんだよ

571 :デフォルトの名無しさん:2011/04/26(火) 23:11:52.36
>>568
あれは完全に頭が逝っとる
精神科に掛かるべきレベルだよ

572 :デフォルトの名無しさん:2011/04/26(火) 23:15:17.15
PGには頭が逝っているに多いからな

573 :デフォルトの名無しさん:2011/04/26(火) 23:17:48.68
>>572
違うよ
論理学をもっと勉強しようね

頭が逝ってるPGは多いが
PGが必ずしも頭が逝っているとは限らない
逆は必ずしも真ならず

◆QZaw55cn4cはPGでないにも関わらず頭が逝ってるけどな

574 :デフォルトの名無しさん:2011/04/26(火) 23:22:13.70

頭が逝ってるPGには、優秀なのがいる(たまにだけど)


575 :デフォルトの名無しさん:2011/04/26(火) 23:24:41.76
でも社内でトラブルを起こして大抵クビになる

576 :デフォルトの名無しさん:2011/04/26(火) 23:26:57.68
キチガイと天才は紙一重って言うしな
でも、PGには頭が逝っているだけのが多いよな

577 :デフォルトの名無しさん:2011/04/26(火) 23:36:50.93
>>576
それ逆
対人関係の多い仕事に就けないから、文句を言わないコンピュータ相手に
PGするようになった人種がかなり紛れ込んでいる

578 :デフォルトの名無しさん:2011/04/26(火) 23:45:59.46
PG?
コーダーだろ
上から降りてきた仕様書を黙々とコードに落とす作業してるのは

579 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/26(火) 23:48:24.90
そんなよくできた仕様書見たことない

580 :デフォルトの名無しさん:2011/04/26(火) 23:56:14.93
対人関係苦手な奴に限って問題解決能力だけはずば抜けてる奴いるよなw
まぁ俺なんだけどw人と喋らなくても頭で色々考えてるから人の気持ちが
分からなくても人と共有してるものを介すとコミュニケーションが取れた
りする。

でも対人関係も得意で問題解決能力も凄い人もたくさんいる^^

581 :デフォルトの名無しさん:2011/04/27(水) 00:04:50.13
クライアントと熟練工の分業に変なメンタリティを持ち込んで
現場が見えてないエライ人vs周りが見えてない作業員という
協調すべきが敵対する変なねじれ構造を形成する
我が国の悪しき生産特性がここにもあるってだけだ

582 :デフォルトの名無しさん:2011/04/27(水) 00:09:25.54
>>579
昔はそういう時代があったそうだよ。
その代わり、仕様書が上がるまで相当期間を費やされて、コーダーはほんとに必死でコードに落とすだけ。
50代くらいのコボラーはそういった世代じゃないかな。仕様書にクソうるさい人とかいないかい。

583 :デフォルトの名無しさん:2011/04/27(水) 00:13:32.67
良く分からん。

コードに落とすってどういうこと?

エンジニア プログラマー コーダーといることはわかるが
役割分担を教えてくれ。


584 :デフォルトの名無しさん:2011/04/27(水) 00:36:06.36
>>580
そういうのをアスペルガー症候群って言うんだよ^^
職場では嫌われ者だよ

585 :デフォルトの名無しさん:2011/04/27(水) 00:56:40.03
>>583
つ広辞苑

586 :デフォルトの名無しさん:2011/04/27(水) 01:14:47.26
要件を仕様に落とし
仕様を設計に落とし
設計を実装に落とし
そういえば何で落とすっていうんだ?ウォーターフォールとかV字のイメージ?

587 :デフォルトの名無しさん:2011/04/27(水) 01:18:26.77
>>586
杮落し
落成式
一件落着


588 :デフォルトの名無しさん:2011/04/27(水) 01:50:09.66
>>586
トップダウンアプローチだからでないの

589 :デフォルトの名無しさん:2011/04/27(水) 02:08:10.57
職種のランクを意識してんでしょ
ランクの高い方から低い方に落ちていく

590 :デフォルトの名無しさん:2011/04/27(水) 02:43:17.26
スレタイからどんどん離れていくw

591 :デフォルトの名無しさん:2011/04/27(水) 03:12:08.68
>>583
設計書がプログラムとほぼ1対1のレベルで書かれていたらしいよ。
たとえばこんな感じ。

変数Aに3を入れる。
関数Aを呼ぶ、引数は変数Aと、定義値のHOGE
戻り値が-1なら
 エラーログ出力関数を呼ぶ。引数は"〜〜に失敗しました。"
 -1を返却する
関数Bを呼ぶ、引数は…

コーディングから実行できるまでにかかる時間や資源が今では考えられないぐらいかかる時代があったようだよ。

592 :デフォルトの名無しさん:2011/04/27(水) 10:05:41.76
昨日からやたら他人を下に見る人がいるよね

593 :デフォルトの名無しさん:2011/04/27(水) 10:58:15.59
>>591
http://dvamp.blog62.fc2.com/blog-entry-22.html
今でもそういう設計書書いてるところあるみたい。

594 :デフォルトの名無しさん:2011/04/27(水) 11:16:21.64
>>578
設計とプログラミングは不可分ですよ。
どちらかしかしてない人は結局良いものはつくれないでしょう。

595 :デフォルトの名無しさん:2011/04/27(水) 11:48:30.40
そうでもないよ

596 :デフォルトの名無しさん:2011/04/27(水) 12:02:58.40
過信は禁物です。

597 :「初心者なのにエラそうだな]」(笑)劣等種憤死wwwwwww:2011/04/27(水) 13:02:23.00
http://hibari.2ch.net/test/read.cgi/win/1298974733/420
http://hibari.2ch.net/test/read.cgi/win/1298974733/420
http://hibari.2ch.net/test/read.cgi/win/1298974733/420

↑負け組・初心者に固執してたホモ精神障害者ってコイツぐらいだろwwww自爆乙wwwwwwwwwwwwwww



IP変えててもバレバレのマヌケ乙wwwwおいおい中途半端に自治気取ってんぞwwww
荒らしもしてねえのにバレる馬鹿ってコイツぐらいのもんだろwwwwwwwwwwwwww
上級者自慢とかwwwww情けねぇデブだなwwwwリアルでもやってそうwwwww必死チェッカー見ながらニヤつくキモヲタwww
頭悪すぎて勝手にファビョってることにしちゃってんだろうなw思考停止の典型wwwww
だから必死こいて顔面沸騰させてレスストップwwwクッソワロタwwww
知能低いから出る発言は突っ込み所しかない朝鮮人ぶりwwwwおもしれーーーwwww
知障レスもわざわざ読んでやる俺に感謝しろよ知的障害者wwwwwwwww
残念なのは顔だけにしとけよホモwwwwwFirefoxと初心者に劣等感抱いてる基地外wwwwwwwww
「「「エラそう」」」なんて言葉をすぐに口にする時点でコンプバレバレの自己紹介だなwwwwwwwww
普通わかんねえなら黙ってるもんなんだがなw白痴のプライド()に突き動かされてんだろなwwww「「「勘違い自称上級者」」」の社交性コンプででちゃった哀れな雑魚wwwwww



598 :デフォルトの名無しさん:2011/04/27(水) 13:06:24.06
>>593のリンク先の「設計書」は、別のコードに記述されていた「コメント」を
羅列したって感じw

599 :デフォルトの名無しさん:2011/04/27(水) 13:35:31.59
悔しいやつってレスに出るよな
長文きめえ

600 :デフォルトの名無しさん:2011/04/27(水) 13:56:53.46
板間違えたのかと思った。UNIX板にもそっくりなキチガイが降臨してた。w
春先は増えるねえ。
http://hibari.2ch.net/test/read.cgi/unix/1290209379/631

601 :デフォルトの名無しさん:2011/04/27(水) 14:00:13.92
とりあえずひどくなったらhttp://qb5.2ch.net/test/read.cgi/saku/1031353962/

602 :デフォルトの名無しさん:2011/04/27(水) 20:25:48.54
>>593
うちもこんな設計書もらって実装したり
こんな設計書書いたりしてるけど
まったく意味ないよな
こんなのレビューするくらいならさっさと実装してコードレビューしたほうが
問題点もすぐわかってましなのに

603 :デフォルトの名無しさん:2011/04/27(水) 20:42:31.20
奴隷は黙ってろ

604 :デフォルトの名無しさん:2011/04/27(水) 20:51:00.12
コードから起こすんじゃなくて、先にこのレベルの設計書を作っているとしたら、
設計書を作る方が奴隷であることは明らか。
その奴隷は奴隷の割りに知恵が働き、一回コードを書いて設計書を起こしているかもしれないが、
使われないコードを書いている行為はやはり奴隷である。

605 :デフォルトの名無しさん:2011/04/27(水) 21:56:41.13
ただ働きの話かと思ってらっしゃる方がおひとりいらっしゃいますね

606 :デフォルトの名無しさん:2011/04/28(木) 00:21:43.35
どちらにいらっしゃいますか

607 :デフォルトの名無しさん:2011/04/28(木) 02:05:29.50
IBMのエンジニアってプログラミングしない(出来ない)人が多い
社内でプログラミング教育しないのはIBMの流儀らしいね

608 :デフォルトの名無しさん:2011/04/28(木) 03:09:28.35
すみません、コンパイラ LSI C-86 Ver 3.30cについて
コンパイルがうまくいかないのでお聞きしたいです。

DLしてから、Cドライブに直接 Lsic86 というフォルダ名で置き
その中のBINフォルダ内にあるLCCファイルの書き換えも
済みました(XA→XC LA→LC IA→IC と書き換え)

さらにシステムから、環境変数→Pathの設定から
;C:\Lsic86\bin; と書き加えて変更適用。DOS画面でpathコマンドにより
書き込まれてる事を確認。

以上を行ったうえで再起動してから
メモ帳で簡単なprint文を作成し、拡張子を.cにして保存。
Lsic86フォルダにmySrcフォルダを作成し、そこに切り貼り。
DOS画面でcdコマンドによりmySrcフォルダをカレントにしておく。

いよいよコンパイル(test.cとする)というところですが、lcc test.c としても
実行されません。エラー文も出ず、何も表示されないというかバグるというか。
exeファイルは一応作成されてますが、testで実行しても何も表示されません。
書籍のCDROMに入ってるサンプルプログラムでも無理でした。

手順に特におかしいところは無いと思うのですが、もし何か見落とし
あるいは設定などに問題があればご指摘いただけると幸いです。
OSはXPです。

609 :デフォルトの名無しさん:2011/04/28(木) 03:11:49.20
ちなみにtestで作ったコードは

#include<stdio.h>

void main(){
printf("hello C \n");
}


です。

610 :デフォルトの名無しさん:2011/04/28(木) 03:16:00.14
XPでLSI C-86 Ver 3.30cとか、どんな罰ゲーム?

611 : 忍法帖【Lv=21,xxxPT】 :2011/04/28(木) 04:16:06.61
>>609
>610じゃないけど、設定を元に戻してそのままLSI-C86は忘れるのが吉。
どうしてもLSI-C86を動かしたいと言うのなら原因究明に付き合ってもいいけどはっきりいって、虚しいだけ。
その手間掛けるくらいなら、素直に今時の無料コンパイラを入手した方がいい。

612 :デフォルトの名無しさん:2011/04/28(木) 04:48:33.15
PGと言えば、プリングルズの今後が心配だな。
品質落ちないと良いんだが。

>>608
悪いことは言わないから
Turbo C 2.01 にしておきなさい。
統合開発環境付きで初心者にもオススメだよ。


613 :デフォルトの名無しさん:2011/04/28(木) 06:10:48.72
アセンブラのhltの制御不能版はありますか?(無限ループを除く)

614 :デフォルトの名無しさん:2011/04/28(木) 06:40:24.58
test.exeをつくっててwindowsのtest.exeを呼んで何も起きないと言っているオチ?


615 :デフォルトの名無しさん:2011/04/28(木) 07:03:25.23
そうです

616 :デフォルトの名無しさん:2011/04/28(木) 07:34:17.36
ぜんぜん関係ないけどWindowsの場合、mainはintで正常終了時return 0;するって決まりなかったっけ?

617 :デフォルトの名無しさん:2011/04/28(木) 07:48:39.73
あったけど廃れた。

618 : 忍法帖【Lv=21,xxxPT】 :2011/04/28(木) 09:34:30.81
んなこたーない

619 :デフォルトの名無しさん:2011/04/28(木) 15:45:36.15
>>616
windowsに限らずCの基本
これを守らないCプログラムはすべてゴミ

620 :デフォルトの名無しさん:2011/04/28(木) 15:50:59.15
というかvoid型は最初は無かっただけ。
最初からあったならmainはvoid型になっただろうね。
Javaみたいに。

621 :デフォルトの名無しさん:2011/04/28(木) 15:51:40.07
ならねーよ。間抜けは黙ってろ。

622 :デフォルトの名無しさん:2011/04/28(木) 15:53:16.88
終了判定に困るんだ(><;)

623 :デフォルトの名無しさん:2011/04/28(木) 16:09:16.45
>>619

ふんふん、>>609はゴミプログラム、書いた>>609もゴミ人間という認定ですね。

624 :デフォルトの名無しさん:2011/04/28(木) 16:15:38.83
>>616
WindowsはGUIでは戻り値が何であろうと無視される
CUIの時には意味がある

625 :デフォルトの名無しさん:2011/04/28(木) 16:18:09.89
>>624
嘘いうな

626 :デフォルトの名無しさん:2011/04/28(木) 16:18:58.44
>>624
無視されねえよw

627 :デフォルトの名無しさん:2011/04/28(木) 16:20:18.94
main()←こういう風に書く奴も俺的にはちょっと気に入らん。
main(void)って書けよ、と言いたい。4文字程度キー入力ケチったところで意味が無い。

628 :デフォルトの名無しさん:2011/04/28(木) 16:45:39.05
>>627
その二つは意味が違うだろ

629 :デフォルトの名無しさん:2011/04/28(木) 16:49:25.44
>>628
宣言時は違うが、定義時には事実上同じ。

630 :デフォルトの名無しさん:2011/04/28(木) 16:57:50.64
>>628
int main()とint main(void)の違い:
前者はC言語では関数呼び出しで引数のチェックをしない。
C++言語では引数が無いことを示す。

後者はC/C++言語とも引数が無いことを示す。


631 :デフォルトの名無しさん:2011/04/28(木) 17:42:59.10
◆QZaw55cn4cのコード分かりやすいな
実際こんなコード書けるプログラマは高脳なんだよなぁ

632 :デフォルトの名無しさん:2011/04/28(木) 17:44:56.85
露骨な嫌味は無意味

633 :デフォルトの名無しさん:2011/04/28(木) 17:52:28.60
>>625>>626
WinMain()だぞ

634 :デフォルトの名無しさん:2011/04/28(木) 17:53:08.63
>>633言い訳が苦しいぞ

635 :デフォルトの名無しさん:2011/04/28(木) 18:00:00.71
void main()って書くと脆弱なアプリケーションが一丁上がりってこと?

636 :デフォルトの名無しさん:2011/04/28(木) 18:05:57.54
>>627
元来は main() だったんだよ
main(void) にしたところで main(0) みたいな呼び出しを禁止できるだけだ
たった4文字といえど手間感=文字数/意味ではやっぱり気に入らない

ただしスタートアップを main(void) 前提で作られてしまうと
main() は想定外になるのでしぶしぶその前提に従うことになる

あくまで本音とは違う

637 :デフォルトの名無しさん:2011/04/28(木) 18:06:55.15
>>634
ほお
じゃあGUIをmain()で書いてみろよ

638 :デフォルトの名無しさん:2011/04/28(木) 18:14:28.87
GUIをmain()でってLinuxやOpenGLじゃあるような気がするが
どうなんだろ

639 :デフォルトの名無しさん:2011/04/28(木) 18:17:06.93
Windowsって書いてあるんだけど
まあ俺が言いたかったのはOpenGLではなくて普通のWin32のGDI何かで
書いたら戻り値を使う事はないって事を言いたかっただけ
お前らなんでそんなにかみつきたいんだ?
人のあら探しをする事にしか楽しみを見つけられないのか?

640 :デフォルトの名無しさん:2011/04/28(木) 18:18:31.27
OSに優しくエレガントで綺麗なコード推奨委員会

641 :デフォルトの名無しさん:2011/04/28(木) 18:21:47.29
>>637
#include <windows.h>
int main(){
MessageBox(NULL,TEXT("Hello"),TEXT(""),MB_OK);
return 0;
}

cl main.cpp /link /SUBSYSTEM:Windows /ENTRY:"main" user32.lib

642 :デフォルトの名無しさん:2011/04/28(木) 18:24:47.99
>>641
>>639
リロード位してから書き込めよ

643 :デフォルトの名無しさん:2011/04/28(木) 18:25:54.27
女々しい奴だ

644 :デフォルトの名無しさん:2011/04/28(木) 18:28:37.33
>>639
スレタイ読める?


645 :デフォルトの名無しさん:2011/04/28(木) 18:29:06.09
>>637
え? え?? おまえできないの???

646 :デフォルトの名無しさん:2011/04/28(木) 18:33:25.42
>>643
俺が女々しいんじゃなくてお前らがあら探しばかりする性格が悪い奴
ばかりって事だ

647 :デフォルトの名無しさん:2011/04/28(木) 18:33:44.66
>>641
/ENTRYでentryポイントって指定できるんだ
しらなんだ


648 :デフォルトの名無しさん:2011/04/28(木) 18:34:22.13
自己批判か
ご苦労

649 :デフォルトの名無しさん:2011/04/28(木) 18:37:44.05
>>641
つか引数のカンマの後にどうしてスペースを入れないかね。。
int main(void)としないのも気に入らない。

MessageBox(NULL, TEXT("Hello"), TEXT(""), MB_OK);

650 :デフォルトの名無しさん:2011/04/28(木) 18:38:07.58
>>648
>>647==>>638
で俺>>637じゃない

651 :デフォルトの名無しさん:2011/04/28(木) 18:40:05.35
>>638
win32 で普通にできるよアホ

652 :デフォルトの名無しさん:2011/04/28(木) 18:43:11.95
カンマの後ろのスペースはスレ違い

653 :デフォルトの名無しさん:2011/04/28(木) 18:45:44.51
main.cpp
このほうがもっとすれ違いじゃね

654 :デフォルトの名無しさん:2011/04/28(木) 18:51:48.41
#include <windows.h>
int main(){
MessageBox(NULL, TEXT("Hello"), TEXT(""), MB_OK);
return 0;
}

cl /Tc"main.cpp" /link /SUBSYSTEM:Windows /ENTRY:"main" user32.lib

655 :デフォルトの名無しさん:2011/04/28(木) 19:01:11.00
強制しー指定でmain()なんて.... ゆるす?

656 :デフォルトの名無しさん:2011/04/28(木) 19:44:03.32
>>654
これってGUIっていうの?

657 :デフォルトの名無しさん:2011/04/28(木) 19:53:19.82
>>656
立派なGUIだよ。

658 :デフォルトの名無しさん:2011/04/28(木) 19:55:55.62
>>624 に言わせると、CUI 。

659 :デフォルトの名無しさん:2011/04/28(木) 20:27:32.51
人のあら探しをするのが男らしいと思っている馬鹿ども
お前の方が余程女々しい

660 :デフォルトの名無しさん:2011/04/28(木) 20:29:09.29
624 名前:デフォルトの名無しさん [sage]: 2011/04/28(木) 16:15:38.83
>>616
WindowsはGUIでは戻り値が何であろうと無視される
CUIの時には意味がある

661 :デフォルトの名無しさん:2011/04/28(木) 20:29:27.29
どれだけ引っ張るんだよ
ほんとオカマは女々しいな

662 :デフォルトの名無しさん:2011/04/28(木) 20:30:30.66
あらでもなく明らかだけどな

663 :デフォルトの名無しさん:2011/04/28(木) 20:34:03.25
本人も間違っていたことん気づいたからあら捜しなんて言葉使ったんでしょ
そっとしといてやれよ

664 :デフォルトの名無しさん:2011/04/28(木) 20:36:44.59
言い返せなくなると「女々しい」の一点張り
◆QZaw55cn4cと同じくらい糞

665 :デフォルトの名無しさん:2011/04/28(木) 20:41:51.98
>>664
いやもしかしたら案外>>624は◆QZaw55cn4cかもな
何となくそんな気がする

666 :デフォルトの名無しさん:2011/04/28(木) 21:09:51.83
まだC言語の講義を1回しか受けてない初心者です
宿題を家でやろうとしたのですが説明が全部学校の動作環境で説明されており分かりません
とりあえずCygwinと言うコンパイラを導入して説明どおりに「gcc ファイル名.c」と入力しコンパイラしようとしたのですが
「gcc: ファイル名.c: No such file or directory
gcc: no input files             」と出てきました
これはどういうことなのでしょうか?
ファイルやディレクトリ移動してから入力すれば宜しいのでしょうか?

667 :デフォルトの名無しさん:2011/04/28(木) 21:13:47.05
>>666
そのディレクトリにファイルが無い
作れ

668 :666:2011/04/28(木) 21:21:31.05
開いた直後はどこのディレクトリのことを指しているのでしょうか?
またディレクトリ移動系のコマンドとかはないのでしょうか?

669 :デフォルトの名無しさん:2011/04/28(木) 21:25:26.72
pwd
pushd

670 :デフォルトの名無しさん:2011/04/28(木) 21:25:32.84
>>668
cygwin のプロンプトで pwd と打てば現在いる(cygwin内の)ディレクトリ名が出ます
たぶん home の中のユーザ名のディレクトリです
移動は cd コマンドで出来ますが、cygwin ディレクトリの外に出るのは少々面倒です

671 :666:2011/04/28(木) 21:29:48.06
>>669-670
ありがとうです
とりあえずgccコマンドは使えたので頑張ってみます

672 :デフォルトの名無しさん:2011/04/28(木) 21:32:25.70
> 移動は cd コマンドで出来ますが、cygwin ディレクトリの外に出るのは少々面倒です

cd /cygdrive/c
うーん、面倒だなw

673 :デフォルトの名無しさん:2011/04/28(木) 21:51:56.34
いや、実は何が面倒って、俺が説明するのが面倒なんです・・・ ごめんなさい
mount コマンドでマウントポイントの一覧が見れますけど、C: が /cygdrive/c にマウントされてるんですよ・・・と言うだけで理解してもらえればいいんですが

674 :デフォルトの名無しさん:2011/04/28(木) 21:59:49.32
といわずとも、/cygdrive配下に各ドライブごとのディレクトリがあるからそっちを見てね、でいいんじゃないの?

675 :デフォルトの名無しさん:2011/04/28(木) 22:09:28.96
動いた後のexeファイルのdatファイルを作らなければならないのですがどのように作るのでしょうか?
適当なサイトでCygwinのコマンド一覧を見たのですがらしきものがありませんでした
これはコマンドプロンプトのほうで作るのでしょうか?

676 :デフォルトの名無しさん:2011/04/28(木) 22:14:04.00
この支離滅裂な感じ
◆QZaw55cn4cの自演だなぁ

677 :デフォルトの名無しさん:2011/04/28(木) 22:22:54.63
>>672
バッチファイルにしちゃえよ

678 :デフォルトの名無しさん:2011/04/28(木) 22:24:44.89
>>675
一度ゆっくり深呼吸してから口に出してスレタイ読め。

679 :デフォルトの名無しさん:2011/04/28(木) 23:07:35.36
>>675
Cygwin使っている人いますか? 5
http://hibari.2ch.net/test/read.cgi/win/1175419995/


680 :デフォルトの名無しさん:2011/04/28(木) 23:15:04.82
>>678-679
すいません
コンパイルで検索かけてて見つからなかったのでありがたいです

681 :デフォルトの名無しさん:2011/04/29(金) 00:57:03.31
たいやきうどん ばよえーん

682 :デフォルトの名無しさん:2011/04/29(金) 01:23:25.00
Cygwin とかありえんわ。
学習なら LCC-Win32 辺りにしときなさい。
商用利用しなければ無償だから。


683 :デフォルトの名無しさん:2011/04/29(金) 01:30:24.55
Cygwinなんて使ってるのは◆QZaw55cn4c位なもんだろう

684 :デフォルトの名無しさん:2011/04/29(金) 01:36:52.27
VCのVCVARS32超便利

685 :デフォルトの名無しさん:2011/04/29(金) 01:38:54.31
%comspec% /k ""F:\Microsoft Visual Studio 8\VC\vcvarsall.bat"" x86

686 :デフォルトの名無しさん:2011/04/29(金) 01:39:09.51
Windowsの流儀ならmainじゃなくて
int _tmain(int argc, _TCHAR **argv)
だろ。

687 :デフォルトの名無しさん:2011/04/29(金) 08:07:39.76
>>686
ちなみにそういうWindowsの流儀てどこ見りゃ分かるの?

688 :デフォルトの名無しさん:2011/04/29(金) 08:29:44.02
そりゃMicroSoft公式サイトだろ。MSDNとか。

689 :デフォルトの名無しさん:2011/04/29(金) 08:34:37.19
>>688
msdnって言語仕様とかはリファレンスがあるけど
「Windowsアプリケーションたるものこうあるべき」みたいな設計思想を綴った文書って見つからなくない?

690 : [―{}@{}@{}-] デフォルトの名無しさん:2011/04/29(金) 10:24:10.87
static constな定数ってRAMを消費するんですか
constな定数はROMを消費するんですよね定数は全部constだけにしといた方がいいんすか

691 :デフォルトの名無しさん:2011/04/29(金) 10:27:48.52
>>690
RAMに置かれるかROMに置かれるかは環境しだいだけど、
constがROMに置かれる環境ならstatic constもROMに置かれるんじゃないか?

692 :デフォルトの名無しさん:2011/04/29(金) 12:27:23.15
どうやるとコンパイラはROMを配置したアドレスが分かるのかな?

693 :デフォルトの名無しさん:2011/04/29(金) 12:31:43.19
RAM上で処理させる方法ってありますか?

694 :デフォルトの名無しさん:2011/04/29(金) 12:35:14.37
>>689
Games for Windowsガイドラインとかあるけど、
こういうのじゃダメ?

695 :デフォルトの名無しさん:2011/04/29(金) 12:38:08.29
>>693
環境依存だろ。
PCなら全部RAMだし、PS以降の最近のゲーム機もみんなRAMだよな。


696 :デフォルトの名無しさん:2011/04/29(金) 12:45:34.43
■質問です。
DialogProc関数で
「IDC_LIST1のアイテムをダブルクリックしたとき」
のウィンドメッセージを教えてください。

ダブルクリック -> ダブルクリックされたIDC_LIST1のテキストをMessageBox関数で表示
という風にしたいと思っています。

http://yokohama.cool.ne.jp/chokuto/urawaza/message/
ここを探したのですが見つかりませんでした。

どういう風に書けばよいのでしょうか

697 :デフォルトの名無しさん:2011/04/29(金) 12:57:32.08
>>696
名前からしてリストボックス? だとしたら LBN_DBLCLK
使い方はぐぐってください

698 :デフォルトの名無しさん:2011/04/29(金) 13:51:49.60
>>695
お前このスレで環境依存ばっかり書いてる奴だろ

699 :デフォルトの名無しさん:2011/04/29(金) 14:24:26.73
環境依存でもいいけど環境依存なら環境を指定しろよ。
ファミコンやスーファミなら答えられるから。


700 :デフォルトの名無しさん:2011/04/29(金) 15:34:07.83
>>698
環境依存て言いたくて仕方ないお年頃なんだろw

701 :デフォルトの名無しさん:2011/04/29(金) 15:36:47.76
>>699
頭大丈夫?
環境指定したら即レスされて構ってもらえないじゃないか

702 :デフォルトの名無しさん:2011/04/29(金) 16:13:46.32
http://codepad.org/kATKeRlk
上のコードが、不具合ばっかりです。(c言語)
ジャンケンをするプログラムなのですが、
・変数yourとmyにおいて、「移植性のないポインタ変換」とでてエラー
・変数yourとmyの定義を*your,*myにするとコンパイルエラーは免れるが、
 scanfで入力すると、exeが落ちる

正しいコードを教えてくれると嬉しいです・・・

703 :デフォルトの名無しさん:2011/04/29(金) 16:17:40.39
一体どこのscanfを参考にしたらこんなコードが生まれるんだろうな

704 :デフォルトの名無しさん:2011/04/29(金) 16:23:34.19
文字列の比較は == でやっちゃ駄目よ。


705 :デフォルトの名無しさん:2011/04/29(金) 16:30:57.85
その前に文字列にもなってないじゃん
ポインタも理解してないし
入門書の最初から勉強しなおしたほうがいいと思う。

706 :デフォルトの名無しさん:2011/04/29(金) 16:32:35.73
>>702
文字と文字列の区別をつけてみよう。

char c;
char *p;
scanf(" %c", &c); // OK
scanf(" %s",c); // いろいろヤヴァイ
if (c == "r" ){} // OK
if (c == "r" ){} // warning: comparison between pointer and integer
p = "あばばば"; // OK
c = "あばばば"; // warning: assignment makes integer from pointer without a cast

707 :デフォルトの名無しさん:2011/04/29(金) 16:33:38.46
ちょいミス。↓が正しい。

if (c == 'r'){} // OK


708 : ◆XEE2zLj0dE :2011/04/29(金) 16:57:53.97
>>702
http://codepad.org/aq3EGeXv
どこまでしていいのかわからないけど、ほどほどっぽいものを。

709 :デフォルトの名無しさん:2011/04/29(金) 16:59:54.57
初学者は scanf じゃなくて gets 使おうぜ。
単純で解りやすくて使いやすいから便利。


710 :デフォルトの名無しさん:2011/04/29(金) 17:02:44.78
scanf も gets も使うなよw
gets はもう無くなるし

711 : ◆XEE2zLj0dE :2011/04/29(金) 17:02:44.82
>>702
http://codepad.org/nEr28M3O
ごめん、自分がチョキで相手がグーの時に勝ち判定になってたのを直した。

712 :デフォルトの名無しさん:2011/04/29(金) 17:20:17.76
>>703-711
皆様本当にありがとうございました!
c言語の文字の比較、代入など学ぶことが出来ました!

ActionScriptを使ってた身なので、文字と数値を同じように扱っちゃうんですよね;


713 :デフォルトの名無しさん:2011/04/29(金) 17:32:45.50
危険性を教えた上でgetsを教えるならいいが
わかりやすいという理由で薦めるのはクソ野郎だ

714 :デフォルトの名無しさん:2011/04/29(金) 17:36:32.20
scanfもgetsも入門書ではメジャーなのに非推奨と言われる現実。
fgetsだと初心者には難しい…か?
出てきてもファイルに使ってるパターンがほとんどだよね。

715 :デフォルトの名無しさん:2011/04/29(金) 17:45:02.42
まともな知能があれば周知の事実だし
バカはバカで自分で痛い目みたいと分からないから
気にする必要なし
他人事だしな

716 :デフォルトの名無しさん:2011/04/29(金) 18:03:22.76
情けは人のためならず

717 :デフォルトの名無しさん:2011/04/29(金) 18:15:20.36
関数を定義するところまではわかったのですが
ifやforのところに代入?するやり方がいまいちピンとこないのですが・・・

718 :デフォルトの名無しさん:2011/04/29(金) 18:20:28.15
お前の質問にピンとこない

719 :デフォルトの名無しさん:2011/04/29(金) 18:36:12.33
質問かどうかもわからない

720 :デフォルトの名無しさん:2011/04/29(金) 18:38:53.36
>>714
>scanfもgetsも入門書ではメジャーなのに非推奨と言われる現実。

著者が初心者に教えるのが面倒と思っているのでscanfやgetsを使っているだけ。

どうせdefineもincludeもmainも初心者にはワケワカメだから
fgetsもオマジナイにして矯正させても何も問題はないんだよな。

何も教える必要はない。先へ進める人はそのうち理解する。
fgetsを使わない初心者本を書かない単なるサボリだわ。

721 :デフォルトの名無しさん:2011/04/29(金) 18:50:05.90
あなたのイニシャル、年齢、身長を変数に代入し、これを表示しなさい。身長は
小数点以下1ケタを表示する。

実行例
イニシャル:M
年齢:18歳
身長:169.2cm

#include<stdio.h>

main()
//変数の宣言
char initial; //イニシャル
int age; //年齢
double height;//身長

//代入
initial = 'M';
age = 18;
height = 169.2;

//表示
printf("イニシャル:%5c\n,initial);
printf("年齢 :%5d才\n",age);
printf("身長   :%7.1fcm\n,height);
}


この%5、%5、%7.1の意味を教えて下さい

722 :デフォルトの名無しさん:2011/04/29(金) 18:50:50.87
>>721
http://archive.linux.or.jp/JM/html/LDP_man-pages/man3/printf.3.html

723 :デフォルトの名無しさん:2011/04/29(金) 18:53:54.11
>>721
5とか7とかは幅
.1は精度
最後のcとかdとかfとかが変換指定子

724 :デフォルトの名無しさん:2011/04/29(金) 18:54:20.98
>>720
あー、初心者本に自分の理想像がありながら
それを見つける能力がない&自分でも書かないわけね

> fgetsを使わない初心者本
あるよ普通に
おまえが知らないだけ
もしくはおまえの言う初心者とレベルが違いすぎて認識できないだけ

725 :デフォルトの名無しさん:2011/04/29(金) 18:57:21.43
>>722-723
ありがとうございます
参考書に載ってなかったので助かりました

726 :デフォルトの名無しさん:2011/04/29(金) 19:04:42.51
>>697
ありがとうございました。
無事実装することができました。

727 :デフォルトの名無しさん:2011/04/29(金) 19:07:40.04
>>724
機嫌悪すぎだろw
ここの奴ら殺伐としすぎ

728 :デフォルトの名無しさん:2011/04/29(金) 19:16:31.92
>>724
ちゃんと読みなよ。

729 :デフォルトの名無しさん:2011/04/29(金) 19:20:42.75
>>724

730 :デフォルトの名無しさん:2011/04/29(金) 19:44:26.75
>>724
普通にあるなら、そのうちの一冊で良いからここで上げてみなよ。

731 :デフォルトの名無しさん:2011/04/29(金) 19:44:36.58
>>714
scanf()が簡単って言うけど、ちょっと進んで、エラーチェックしようとか
ループの中で繰り返そうとかって処理を書こうとするととたんに難しく
なるしな。

732 :デフォルトの名無しさん:2011/04/29(金) 20:13:32.79
>>730
http://www.nicovideo.jp/watch/sm12986538

733 :デフォルトの名無しさん:2011/04/29(金) 20:26:07.59
fgetsを使わない初心者本がないといってるのは>>730だけ

734 :デフォルトの名無しさん:2011/04/29(金) 20:28:01.88
質問です。
文字と文字の間のマスの数を固定したいのですが
その文字の間にランダムに☆が入るときどうすればよいでしょうか?


1:☆☆☆     :
2:☆☆☆☆    :
3:☆       :

上記のようにしたいのですが
後ろの:の位置を固定できません。

735 : ◆XEE2zLj0dE :2011/04/29(金) 20:35:18.52
等幅フォントで出力される環境なら、%-20sとかで固定幅左詰で出力すればいいと思う。

736 :デフォルトの名無しさん:2011/04/29(金) 20:37:55.00
>>734
例えば printf("%-15s:", s); とする。
但し、上記例であれば strlen(s) <= 15であること。
更に出力は固定幅フォントが使われていること。

737 :デフォルトの名無しさん:2011/04/29(金) 20:39:45.29
タブで

738 :734:2011/04/29(金) 21:09:27.82
>>735 >>736
等幅フォントかはわかりませんができませんでした。
>>737
\tのことでしょうか?やってみましたができませんでした。

質問の内容は少しかわっていますが以下のようなプログラムです。
じゃんけんで出した手の頻度を*の数であらわしています。
#include<stdio.h>

int rn(int n);

int main(){

int n=1,i,m,kaisuu[3],max,max_n;


for(i=0;i<3;i++)
kaisuu[i]=0;

printf("じゃんけんする回数を入力してください>");
scanf("%d",&m);
printf("1=ぐー、2=パー、3=ちょき\n");
for(i=0;i<m;i++){
++kaisuu[rn(n)];
n=(48359*n+253611)%3233348;
}


739 :734:2011/04/29(金) 21:10:20.14
続きです
max=kaisuu[0];
max_n=0;
for(i=1;i<3;i++){
if(max<kaisuu[i]){
max=kaisuu[i];
max_n=i;
}
}

for(i=0;i<3;i++){
printf("%5d: ",i+1);
int counter=0;
while(counter!=10*kaisuu[i]/max){
printf("*");
counter++;
}

printf("%d\n",kaisuu[i]);

}

return 0;
}

int rn(int n){
int d;
d=(48349*n+2531341)%3;
return d;
}


740 :734:2011/04/29(金) 21:12:12.66
*の後の数字をそろえたいです。

連投、わかりにくいプログラム失礼しました。

741 :デフォルトの名無しさん:2011/04/29(金) 21:17:28.96
for(counter = 0; counter < 10; counter++) printf("%c", counter < 10 * kaisuu[i] / max ? '*' : ' ');

742 :デフォルトの名無しさん:2011/04/29(金) 21:34:02.87
>>738
一文字づつ printf って最初から言ってくれれば良かったのに (ry

743 :734:2011/04/29(金) 21:35:52.17
>>741

printf("%c", counter < 10 * kaisuu[i] / max ? '*' : ' ');
は?の前が正しければ*,誤りなら空欄ってことですか?








744 :734:2011/04/29(金) 21:50:32.18
>>742
わかりにくい質問ですいません。

745 :デフォルトの名無しさん:2011/04/29(金) 21:54:04.60
今日も◆QZaw55cn4cは糞

746 :デフォルトの名無しさん:2011/04/29(金) 22:04:55.93
おまえらよく見分けられるな

747 :デフォルトの名無しさん:2011/04/29(金) 22:08:02.08
◆QZaw55cn4cの文体は慇懃無礼だからすぐに分かる

748 :デフォルトの名無しさん:2011/04/29(金) 22:09:58.97
>>732-733
なんだ、やっぱり無いんだな。

749 :デフォルトの名無しさん:2011/04/29(金) 22:28:18.66
>>748
>>732

750 :デフォルトの名無しさん:2011/04/30(土) 00:37:13.30
>>733
>fgetsを使わない初心者本がないといってるのは>>730だけ

全ての初心者本はfgetsを使うといってるのは>>730だけ
二重否定わずらわしい。上の表現でほぼ一致してると思う。

751 :デフォルトの名無しさん:2011/04/30(土) 01:05:34.37
細けぇことはうんぬん

752 :デフォルトの名無しさん:2011/04/30(土) 01:12:26.80
質問ですが、プログラミング言語を作る時はどうやって作るんですか?

コンピュータの場合最も低級な言語はトランジスターなどの部品の電気信号
を直接支配する規約的言語があるんですよね?新しいプログラミングを作る
時はその規約的言語をリファレンスして作るんですか?




753 :デフォルトの名無しさん:2011/04/30(土) 02:01:27.86
>>752
我々がさわれる最も低級なものは機械語
CPUは機械語コードを解釈して回路を動かす
新しい言語を作るときは、その言語自体は、紙の上で鉛筆でも使いながらどんな言語にするかをじっくり検討すればいい
言語の仕様が決まったらコンパイラなりインタプリタなりを作る
コンパイラはCとかのプログラミング言語で書かれたソースコードを機械語に変換するプログラム
その新しい言語のコンパイラは、Cで作ってもいいし、Javaで作ってもいいし、とにかく動きさえすれば何で作ってもいい
コンパイラが出来れば、その新しい言語を機械語に変換できる
機械語に変換できれば、CPUはそれを実行できる
新しい言語が機械語に近ければ、変換が簡単だからコンパイラを作るのが楽になるかもしれないが、
別にコンパイラ作るのを楽するために言語を作るわけではないのだから、特にそうある必要はない
機械語の構造とかけ離れた言語でもいいんだ
変換が大変、つまりコンパイラ作るのが大変になるかもしれないが、それだけだ

754 :デフォルトの名無しさん:2011/04/30(土) 02:07:03.78
>>752
・コンピュータの処理は演算装置を使って行われます
・演算装置の操作は機械語と呼ばれる数値列を使って行われます
・機械語の命令は、より人間の言葉に近いアセンブリ言語という言語から翻訳して作成します
・アセンブリ言語の命令は、より人間の言語に近い高級言語と呼ばれる言語から翻訳して作成します

つまり、高級言語>アセンブリ言語>機械語という様に何度も変換して、コンピュータに
理解出来る命令に変換しているという事です。

プログラミング言語を作るというのは、アセンブリ言語に翻訳出来る高級言語を作成する事です。
新しい高級言語からアセンブリ言語への翻訳は、既存の高級言語を使ったプログラムを使って
実行します。

また、実際のコンピュータの代わりに、プログラムで仮想的なコンピュータを作成して、
その上で動く様なプログラムに翻訳する為の言語というのも存在しています。
最近のプログラミング言語は殆どが仮想的なコンピュータをターゲットにしています。



755 :デフォルトの名無しさん:2011/04/30(土) 02:08:46.59
>>754
失せろ

756 :デフォルトの名無しさん:2011/04/30(土) 02:23:52.34
初学者ですが、構造体の定義・宣言の仕方が
参考書によってさまざまで混乱しています。
調べた感じでは、以下の全てが同じ構造体変数aを
宣言する方法らしいのですが、
どれを使うのがセオリーとかありますか?好みでいいんでしょうか。

1.
struct tag { メンバ... } a;

2.
struct tag { メンバ... };
struct tag a;

2.
struct { メンバ... } a;

3.
typedef struct { メンバ... } z;
z a;

757 : ◆/91kCCQXBo :2011/04/30(土) 02:27:07.33
>>743
int k = kaisuu[i] * 10 / max;
for( counter = 0; counter < 10; counter++ ) {
  if( counter < k )
    putchar('*');
  else
    putchar(' ');
}

758 :デフォルトの名無しさん:2011/04/30(土) 02:33:44.38
>>756
公開する様なデータ型じゃないけど、何度か使うなら 2 の上
再利用しないなら 2 の下
隠蔽する必要が無くて、再利用したいなら 3

とかかな。

759 :デフォルトの名無しさん:2011/04/30(土) 08:27:42.28
初歩的ですいません。
Borland C++Compilerの使い方ってbcc32 の後にあらかじめ作成したファイル名入れてエンターキー押して使うんでしたっけ?

760 :デフォルトの名無しさん:2011/04/30(土) 08:31:34.95
どうしようもない馬鹿だな

761 :デフォルトの名無しさん:2011/04/30(土) 08:36:47.72
>>760さんすいません。ほぼ初めて使うんで…
これから勉強する者です。
使い方教えて下さい。

762 :デフォルトの名無しさん:2011/04/30(土) 08:37:51.12
>>749-750
なんだ、やっぱり無いんだな。

763 :デフォルトの名無しさん:2011/04/30(土) 08:38:07.63
>>759
デスクトップに bcc32.exe のショートカット作って
そこにソースファイルをドラッグ'nドロップ。


764 :デフォルトの名無しさん:2011/04/30(土) 08:38:18.73
>>759
鼬害です。Windowsの使い方ならWindows板に。
いっそ、教えて○○とかなんとか知恵袋とかで聞いては如何でしょう。
手取り足取りフレンドリー、プログラムの書き方から中身まで全て教えてくれるかもしれません。

765 :デフォルトの名無しさん:2011/04/30(土) 08:44:32.15
>>763ありがとうございます。もうショートカットは作ってあります。学校のコンピューター室で使うんで。

ファイル名を入れるだけでいいんですか?コンパイルした後に実行するにはtestなんとかって入れるんでしたっけ?

766 :デフォルトの名無しさん:2011/04/30(土) 08:48:50.71
Borland C/C++ Compiler より
LCC-Win32 がお薦めだよ。
非商用に使うなら無償だから安心だし。

エディター等の統合開発環境もセットになってるからそのまま使える。
http://www.cs.virginia.edu/~lcc-win32/


767 :デフォルトの名無しさん:2011/04/30(土) 08:49:01.89
やっぱこうなったか。
そうやってグズグズ聞き続けるつもりなんだろ?

ぐぐればすむ事を他人に尋ねるな。

768 :デフォルトの名無しさん:2011/04/30(土) 08:52:32.46
まあ、俺は Turbo C 2.01 を愛用するんだがな。


769 :デフォルトの名無しさん:2011/04/30(土) 08:59:50.95
細けぇことはうんぬん

770 :デフォルトの名無しさん:2011/04/30(土) 08:59:56.18
細けぇことはうんぬん

771 :デフォルトの名無しさん:2011/04/30(土) 09:01:16.11
おとなしくVisual C++を使うと良いよ

772 :デフォルトの名無しさん:2011/04/30(土) 09:01:42.60
>>767
初心者本には用が無いからわざわざ検索する必要性はない。それに検索して出てくる情報とも思えんな。

やっぱりないと結論せざるを得ない。

773 :734:2011/04/30(土) 09:08:40.41
>>757
解決しましたありがとうございます。

774 :デフォルトの名無しさん:2011/04/30(土) 09:11:38.56
>>772自意識過剰乙

775 :デフォルトの名無しさん:2011/04/30(土) 09:12:24.34
>>772
はあああああああああ????

「bcc32 使い方」でぐぐった結果の二件目、

 簡単な使い方
 http://park6.wakwak.com/~wmasa/prog/bcc/index.htm#marker002

っていいながらここまで書いて気が付いたわ。
お前勘違いしてんだな。>>767>>765へのレスだぞw

776 :デフォルトの名無しさん:2011/04/30(土) 09:22:58.49
つーか、なんで BCC 5.5 って定番みたいになっちゃってんの?
リソースバインダーも正常に動かないのに。


777 :デフォルトの名無しさん:2011/04/30(土) 09:27:34.00
古い本だと出版当時無償で使えたのがBCCかgccかの2択だったから

778 :デフォルトの名無しさん:2011/04/30(土) 09:30:09.87
BCC5.5なんて前世紀から更新されてないものいつまで使ってんの?
と思ってたけどそういうことか

779 :デフォルトの名無しさん:2011/04/30(土) 09:44:28.35
エラーメッセージが丁寧だったりするから
意外に侮れない。「;がありません」とか
そこまで分かってるんなら自動で補えよとか思わなくもないがw

780 :デフォルトの名無しさん:2011/04/30(土) 09:46:43.12
LSI-C86試食版も忘れないでくれ

781 :デフォルトの名無しさん:2011/04/30(土) 09:48:57.63
いや、忘れていいよ。今時ロングファイルネームを扱えなくてintが16bitなんて混乱するだけだ。

782 :デフォルトの名無しさん:2011/04/30(土) 09:53:31.54
LSI-C試食版でもDOSの割り込み使えばロングファイルネームは使えなくも無いけど面倒

783 :デフォルトの名無しさん:2011/04/30(土) 09:54:14.28
lcc-win32が上がらないのはメッセージが全部英語だからか

784 :デフォルトの名無しさん:2011/04/30(土) 09:57:33.65
今だとWindpws 7 x64で動きませんとかいうのも出てくるだろうな>LSI-C

785 :750:2011/04/30(土) 09:58:28.67
>>720
gets_s の解説があれば十分。

>fgetsを使わない初心者本を書かない単なるサボリだわ。
fgetsを解説してない初心者本が有るとしたら単なるサボリだわ。
二重否定わずらわしい。上の表現でほぼ一致してると思う。

786 :デフォルトの名無しさん:2011/04/30(土) 10:00:16.01
>>783

>>766

787 :デフォルトの名無しさん:2011/04/30(土) 10:30:19.24
ここまでopenwatcomなし
アレの日本語メッセージ誰が保守してんだろ?

788 :デフォルトの名無しさん:2011/04/30(土) 10:55:21.79
C言語で高校の数学教材を作るって出来ますか?

というかそういうのやってる人いますか?

789 :デフォルトの名無しさん:2011/04/30(土) 11:13:53.81
はい

790 :デフォルトの名無しさん:2011/04/30(土) 11:15:11.35
>>788
出来るけど、processing とか html5 canvas とかを使ってグラフィカルな
教材を作ってあげた方が効果的だと思うよ。

数学とプログラムの話題では、このブログが面白いです。

http://parametron.blogspot.com/

791 :デフォルトの名無しさん:2011/04/30(土) 11:29:03.14
>>790ありがとうございます。実は大学の授業でC言語で何か作品作らなきゃいけないんだけど教材作りたいと思って。

先生もここは数学科だから数学がらみのほうが嬉しいと言ってたので。

792 :デフォルトの名無しさん:2011/04/30(土) 11:33:00.44
>>791
そう言う事なら、C で SDL や OpenGL を使うと良いかも。

793 :デフォルトの名無しさん:2011/04/30(土) 12:05:47.96
>>778
よくありそうなのは、素数表作成や素因数分解、最大公約数の求め方
などといった整数論まわりのツール・教材かな。
次の本(UBASICによる整数論)のC言語版を作れば喜ぶ人は多いと思う。
ttp://www.rkmath.rikkyo.ac.jp/~kida/kimaall1.1.pdf

あとは電卓とか、数式処理用のプログラミング言語を作ってみるとか。


794 :デフォルトの名無しさん:2011/04/30(土) 12:09:52.82
>>791
目を引きそうなものならグラフィカルなもの
フラクタル画像とか

795 :デフォルトの名無しさん:2011/04/30(土) 12:26:28.89
graphics.h が見つからないとか出るのですが、何が原因ですか?

796 :デフォルトの名無しさん:2011/04/30(土) 12:33:10.99
graphics.hが無いのが原因。


797 :デフォルトの名無しさん:2011/04/30(土) 16:29:36.62
ほっほっ

798 : 忍法帖【Lv=40,xxxPT】 【東電 81.2 %】 株価【E】 :2011/04/30(土) 16:44:24.05
rpmbuild --short-circuit -bi mysql.spec

799 :デフォルトの名無しさん:2011/04/30(土) 16:52:34.64
ふっほっ

800 :デフォルトの名無しさん:2011/04/30(土) 17:04:46.06
数学の教材って例えば関数に値渡せば答えを返してくれるとか
グラフィック表示してくれるとかそういうの?

801 :デフォルトの名無しさん:2011/04/30(土) 17:07:21.68
http://codepad.org/yrhv6Sk7

配列に代入した変数の中身を出力したいのですがうまくいきません
↑ここでは変数nに入ってる値を出力したいです
どうすればできますか

802 :デフォルトの名無しさん:2011/04/30(土) 17:10:25.32
>>800
作図や統計での絶大な威力は
俺がコンピュータにはまった大きな動機の1つだった

803 :デフォルトの名無しさん:2011/04/30(土) 17:15:27.63
ぶはっ!選ぶはっ!

804 :デフォルトの名無しさん:2011/04/30(土) 17:18:20.37
>>801
Mac だと何の問題も無く動くよ
最後に return 0; を加えてもダメかな?

805 :デフォルトの名無しさん:2011/04/30(土) 17:33:33.94
>>801
もしかして:
p[i][n] = '0' + n;

806 :デフォルトの名無しさん:2011/04/30(土) 17:41:39.23
>>802
なるほどthx

807 :デフォルトの名無しさん:2011/04/30(土) 17:45:59.79
SUGEEEE!

808 :デフォルトの名無しさん:2011/04/30(土) 18:21:56.50
なにがSUGEEEEなのですか?

809 :デフォルトの名無しさん:2011/04/30(土) 18:40:29.99
そうだね

810 :デフォルトの名無しさん:2011/04/30(土) 19:34:35.55
ペロペロ!

811 :デフォルトの名無しさん:2011/04/30(土) 23:20:31.58
mallocの勉強をしているんですが、メモリの割り当てに失敗するなんてことあるんですか?
仮想メモリがあるから実用上は無限じゃないですか?

812 :デフォルトの名無しさん:2011/04/30(土) 23:22:26.35
>>811
無限ループで確保し続けてみなよ

813 :デフォルトの名無しさん:2011/04/30(土) 23:25:48.97
>>811
あるよ。
仮想メモリと言っても、空きメモリを使い尽くせばメモリは確保出来ない。

32bit プロセスならアドレス空間は 32bit だから、通常は 4GB までしか
メモリを扱えない上に、アドレス空間の全てを使える訳じゃないから、
3GB 前後でエラーになる。

簡単に実験出来るから、試してみると良いよ。

814 :デフォルトの名無しさん:2011/04/30(土) 23:34:15.65
812 名前:デフォルトの名無しさん [sage]: 2011/04/30(土) 23:22:26.35
>>811
無限ループで確保し続けてみなよ


813 名前:デフォルトの名無しさん [sage]: 2011/04/30(土) 23:25:48.97
>>811
あるよ。
仮想メモリと言っても、空きメモリを使い尽くせばメモリは確保出来ない。

32bit プロセスならアドレス空間は 32bit だから、通常は 4GB までしか
メモリを扱えない上に、アドレス空間の全てを使える訳じゃないから、
3GB 前後でエラーになる。

簡単に実験出来るから、試してみると良いよ。

815 :デフォルトの名無しさん:2011/04/30(土) 23:39:56.98
malloc(0xFFFFFFFF)

816 :デフォルトの名無しさん:2011/04/30(土) 23:47:39.81
Windows32bitだと1プロセスで合計2GBとかで環境依存になります

817 :デフォルトの名無しさん:2011/04/30(土) 23:55:53.47
オブジェクト指向ってなんですか?必要ですか?

818 :デフォルトの名無しさん:2011/04/30(土) 23:57:27.33
>>817
知らないほうがいい。忘れろ。

819 :デフォルトの名無しさん:2011/04/30(土) 23:57:31.46
32bitのOSなんてまだ使ってる人いるんだ

820 :デフォルトの名無しさん:2011/05/01(日) 00:26:24.18
>>819
32bit プロセスは 64bit OS 上でも動くし、32bit プロセスとして動かした方が
性能がいい場合もあるよ。ポインタ幅が半分で済むので、その分だけ性能を稼げるから。

821 :デフォルトの名無しさん:2011/05/01(日) 00:34:09.43
>>819
>>811の質問には関係なくね?

822 :デフォルトの名無しさん:2011/05/01(日) 00:38:50.10
>>820
>32bit プロセスは 64bit OS 上でも動くし

それ、Windowsだけの話だって事をよく覚えておいた方がいいよ。

823 :デフォルトの名無しさん:2011/05/01(日) 00:41:51.75
822 名前:デフォルトの名無しさん [sage]: 2011/05/01(日) 00:38:50.10
>>820
>32bit プロセスは 64bit OS 上でも動くし

それ、Windowsだけの話だって事をよく覚えておいた方がいいよ。

824 :デフォルトの名無しさん:2011/05/01(日) 00:43:21.19
いや、Macでも動く

825 :デフォルトの名無しさん:2011/05/01(日) 00:44:55.04
>>822
64bit版Windowsなら32bitアプリが動くみたいに読めるから中途半端な指摘はやめた方が。

826 :デフォルトの名無しさん:2011/05/01(日) 00:45:27.98
たまには16bitのことも思い出してあげてください

827 :デフォルトの名無しさん:2011/05/01(日) 00:47:56.26
>>822
http://wiki.bit-hive.com/linuxkernelmemo/pg/64bit%B4%C4%B6%AD%A4%C7%A4%CE32bit%A5%D7%A5%ED%A5%BB%A5%B9%A4%CE%C6%B0%BA%EE

828 :デフォルトの名無しさん:2011/05/01(日) 00:48:19.65
>>825
じゃ、厳密に言うとWOW64によって32bitアプリケーションを実行可能にしているWindows、と言えば文句ない?

829 :デフォルトの名無しさん:2011/05/01(日) 00:49:03.34
http://ja.wikipedia.org/wiki/WOW64

830 :デフォルトの名無しさん:2011/05/01(日) 00:50:00.85
>>828
それでいいと思う。
他のOSについては他の人が指摘してるとおりかと。

831 :デフォルトの名無しさん:2011/05/01(日) 00:50:43.82
そりゃwindowsだからwowじゃん

832 :デフォルトの名無しさん:2011/05/01(日) 00:52:59.03
開発者ならWOW64無しの環境ぐらい作っておくべき

833 :デフォルトの名無しさん:2011/05/01(日) 00:53:00.32
もはや話題がC言語とはなんら関係が無い件

834 :デフォルトの名無しさん:2011/05/01(日) 00:55:22.35
>>832
>WOW64無しの環境ぐらい作っておくべき

ならOffice2007やVisualStudio2008とかは動かないな。

835 :デフォルトの名無しさん:2011/05/01(日) 01:01:06.08
わからなかったか。テスト環境だよ。

836 :デフォルトの名無しさん:2011/05/01(日) 01:02:21.55
>>819
北米における2011年4月11日時点のシェア、Windows7(32.5%) WindowsXP(32.4%)
そんな事言うとアメリカ人に怒られるぞw

837 :デフォルトの名無しさん:2011/05/01(日) 01:04:33.42
>>836
なんていうか、確認だけど、そのほかにWindows7(x64)とかってのがあるんだよね

838 :デフォルトの名無しさん:2011/05/01(日) 01:04:34.79
>>835
プロセスが64bitで動作してるか32bitで動作してるかなんて
プロセスマネージャで見ればいいだけだから、WOW64無しの環境を作るなんてバカものしかやらんだろ。
つまりお前だけだバカ。

839 :デフォルトの名無しさん:2011/05/01(日) 01:13:39.23
>>837
http://image.itmedia.co.jp/l/im/nl/articles/1104/12/l_ah_osus.jpg
32bit/64bitの区別はないが WindowsXP 64bit より Windows7 32bitの方が多いだろうね

840 :デフォルトの名無しさん:2011/05/01(日) 01:27:56.09
>>839
XP(32) > 7(64) > 7(32) > XP(64)
の順かなぁ

841 :デフォルトの名無しさん:2011/05/01(日) 01:28:50.43
>>838
タスクマネージャとプロセスエクスプローラが混ざってるよ

842 :デフォルトの名無しさん:2011/05/01(日) 01:36:33.93
コマンドプロンプトで改行の逆ってできないの?

843 :デフォルトの名無しさん:2011/05/01(日) 01:44:48.80
間違えました。
コンソールでです。

844 :デフォルトの名無しさん:2011/05/01(日) 01:51:57.15
>>843
一般的な端末エミュレータのことなら、エスケープシーケンスを利用するなどでできる場合もあります。
お使いの端末エミュレータの資料を当たってみてください。
つーか、C言語には殆ど関係ない話のでスレ違いだがや。

845 :デフォルトの名無しさん:2011/05/01(日) 02:13:46.58
>>844
いや、c言語のソースでどう書けばって話なんだが。そこは割愛しても通じると思ったんだが。


846 :デフォルトの名無しさん:2011/05/01(日) 02:16:31.24
>>844
あとそれだとWindowsでは設定を弄らないとダメだった気がする。それじゃ、ダメだから他の手を探してるところなんだけど。

847 :デフォルトの名無しさん:2011/05/01(日) 02:18:30.12
>>822
いや、Windows なんて使ってないしw

848 :デフォルトの名無しさん:2011/05/01(日) 02:37:36.08
Windows しか知らない人と話すには注意が必要って事か。面倒クセーな・・・

849 :デフォルトの名無しさん:2011/05/01(日) 02:40:22.33
>>843
curses 使えば出来るよ
Windows は知らんけどw

850 :デフォルトの名無しさん:2011/05/01(日) 03:01:18.73
Windowsすら買えないやつがエラそうだな。

851 :デフォルトの名無しさん:2011/05/01(日) 03:03:55.53
何で使わない物をわざわざ金を出して買わないといけないんだよw

あー、君は使ってても良いよ。

852 :デフォルトの名無しさん:2011/05/01(日) 03:31:49.47
はいはいw
変な宗教にハマると大変だねw


853 :デフォルトの名無しさん:2011/05/01(日) 03:42:19.55
そうだなw

OS 買うのにお金払って、
IDE 買うのにお金払って、
バージョンアップしたらまたお金払って、
大変ですなあw

854 :デフォルトの名無しさん:2011/05/01(日) 03:47:16.99
ほら、やっぱり「物には対価を払う」って概念が無い人だったw


855 :デフォルトの名無しさん:2011/05/01(日) 03:48:10.37
ぐぬぬ……

856 :デフォルトの名無しさん:2011/05/01(日) 03:50:18.55
>>854-855
お前ら面白いなw

貨幣取引だけが全てじゃないんだぜ・・・
俺はどちらかというと供給する側の人間だし。

857 :デフォルトの名無しさん:2011/05/01(日) 03:52:27.45
そろそろ Windows は nfs でブートできるようになるべき

858 :デフォルトの名無しさん:2011/05/01(日) 04:21:36.81
こんな感じで、n桁未満の数の前に
n桁になるように0を追加する方法がわからない
誰か教えて

例:6桁に揃える場合
15→000015
205→000205

859 :デフォルトの名無しさん:2011/05/01(日) 04:22:59.32
"%06d"

860 :デフォルトの名無しさん:2011/05/01(日) 04:27:15.54
>>858
printf("%06d¥n", num);

861 :デフォルトの名無しさん:2011/05/01(日) 04:39:04.00
おまえにも答えられるベルの質問が出てよかったなw


862 :デフォルトの名無しさん:2011/05/01(日) 04:39:50.06
あ、質問取っちゃってごめん。

863 :デフォルトの名無しさん:2011/05/01(日) 04:47:22.56
なんでこのスレっていつもこう殺伐としてんの?


864 :デフォルトの名無しさん:2011/05/01(日) 04:49:39.59
入門者相手には強気に出られると思った人たちが居座り続けるから

865 :デフォルトの名無しさん:2011/05/01(日) 04:50:46.78
解答に対して、揚げ足取りとか余計な突っ込みをする人がいるからじゃないの。
質問と解答だけなら殺伐とはしないと思われ。

866 :デフォルトの名無しさん:2011/05/01(日) 04:57:46.51
>>785
gets_sがほとんどの環境で有効だったらありだけど、
C言語の教育としては外れているだろうな。

特に、企業で未だにC言語を使わなきゃいけない層にとっては。

867 :デフォルトの名無しさん:2011/05/01(日) 05:53:07.28
確かに、Cを必要とする現場でWindowsってのはそうないかも。

868 :デフォルトの名無しさん:2011/05/01(日) 08:47:44.06
Cを必要とする現場(組み込み)ですが
たぶんどこもWindowsですよ
組み込み用のツールがWindows用ですから

869 :750:2011/05/01(日) 09:28:16.30
>>866 レス有難うございます。
間違って書いていたので訂正します。これで>>724が読み違えしてることがわかります。

>>720
>fgetsを使わない初心者本を書かない単なるサボリだわ。
全ての初心者本がfgetsの使い方を解説しているのは単なるサボリだわ。

二重否定わずらわしい。上の表現でほぼ一致してると思う。

870 :デフォルトの名無しさん:2011/05/01(日) 09:55:26.69
>>859-860
できたありがとy

871 :デフォルトの名無しさん:2011/05/01(日) 10:43:58.69
>>863
このスレってか板全体的に空気悪いよね
多分みんな普段の仕事のストレスで性格ひねくれちゃってるんだと思う
そこにIDがでないという板の匿名性が後押ししてストレスをぶつけようと攻撃的になる

872 :デフォルトの名無しさん:2011/05/01(日) 10:56:04.88
空気を悪くする書き込みをしているのは一部の人だけだと思うよ。
みんなじゃなくて、ここに煽る相手を捜しに来ている人だけ。

このスレでも大抵の質問には親切に答えてくれる人がいると思うけど、
そういう人の事も忘れないで欲しい。

873 :デフォルトの名無しさん:2011/05/01(日) 11:14:17.68
いやー、ふつうでしょー。2chですから

874 :デフォルトの名無しさん:2011/05/01(日) 11:15:46.16
空気悪くより、いつもふっほとかほっほとか書いてる人の方が気になる。
あれって一体、何をどうしたいんだろう。

875 : [―{}@{}@{}-] デフォルトの名無しさん:2011/05/01(日) 11:22:24.86
人工無能のデバッグをしてるんだろう

876 :デフォルトの名無しさん:2011/05/01(日) 11:24:01.13
>>873
2chでなにがふつうかも、ひとそれぞれ
あおってもいいやとおもっちゃうひともいれば、そうじゃないひともたくさんいる

877 :デフォルトの名無しさん:2011/05/01(日) 11:51:30.20
すごいねー

878 :デフォルトの名無しさん:2011/05/01(日) 11:53:22.67
ヒント:技術的な話を楽しめない人間は、
スレが荒れたりすることで楽しむ。

879 :デフォルトの名無しさん:2011/05/01(日) 11:57:18.24
>>878
天才だね

880 :デフォルトの名無しさん:2011/05/01(日) 12:32:53.84
スルーできないヤツも同罪。

881 :デフォルトの名無しさん:2011/05/01(日) 12:39:29.11
頭のオカシイ人レベルの質問にまで愚直に答えようとするバカがいるからスレが荒れんだよ。
ようするに回答するお前ら「知らない、わからない」と思われることが嫌なんだろ?
だから毎度毎度、アホに釣られてんだよ。
本当にスレが荒れんのが嫌だってんなら、間抜けな質問はスルーしろ。
そして、間抜けな質問に、いかにももっともらしく、アホな回答してるレスもスルーしろ。

882 :デフォルトの名無しさん:2011/05/01(日) 12:43:17.28
お前に指図される筋合いは無い。そこだけでも理解しろ。

883 :デフォルトの名無しさん:2011/05/01(日) 12:45:35.24
それよりC言語の話しようぜ

884 :デフォルトの名無しさん:2011/05/01(日) 12:45:40.76
北半球では南向きに家を立てた方がいい、って言ったら指図してる事になるのか?

885 :デフォルトの名無しさん:2011/05/01(日) 12:46:57.14
>>884
しねくず

886 :デフォルトの名無しさん:2011/05/01(日) 12:49:35.81
不特定多数への第三者の発言を自分に対する指図に聞こえて不快に思うのは
統合失調症の典型的な初期症状のひとつとも言える。

887 :デフォルトの名無しさん:2011/05/01(日) 12:51:24.41
日本の法律では、医師免許所有者だけが、患者に病名を告知して良い定めになっています。
医師免許の無い者は、「病気診断」「病名告知」出来ません。



888 :デフォルトの名無しさん:2011/05/01(日) 12:53:49.37
特定の個人にたいして病名を告知している人はいません。

889 :デフォルトの名無しさん:2011/05/01(日) 12:55:03.95
スルーできないヤツも同罪

890 :デフォルトの名無しさん:2011/05/01(日) 12:55:21.24
そうだねー

891 :デフォルトの名無しさん:2011/05/01(日) 12:56:41.29
「関係ないことを書くな」系のカキコをするやつって、自分は特別扱いって思ってるの?


892 :デフォルトの名無しさん:2011/05/01(日) 12:59:11.48
>>891
誘導

『スレ立てるまでもない質問はここで 111匹目』
http://hibari.2ch.net/test/read.cgi/tech/1302963535/


893 :デフォルトの名無しさん:2011/05/01(日) 13:03:30.57
1つでも腐ったミカンがあるとすぐに他のミカンも腐ってしまうといういい例だね
だから必死に排除にかかる

894 :デフォルトの名無しさん:2011/05/01(日) 13:06:02.04
自治厨は自分だけが正しいと思ってる。
2ちゃんをどう使うかなんて人それぞれでしかないのに。

895 :デフォルトの名無しさん:2011/05/01(日) 13:13:21.37
自治をしてる人は2chから自治を委託されてるので、
関係ないカキコをする特権が与えられてる。

896 :デフォルトの名無しさん:2011/05/01(日) 13:16:21.57
なんたって自治委員会だからな

897 :デフォルトの名無しさん:2011/05/01(日) 13:32:03.22
「俺が何を言おうと、個人に対して言ってるわけじゃないから誰も反応しなくていいんだよ」
というスタンスで場違いなことをみんなに聞こえるように言うのはなんていう病気?

898 :デフォルトの名無しさん:2011/05/01(日) 13:42:18.33
>>897
思考の二極化というあなたの症状から病名が特定出来ないのと同じで
自己顕示欲が強いというだけで病名を特定出来る人はいない

899 :750:2011/05/01(日) 13:59:37.59
やっと分かったぞ。>>720が質問してるのに、>>724がトンチンカン
ANSWER>http://www.libroworks.co.jp/support/index.html

>>720
fgetsを使わない初心者本を書かない単なるサボリだわ。

>fgetsを使わない初心者本を、紹介しなさいよサボってないで。

900 :デフォルトの名無しさん:2011/05/01(日) 14:47:35.58
Console.ReadLine使えよww

901 :デフォルトの名無しさん:2011/05/01(日) 17:57:47.89
>>886
>>887
しねくず

902 :デフォルトの名無しさん:2011/05/01(日) 18:00:23.21
>>875
bot みたいなもんかな

色んなスレに同じ単語を書き込んだり、脈絡無くレスをコピペして回ったり

903 :デフォルトの名無しさん:2011/05/01(日) 18:16:30.43
C言語使いのスレらしくてすばらしい
キチガイにならないとC言語は使えない

904 :デフォルトの名無しさん:2011/05/01(日) 18:26:44.67
素人はプログラムやらないほうがいいよ。
普通の感覚でやると頭壊れるから

905 :デフォルトの名無しさん:2011/05/01(日) 18:31:44.93
あなたが言うと説得力ありますね

906 :デフォルトの名無しさん:2011/05/01(日) 19:24:40.64
そらそうよ

907 :デフォルトの名無しさん:2011/05/01(日) 20:25:00.02
>>904
つまりプログラムをやっていいのはプロだけってこと?

908 :デフォルトの名無しさん:2011/05/01(日) 20:34:25.96
金とるくせにそれに値しない技量の者をプロというべきかどうか・・・ 続きはマ板でやってくれ

909 :デフォルトの名無しさん:2011/05/01(日) 20:59:01.49
return (1) というコードを見かけたんですけど、
()付きって何か意味あるんでしょうか?

910 :デフォルトの名無しさん:2011/05/01(日) 21:01:15.25
いや、何も

911 :デフォルトの名無しさん:2011/05/01(日) 21:06:37.75
プロなんていない、アマに毛が生えた程度でやってる。
そんなだから、頭が壊れる人がいる。

912 :デフォルトの名無しさん:2011/05/01(日) 21:36:23.58
>>909
関数っぽく見えていいねという程度。

913 :デフォルトの名無しさん:2011/05/01(日) 21:38:54.36
条件式でさ「値が○○以上」とかじゃなくて「値が〜の間で無い場合」ってどう書くの?
例えばさ、11>x>15の論理否定(!)みたいな
0〜27の座標で組まれた四角形に小さな四角形(11~15)の穴を空けたいんだ・・・
つまり「11>x15 かつ 11>y>15でない場合」という事なんだが

914 :デフォルトの名無しさん:2011/05/01(日) 21:40:33.75
だまれクズ

915 :デフォルトの名無しさん:2011/05/01(日) 21:42:37.44
>>912
いいねっていうか、良くはないけどな。

916 :デフォルトの名無しさん:2011/05/01(日) 21:43:40.58
いいね

917 :デフォルトの名無しさん:2011/05/01(日) 21:48:18.09
>>913
if(!(((11>x)||(x>15))&&((11>y)||(y>15))))

動くかどうかは知らん

918 :デフォルトの名無しさん:2011/05/01(日) 21:51:58.80
>>913
if( x>=0 && x<11 || x>15 && x<=27)
リロードは、した。

919 :デフォルトの名無しさん:2011/05/01(日) 21:54:48.39
>>912
ありがと。
見栄えの意味しか持たないということなんですね。



920 :913:2011/05/01(日) 21:55:21.36
>>917-918 かたじけない
しかし、どれもダメだった
>>918に関しては半分が穴になった。おしい
参考にして式をいじってみようかな

921 :デフォルトの名無しさん:2011/05/01(日) 22:48:11.68
単純にこんなんでいいんじゃない
!(x >= 11 && x <= 15 && y >= 11 && y <= 15)

922 :デフォルトの名無しさん:2011/05/01(日) 23:04:10.46
>>913の「つまり」以降が前半の説明とあってない
ほしいのは四角いドーナツ型でしょ?なら
「(0<x<27かつ0<y<27かつ)11<x<15でない かつ 11<y<15でない」
でしょ
あーわかりにくい
( x>=0 && x<11 || x>15 && x<=27 ) && ( y>=0 && y<11 || y>15 && y<=27 )

923 :デフォルトの名無しさん:2011/05/01(日) 23:06:53.71
何をそんなに議論してるのかと思ったら高校1年レベル・・・

924 :デフォルトの名無しさん:2011/05/01(日) 23:39:28.61
だったらお前が率先して高尚なスレにしてやれ
どうせ口ばっか野郎だろうけど

925 :デフォルトの名無しさん:2011/05/01(日) 23:42:35.66
煽っても何も出ませんよw

926 :デフォルトの名無しさん:2011/05/01(日) 23:43:04.51
ここは入門スレだからな

927 :デフォルトの名無しさん:2011/05/01(日) 23:43:23.35
どうでもいい。

928 :デフォルトの名無しさん:2011/05/01(日) 23:45:12.06
普通の質問スレ

質問 → 解答 → お礼

このスレ

質問 → 解答 → 揚げ足取り

何でだろうね・・・

929 :デフォルトの名無しさん:2011/05/01(日) 23:51:32.66
お前とかな

930 :デフォルトの名無しさん:2011/05/01(日) 23:53:25.56
え、オレ?

マジで?

そっか・・・
じゃ、仕方が無いな

931 :デフォルトの名無しさん:2011/05/01(日) 23:54:31.32
>>928
自分より頭のいい奴がいる現実に気付いて逆ギレしてるニートが
たくさんいるから

932 :デフォルトの名無しさん:2011/05/02(月) 00:05:28.97
>>931
たくさんじゃなくて二人だけ

933 :デフォルトの名無しさん:2011/05/02(月) 00:20:11.99
ということにしたいのですね

934 :デフォルトの名無しさん:2011/05/02(月) 00:23:49.51
>>931
逆ギレって言ったら相手が先にきれているみたいじゃないか

935 :デフォルトの名無しさん:2011/05/02(月) 00:33:16.21
実際そうじゃん

936 :デフォルトの名無しさん:2011/05/02(月) 00:52:27.26
常駐してるニートは相手を煽って切らすのが天才的だからな

937 :デフォルトの名無しさん:2011/05/02(月) 01:13:48.79
そうだねー

938 :デフォルトの名無しさん:2011/05/02(月) 01:34:38.90
切らす

939 :デフォルトの名無しさん:2011/05/02(月) 01:37:01.14
切らすとき

940 :デフォルトの名無しさん:2011/05/02(月) 01:39:57.28
つながってるほうが珍しい

941 :デフォルトの名無しさん:2011/05/02(月) 07:39:41.49
>>928
1文字でも間違えたらコンパイラに「揚げ足」とられるだろ
文字はあっていても結果に「揚げ足」とられることも多々ある

いやなら間違えるな、それができない不適格者はどうぞ消えてくださいということだ

942 :デフォルトの名無しさん:2011/05/02(月) 08:11:09.73
下記質問の回答に、「プログラム言語C」に英文から各単語の出現回数を表示する例が書いてある
との言及がありますが、その書籍ではどのような方法で単語をカウントしているのでしょうか?

C言語で英文から各単語の出現回数を表示するプログラム - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1061250180

943 :デフォルトの名無しさん:2011/05/02(月) 08:27:25.56
次の理由で自力で解けないなら、余り囚われずに先に進むことをお勧めする。
・英単語を数えるツールは日本人にとって余り身近でない。
・文字列の取り扱い、可変長データの取り扱いはCは得意ではない。


944 :デフォルトの名無しさん:2011/05/02(月) 08:36:39.02
>>922
(x, y) (13, 0) とかは。

(0 <= x && x <= 27) && (0 < y && y <= 27) && !( (11 <= x && x <= 15) && (11 <= y && y <= 15) );
           マスの中         かつ             穴じゃない
に床を書けばいいのか

(0 <= x && x <= 27) && (0 < y && y <= 27) && (11 <= x && x <= 15) && (11 <= y && y <= 15)
           マスの中         かつ             穴
に穴をあければいいのか
どっちかわからん

945 :デフォルトの名無しさん:2011/05/02(月) 08:47:59.82
>>942
二分木にいれてた。

946 :デフォルトの名無しさん:2011/05/02(月) 08:53:23.26
>>944
っていうか何をどうやってやろうとしてるわけ?
普通の描画では矩形を使うだろうからこんなドット打つなんてしないし
穴かそうでない部分かどっちを判定するかはその場合によって好きな方選べばいいし

947 :デフォルトの名無しさん:2011/05/02(月) 08:58:56.07
>>945
なるほど、二分木ですか。
ありがd

948 :デフォルトの名無しさん:2011/05/02(月) 09:01:39.27
条件を1行に押し込めようとしている時点でシロート。

949 :デフォルトの名無しさん:2011/05/02(月) 09:05:08.83
>>943
ありがとうございます。
その書籍では何か斬新な方法で解決してるのかなと思い質問しました。

950 :デフォルトの名無しさん:2011/05/02(月) 09:16:57.35
>>946
どうしたいのか知らんから質問したんだ。
この時期だし2次元配列に入れてコンソール出力とかそんな程度じゃないの。
状況によっては前の条件要らないし

>>947
あとはバイナリサーチも例として。
K&Rは持っとくといいよ。

951 :デフォルトの名無しさん:2011/05/02(月) 09:22:45.83
>>950
あ、元の質問者じゃなかったのか、すまん

952 :デフォルトの名無しさん:2011/05/02(月) 09:23:34.39
>>948
あんなのを1行で書かれたくらいで音を上げる誰かさんはそれ以下だが何か?

953 :デフォルトの名無しさん:2011/05/02(月) 09:29:10.95
int c;
int s = sizeof(textfilesize);
int text(s);

for (i = 0; i < s; i++){
if(text(i) == 'e'){
c++
}
}



954 :デフォルトの名無しさん:2011/05/02(月) 09:35:53.32
>>944
この方が圧倒的に条件分から早く抜けてくる。

int r = 0;

do
if (0 <= x && x <= 27) && (0 < y && y <= 27) {
if (11 <= x && x <= 15) && (11 <= y && y <= 15){
r = 1;
}else{
break;
}
}else{
break;
}
while(0)

if (r == 1){
//穴の中
}

955 :デフォルトの名無しさん:2011/05/02(月) 09:40:10.52
え・・・w

956 :デフォルトの名無しさん:2011/05/02(月) 09:41:55.82
罠だ

957 :デフォルトの名無しさん:2011/05/02(月) 09:45:45.43
#define in ,
#define foreach(a, b) for(int i = 0; i < sizeof(b) / sizeof(b[0]); i++) { a;

int arr[10];
foreach (int x in arr)
printf("%d\n", x);
}

958 :デフォルトの名無しさん:2011/05/02(月) 09:46:59.92
>>954
int r = 0;

if (0 <= x && x <= 27) && (0 < y && y <= 27) {
if (11 <= x && x <= 15) && (11 <= y && y <= 15){
r = 1;
}
}

if (r == 1){
//穴の中
}

でいいだろ?普通。

959 :デフォルトの名無しさん:2011/05/02(月) 09:47:58.62
>>958
コンパイルエラー

960 :デフォルトの名無しさん:2011/05/02(月) 09:48:51.35
>>959
x,yが宣言されてないって事?

961 :デフォルトの名無しさん:2011/05/02(月) 09:50:09.20
意図はなんとなくわかるけど
if の括弧がおかしいだけ

962 :デフォルトの名無しさん:2011/05/02(月) 09:51:27.86
>>958
なるなるwほいよ。

int r = 0;
int x,y;

if ((0 <= x && x <= 27) && (0 < y && y <= 27)) {
if ((11 <= x && x <= 15) && (11 <= y && y <= 15)){
r = 1;
}
}

if (r == 1){
//穴の中
}


963 :944:2011/05/02(月) 09:54:46.38
元質問だと <= じゃなくて < だった。

>>954
どういうこと?短絡評価を知らないってだけでいいのだろうか。

964 :デフォルトの名無しさん:2011/05/02(月) 09:57:54.17
for (y = 0; y <= 27; y++)
for (x = 0; x <= 27; x++)
if ((11 < x && x < 15) && (11 < y && y < 15)) { /* いしのなかにいる */ }

965 :デフォルトの名無しさん:2011/05/02(月) 09:58:33.97
>>962も短絡評価知らない

966 :デフォルトの名無しさん:2011/05/02(月) 10:02:46.63
>>965
俺は単に954を引用しただけ。

967 :デフォルトの名無しさん:2011/05/02(月) 10:04:43.94
で?複数穴を開けたいってなった時、>>944の書き方だと1行に延々と条件を連ねていく事になるけどどうするね>>965

968 :デフォルトの名無しさん:2011/05/02(月) 10:06:29.56
仕様変更に強い書き方をするってものプロの仕事

969 :デフォルトの名無しさん:2011/05/02(月) 10:07:32.39
なるほどそれを知らないで指摘してる>>965はクズ素人か

970 :デフォルトの名無しさん:2011/05/02(月) 10:08:46.94
>>968
拡張性へのキャパを適度な範囲にとどめておくという見切りは難しい

971 :デフォルトの名無しさん:2011/05/02(月) 10:13:22.88
長いのがイヤならマクロ使おうぜ

#define inRect(left, right, bottom, top, x, y) (left <= x && x <= right && bottom <= y && y <= top)

if(inRect(0, 27, 0, 27, x, y) && !inRect(11, 15, 11, 15, x, y)) {
......
}

972 :デフォルトの名無しさん:2011/05/02(月) 10:15:23.55
>>971
if(inRect(0, 27, 0, 27, x, y) {
!inRect(11, 15, 11, 15, x, y)) {
......
}
}
こうしないと仕様変更に弱いからアマチュアらしいよ

973 :デフォルトの名無しさん:2011/05/02(月) 10:15:47.35
適当にきりすぎたワロス

974 :デフォルトの名無しさん:2011/05/02(月) 10:16:38.09
>>966-969
仲がいいねー

975 :デフォルトの名無しさん:2011/05/02(月) 10:24:26.39
おまえら>>913の意図を理解できるの?何を言ってるのか全然わからんのだが

976 :デフォルトの名無しさん:2011/05/02(月) 10:27:25.42
分かってないのお前だけ

977 :デフォルトの名無しさん:2011/05/02(月) 10:28:12.13
前2行は具体的な質問だが
後2行は、、色々想定できるのでわからん

978 :デフォルトの名無しさん:2011/05/02(月) 10:29:26.75
初心者は消えろよ

979 :デフォルトの名無しさん:2011/05/02(月) 10:32:10.16
>if(inRect(0, 27, 0, 27, x, y) {
>!inRect(11, 15, 11, 15, x, y)) {

┐(´-`)┌ <こんな事やってるようじゃーねぇw


980 :デフォルトの名無しさん:2011/05/02(月) 10:34:10.90
短絡評価知らないって突っ込まれて仕様変更云々は痛すぎるわw

981 :デフォルトの名無しさん:2011/05/02(月) 10:38:34.16
短絡評価を知らない>>954がアホすぎる、で終わっていい話題だろw

982 :デフォルトの名無しさん:2011/05/02(月) 10:41:16.00
釣られてるお前らがバカ過ぎんだよ。

983 :デフォルトの名無しさん:2011/05/02(月) 10:43:10.15
釣り宣言キターw

984 :デフォルトの名無しさん:2011/05/02(月) 10:44:32.90
オススメコンピラ教えて。
AMD64で動作するのが条件なー。

985 :デフォルトの名無しさん:2011/05/02(月) 10:47:00.94
>>984
>>http://www.konpira.or.jp/

まじおススメ

986 :デフォルトの名無しさん:2011/05/02(月) 10:54:05.72
金比羅様が貼られたと予測

987 :デフォルトの名無しさん:2011/05/02(月) 10:56:18.76
金比羅すげぇ

988 :デフォルトの名無しさん:2011/05/02(月) 10:58:02.03
>>984
ターゲットは?

989 :デフォルトの名無しさん:2011/05/02(月) 11:01:14.19
>>988
現世利益

990 :デフォルトの名無しさん:2011/05/02(月) 11:02:54.37
>>984
http://img4.cookpad.com/recipe/p/248/58/595DEEF2EB594DCBA7C83A80F03C0179.jpg?1214213105

991 :デフォルトの名無しさん:2011/05/02(月) 11:45:38.80
次スレ
C言語なら俺に聞け(入門編)Part 83
http://hibari.2ch.net/test/read.cgi/tech/1304304298/

992 :デフォルトの名無しさん:2011/05/02(月) 11:55:41.32
15日でスレ消費した。
さいきん覚えた流行語「復興」

993 :デフォルトの名無しさん:2011/05/02(月) 12:55:55.81
>>941
君は何と戦ってるの?

人間はコンパイラじゃないし、もっと自分と相手を許してあげた方が、
楽しく健康的に生きられると思うんだけど。

994 :デフォルトの名無しさん:2011/05/02(月) 13:28:18.35
>>941
人間は正確無比なコンピュータとは違って間違いをおかす生き物だろ
それをいちいち揚げ足を取っていたら意地の悪い小姑と同じだぞ

995 :デフォルトの名無しさん:2011/05/02(月) 13:49:31.40
間違いまんてただの一回もしたこと無いわ。

996 :デフォルトの名無しさん:2011/05/02(月) 13:55:21.56
>>994
知らなかったのか? コンピュータも確率現象で「間違える」

997 :デフォルトの名無しさん:2011/05/02(月) 13:56:34.15
ここの揚げ足取りって掲示板に貼り付ける数行の適当なコードに、
エラー処理が入ってないとか、変数名がダメだとか細かいどうでも
いいこと言うようなのばっかりじゃん。
揚げ足とりたくてしかたないんだろ。

998 :デフォルトの名無しさん:2011/05/02(月) 13:58:56.58
揚げ足取りの揚げ足取り
揚げ足取りの揚げ足取りの揚げ足取り

999 :デフォルトの名無しさん:2011/05/02(月) 14:02:01.02
999ゲット

1000 :デフォルトの名無しさん:2011/05/02(月) 14:03:57.33
チキンナゲット

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

207 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)