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

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

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

1 :デフォルトの名無しさん:2012/05/30(水) 17:16:22.14
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 101
http://toro.2ch.net/test/read.cgi/tech/1336071926/
★過去スレ
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++の宿題片付けます 157代目
http://toro.2ch.net/test/read.cgi/tech/1335517816/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

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

2 :デフォルトの名無しさん:2012/05/30(水) 19:58:44.20
for (i=0;i<END;++i){

if (i==END-1)〜;
if (i==0)〜;
〜}

関数を使わずif 文消す方法ってどんなのある?

3 :デフォルトの名無しさん:2012/05/30(水) 20:10:17.58
愛と信頼の個別処理


4 :デフォルトの名無しさん:2012/05/30(水) 20:13:16.21



for (i=1;i<END-1;++i){


}




5 :デフォルトの名無しさん:2012/05/30(水) 20:14:41.65
break 禁止

6 :デフォルトの名無しさん:2012/05/30(水) 20:46:56.42
for (i=0;i<END;++i){

switch(i){
case (i==END-1):〜;break;
case (i==0):〜;break;
default: }
〜}


7 :デフォルトの名無しさん:2012/05/30(水) 20:48:09.59
>>6
C言語でおk

8 : ◆QZaw55cn4c :2012/05/30(水) 20:50:40.65
例題がないとよくわかんない

9 :デフォルトの名無しさん:2012/05/30(水) 20:57:38.95
等式を削り忘れたんだよ
そのくらいわかれよ7君はゴミでカスでADHDでOCDでSADか?

10 :デフォルトの名無しさん:2012/05/30(水) 20:58:02.06
ループの最初と最後に特別な処理をしたいけど、毎回if判定するのを避けたいって事だしょ
自分なら>>4のようにすると思うが、ケースバイケースだぬ

11 :デフォルトの名無しさん:2012/05/30(水) 21:36:00.68
>>9
ミスを指摘されて逆ギレとかw

12 :デフォルトの名無しさん:2012/05/30(水) 21:41:55.37
瞬間湯沸かし器Qwww

13 : ◆QZaw55cn4c :2012/05/30(水) 22:04:27.98
>>12
Qwww ってなんですか?

14 :デフォルトの名無しさん:2012/05/30(水) 22:09:49.43
>case (i==END-1)

え?

15 :デフォルトの名無しさん:2012/05/30(水) 23:35:44.70
NHKが日本人の受信料を使って朝鮮電話機をステマ
http://iup.2ch-library.com/i/i0649541-1338386525.jpg

16 :デフォルトの名無しさん:2012/05/30(水) 23:40:06.00
たとえば、↓のコードを考えてみて下さい。
  unsigned char a = 255; // 0xff
  unsigned char b = 255; // 0xff
  unsigned int c;
  ここで、
  c = (unsigned int) (a + b);
  の演算を行った場合、変数cに入る値はどちらが正しい?

GAIO カバレッジマスター 組込み単体テストツール C0/C1/MCDC カバレッジ テストデータ自動生成 | 機能安全 26262
http://www.gaio.co.jp/product/dev_tools/pdt07_winams_qz.html?DM371285263

こういう記事をみつけたのですが、これホントですか・・・?

17 :デフォルトの名無しさん:2012/05/30(水) 23:45:12.06
ウソです

18 : ◆QZaw55cn4c :2012/05/31(木) 04:43:02.45
>>16
>これは両方のケースがあり、正解は決まっていません。
本当でしょうかね?

19 :デフォルトの名無しさん:2012/05/31(木) 05:03:30.52
>>16
ttp://codepad.org/3gM2j1Hw
254かと思ったらそうでもなかった

20 : ◆QZaw55cn4c :2012/05/31(木) 05:09:01.33
integral promotion が利いているから、int になるんだね、この場合。

21 :デフォルトの名無しさん:2012/05/31(木) 07:21:10.23
処理をvoid〜で別のクラスから呼び出すようにすると、処理速度って遅くなりますか?

22 :デフォルトの名無しさん:2012/05/31(木) 07:26:20.23
レッツ実測

23 :デフォルトの名無しさん:2012/05/31(木) 12:54:19.26
linuxのfilesystem userspaceのサンプルコードより
http://fuse.git.sourceforge.net/git/gitweb.cgi?p=fuse/fuse;a=blob;f=example/hello.c;h=bcb6b4c53a2da79ad62e9e568fa4ac5f758c5f15;hb=HEAD
71行目は何を意図しているのですか?

24 :デフォルトの名無しさん:2012/05/31(木) 13:05:11.35
unused parameterの警告抑止だな。

チョン出てくるかな。

25 :デフォルトの名無しさん:2012/05/31(木) 13:27:10.39
>>2
if(END!=0)for(i=0;;++i){
〜A〜;
if(i!=0&&i<END-1);else
if(i==0) 〜B〜; else
if(i==END-1){ 〜C〜; 〜D〜; break;}
〜D〜}

26 :23:2012/05/31(木) 13:58:32.61
>>24
ありがとうございました

27 :デフォルトの名無しさん:2012/05/31(木) 14:23:27.42
構造体へのポインタをvoidへとキャストしてるようにしか見えない


28 :デフォルトの名無しさん:2012/05/31(木) 15:42:32.23
>>2 ∴1つは消えた
for (i=0;i<END;++i){

if (i==0 || i==END-1){
if (!i)〜;
else〜;
}
〜}

29 :デフォルトの名無しさん:2012/05/31(木) 15:45:38.58
マジもんのアホがいる


30 :デフォルトの名無しさん:2012/05/31(木) 16:06:13.13
いやこのスレでマジのアホは大抵わざとアホの振りをしている
ホンマモンのアホはあの人一人だけ

31 :デフォルトの名無しさん:2012/05/31(木) 16:28:22.63
昨日終わってるネタなのにアホの振りとか

てか「マジのアホ」が「アホの振り」ってどゆこと?

32 :デフォルトの名無しさん:2012/05/31(木) 16:32:59.85
>2
消さなきゃならない理由は?
消してもコンパイル後の処理はそんなに変わらないよ。

33 :デフォルトの名無しさん:2012/05/31(木) 16:34:30.01
終わってるだとかネタだとかお前はここのヌシかナニかか?

34 :デフォルトの名無しさん:2012/05/31(木) 16:34:35.12
>>32
ものによるだろ

35 :デフォルトの名無しさん:2012/05/31(木) 17:16:52.81
>>33
「終わってる=解決済み」だけど?
理解出来ないアホなの?
「あの人」ってあんたのことなの?

36 :デフォルトの名無しさん:2012/05/31(木) 18:17:42.48
>>35
お前ん中で終わってんならそれはそれでいいけど
その妄想をさも事実のように脳外へ排泄するのは止めような
朝鮮人でもあるまいし

37 :デフォルトの名無しさん:2012/05/31(木) 18:22:15.53
既に解決策が書かれてるのに
「if文1個消えた〜」ってアホだろ

38 :デフォルトの名無しさん:2012/05/31(木) 18:27:02.34
>>36
いや意外と朝鮮人かもしれんぞ

39 :デフォルトの名無しさん:2012/05/31(木) 18:27:09.65
自分で勝手に増やした分から減らしただけで、結局2個使って個数減ってない上に判定に無駄が増えてるっていうw

40 :デフォルトの名無しさん:2012/05/31(木) 18:31:55.04
馬鹿とクズしかいねぇ

41 :28:2012/05/31(木) 18:34:52.82
#define DEF1 〜
#define DEF2 〜

DEF1;
〜 // i==0
DEF2;
for (i=1;i<END-1;++i){
 DEF1;
 DEF2;
 }
DEF1;
〜 // i==END-1
DEF2;

42 :デフォルトの名無しさん:2012/05/31(木) 18:43:23.60
自演が分かりやすくて笑える
そもそも
>4
で終わってるだろ

43 :デフォルトの名無しさん:2012/05/31(木) 21:13:15.61
ENDが1の場合に処理破綻するな >4 >6 >26

44 :デフォルトの名無しさん:2012/05/31(木) 21:22:16.76
米政府は30日、韓国の家電メーカーの大宇エレクトロニクス、サムスン電子、LG電子が
韓国政府から不当な補助金の支給を受け、米国で洗濯機を低価格で販売しているとの暫定的結論を出した。
外交筋によると、米商務省の国際貿易局(ITA)は同日、韓国製洗濯機をめぐる提訴と関連し、
「韓国政府が補助金を支給し、国際貿易法規に違反したとの予備判定を下した」と明らかにした。

商務省は早ければ年末に補助金支給に対する最終判断を下す予定。
ワールプールの主張が受け入れられれば相殺関税が課される。
http://japanese.yonhapnews.co.kr/headline/2012/05/31/0200000000AJP20120531001000882.HTML


45 :デフォルトの名無しさん:2012/05/31(木) 22:49:03.82
http://codepad.org/8qZGFLH0

ここまでは出来たけど、鈍角三角形の判定が出ない…
誰かヒント下さい

46 :デフォルトの名無しさん:2012/05/31(木) 22:57:13.69
条件がむちゃくちゃ。ちゃんと考えよう。

47 :デフォルトの名無しさん:2012/05/31(木) 23:03:05.08
つーか
int a, b, c;
なのに
scanf("%f", &a);
ってなんだよ

48 :デフォルトの名無しさん:2012/05/31(木) 23:08:49.91
>>47
ミス
%dだったわ

49 :デフォルトの名無しさん:2012/05/31(木) 23:12:13.63
直角三角形 何れかの角が90度
鋭角三角形 全ての角か90度未満
鈍角三角形 何れかの角が90度超

50 :デフォルトの名無しさん:2012/05/31(木) 23:16:34.55
0<=a<=b<=c となるように並べ替えて

a+b>=c なら三角形にならない
a*a+b*b>c*c なら 鋭角三角形
a*a+b*b==c*c なら 直角三角形
a*a+b*b<c*c なら 鈍角三角形

51 : ◆QZaw55cn4c :2012/06/01(金) 07:57:44.62
>>50
>a+b>=c なら三角形にならない
本当か?3, 4, 5 は三角形じゃないのか?

52 :デフォルトの名無しさん:2012/06/01(金) 11:26:08.30
(a+b)<=cなら三角形にならない

53 :デフォルトの名無しさん:2012/06/01(金) 12:44:36.31
メインクラスで宣言した変数を他のクラスで使いたいんですが、グローバル変数を使えばいいんでしょうか?
int a:だけだと宣言されていないと出てしまい、使い方がイマイチ分からないです

54 :デフォルトの名無しさん:2012/06/01(金) 12:46:09.81
>>53
スレチだ
板内をC++で検索しろ

55 :デフォルトの名無しさん:2012/06/01(金) 12:48:17.67
すみませんc++の機能なんですね

56 :デフォルトの名無しさん:2012/06/01(金) 23:28:00.05
数独を作るプログラム作りたいんだけどどうしたらいいですか?

9マスで1パーティーとしたら
a[8]〜i[8]を左上から対応させていく。

a〜iの1〜9をそれぞれランダムにソートして

横一列a[0]a[1]a[2]b[0]・・・c[2]を調べて、1〜9まで重複がなかったらOK
これを9列までやる。

縦一列も同様にやる。


縦と横で18箇所重複がなかった瞬間一つのパズル完成って
なるんですがどうでしょう?
もっと効率の良い方法ありますか?






57 :デフォルトの名無しさん:2012/06/01(金) 23:33:32.84
>>56
二次元配列使うだけでもずいぶん楽になるよ

58 :デフォルトの名無しさん:2012/06/01(金) 23:40:26.57
1.2次元配列hoge[9][9]を用意する
2.適当な場所に適当な数字を入れる
3.縦・横・エリアの重複チェック。エリアはarea[9][9].row/colなど用意しておくといい
4.解けるかチェック
 解けない→2.へ
 解ける→完成

59 :デフォルトの名無しさん:2012/06/01(金) 23:46:30.98
>>56
総当たりすりゃあいい

横一列が9!通り、
その中から9本選んで並べるだけじゃん

ラクだろ?


60 :デフォルトの名無しさん:2012/06/01(金) 23:46:58.51
>>57
>>58
なるほど。二次元配列ですか


でも完成する可能性って
1/(9!*2^18)=1/950億じゃないですか?

一つのパズル完成するのに1日くらいかかりませんか?




61 :デフォルトの名無しさん:2012/06/01(金) 23:48:39.47
二次元配列を使ってもやることは変わらんわなwww
計算量が驚くほど減る……なんてのを探してんだろ


62 :デフォルトの名無しさん:2012/06/01(金) 23:50:19.53
>>59
なるほど。
確かに一番上の帯は1〜9までが絶対9!の内どれかですよね。
でも一つの帯パターンでパズル完成が不可能になるケースも
ありませんか?

例えば 132456879
だと不可能とか。





63 :デフォルトの名無しさん:2012/06/01(金) 23:57:23.97
>>62
さすがに二つ目からじゃね?
一本目だけでは決定できない

64 :デフォルトの名無しさん:2012/06/02(土) 00:05:10.93
>>63
やっぱそうですか。





65 :デフォルトの名無しさん:2012/06/02(土) 00:18:07.90
なんかこう
チャッチャと
巡回群とかのパワーを借りて
サッサとできそうな気がする
そこんところはGAPとか使えばいいし


66 :デフォルトの名無しさん:2012/06/02(土) 01:37:47.76
githubでも行けばサンプルになりそうなコードがいくらでも転がってそうなもんだが

67 :デフォルトの名無しさん:2012/06/02(土) 05:54:52.47
数独の問題作る方は、オープンソースのがPDA用にあったと思うな。
いずれにしても、人手で作るのに比べて味気ないから好きじゃないけどね。
他の板(パズル板とか?)にスレがあるだろうからそっちで聞いた方が早そうな。

68 :デフォルトの名無しさん:2012/06/02(土) 18:53:05.58
1+1=

69 :デフォルトの名無しさん:2012/06/02(土) 22:09:31.08
チャッチャとかサッサ」は判るけど
巡回群とかGAP」がむずかしい

70 :デフォルトの名無しさん:2012/06/02(土) 22:46:01.42
ふう

71 :デフォルトの名無しさん:2012/06/03(日) 10:47:00.07
__
    ̄ ̄ ̄二二ニ=-
'''''""" ̄ ̄
           -=ニニニニ=-


                          /⌒ヽ   _,,-''"
                       _  ,(^ω^ ) ,-''";  ;,
                         / ,_O_,,-''"'; ', :' ;; ;,'
                     (.゙ー'''", ;,; ' ; ;;  ':  ,'
                   _,,-','", ;: ' ; :, ': ,:    :'  ┼ヽ  -|r‐、. レ |
                _,,-','", ;: ' ; :, ': ,:    :'     d⌒) ./| _ノ  __ノ

72 :デフォルトの名無しさん:2012/06/03(日) 11:20:17.76
大衆をバカにするテレビ朝日
(前略)

民放のディレクターなら誰でも知っているように、テレビを見ているのは国民の中でも知的水準の低い層で、平均レベルは中学生ぐらいだ。
NHKでさえ、ニュース番組の視聴率が最高なのはスポーツコーナーだ。それに迎合してスポーツ・芸能ネタをやれば数字がとれることはわかっているが、メディアとしてのプライドが歯止めをかけている。

だからテレビ朝日のように羞恥心を捨ててバカに迎合すれば、数字をとるのは簡単だ。それは戦争中に「国民の火の玉が炸裂する」などと大衆を煽動して部数を増やした朝日新聞と同じだ。
ヒトラーは「大衆は女のように感情だけで動く」と言ったが、朝日新聞グループもヒトラー的マーケティング手法をとっているのだろう。

(後略)
http://ikedanobuo.livedoor.biz/archives/51791430.html

73 : ◆QZaw55cn4c :2012/06/03(日) 15:44:25.91
>>72
朝日系列だけじゃないですけれどもね。

B-CAS 崩壊を一番に報道したところのみ、まともな報道機関として認めてあげよう。

74 :デフォルトの名無しさん:2012/06/03(日) 17:38:06.69
73 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん

75 :デフォルトの名無しさん:2012/06/04(月) 09:31:52.88
スレタイで釣って初心者を叩き潰す流れに戻そうよ。

76 :デフォルトの名無しさん:2012/06/04(月) 10:02:01.63
>>75
うっせーバカ
VIPでやれ

77 :デフォルトの名無しさん:2012/06/04(月) 19:31:25.28
>>75
死ねや

78 :デフォルトの名無しさん:2012/06/04(月) 21:09:38.97
ぷよぷよの消えぷよ判定コードを、できるかぎり短く書いてみてくれ。

ボードの仕様
int B[8*16]; /* 0空。1〜7ぷよの色 */


79 :デフォルトの名無しさん:2012/06/04(月) 21:14:57.66
おいおいおいおい

ホントに
B[8*16]
なのかよ

B[8][16]
じゃあねーーーのかよ

ホントのホントに、一時限行列で
テトリスのようなモンを作り出せ、
っていうんだな?


80 :デフォルトの名無しさん:2012/06/04(月) 21:17:29.89
おじゃまぷよとかたぷよが書かれてないほうが問題

81 :デフォルトの名無しさん:2012/06/04(月) 21:32:15.82
>>79
そっちが良ければそれでもいい。
>>80
おじゃまは無し

82 :78:2012/06/04(月) 21:40:14.87
int D[8*16]; /* 対応した場所の消えぷよフラグ。1なら消えぷよ*/


83 :デフォルトの名無しさん:2012/06/04(月) 21:43:47.15
あと一つ
「できるだけ短い」の定義は?

84 :デフォルトの名無しさん:2012/06/04(月) 21:46:20.87
ぷよぷよって13x6(13段目は消えない)だろ

85 :78:2012/06/04(月) 21:46:57.49
>>83
ここに1レスで貼れる程度(1行100文字程度で15、6行)が最低ライン。
それより短ければ短いほど良い。

というゲーム。

86 :78:2012/06/04(月) 21:54:24.39
>>84
全体を消えぷよ判定する仕様

87 :デフォルトの名無しさん:2012/06/04(月) 21:55:17.72
こんなメッセージが出てfunc1とmain関数内のデータのやり取りがうまいこといきません。
エラーメッセージの通りなんでしょうけれども、色々弄ってもうまく行かず3日ほど悩んでます。
tescal.c: 関数 ‘main’ 内:
tescal.c:69:1: 警告: 互換性のないポインタ型から 3 番目の ‘func1’ の引数に渡しています [デフォルトで有効]
tescal.c:17:5: 備考: expected ‘struct hoge_t *’ but argument is of type ‘struct hoge_t (*)[31]’
開発環境はFedora16+gcc
エディタはgeany使ってます。
どなたか教えて頂けますでしょうか。
http://codepad.org/pfZsf6P4

88 :デフォルトの名無しさん:2012/06/04(月) 22:12:41.43
>>87
func1(t_year, t_month, hog);
にすりゃいいんじゃないの

89 :デフォルトの名無しさん:2012/06/04(月) 22:29:06.27
>>85
無理だった
バカみたいに詰めれば収めるのは出来るけど
それだと行数制限というより文字数制限になるしな
void check_r(int D[8][16], int B[8][16], int x, int y, int col, int mark, int *num){
if(x<0 || 8<=x || y<0 || 16<=y || D[x][y]!=0 || B[x][y]!=col) return;
*num+=1;
D[x][y]=mark;
check_r(D, B, x+1, y, col, mark, num);
check_r(D, B, x-1, y, col, mark, num);
check_r(D, B, x, y+1, col, mark, num);
check_r(D, B, x, y-1, col, mark, num);
}
void check(int D[8][16], int B[8][16]){
int x, y, num, mark=1, i, j;
memset(D, 0, sizeof(int)*8*16);
for(x=0;x<8;x++){
for(y=0;y<16;y++){
if(B[x][y]==0 || D[x][y]!=0) continue;
num=0;
check_r(D, B, x, y, B[x][y], ++mark, &num);
if(num>=4){
for(i=0;i<16;i++){
for(j=0;j<8;j++){
if(D[j][i]==mark) D[j][i]=1;
}
}
}
}
}
}

90 :デフォルトの名無しさん:2012/06/04(月) 22:38:11.40
>>88
ありがとうございます、main内のfunc1をそのように変更したところ、
エラーは出ていませんが値が持ってこれてないようです。
(./hogを実行したところ、0が表示されただけでした。)
値渡しではなくアドレス渡しをすれば良いのかも知れませんがなんともです。
テスト用のprintf文(37-38)を有効にしたところファイルは読めている事を確認しました。
csvの中身は
1,test1
2,test2
という内容になっています。

91 :デフォルトの名無しさん:2012/06/04(月) 22:59:04.03
わざわざ引き数で渡したボインタを自分で書き換えてるじゃねぇか。

92 :78:2012/06/04(月) 23:10:52.68
>>89
暫定1位

93 :デフォルトの名無しさん:2012/06/04(月) 23:51:16.74
>>90
ttp://codepad.org/txzmZp69
mallocは不要なので削った。結果はこうなった
1test1
2test2

94 :デフォルトの名無しさん:2012/06/04(月) 23:58:40.29
>>93
ありがとうございます、比較してみましたがmallocの部分とprintfの部分だけでしたね。
無事動きましたので感謝しています。

>>91と合わせて考えてみるにmallocするならmain関数の中で無いとダメという事だったのでしょうか。
また、構造体使うときはmallocする必要は無いという事なんでしょうか。

95 :デフォルトの名無しさん:2012/06/05(火) 00:20:26.83
>>94
http://codepad.org/m32CRrqO

> hoge_t hog[31];
自分で構造体配列を宣言して要素31個分のメモリをスタックに確保しといて「だったのでしょうか」もクソもあるか

96 :デフォルトの名無しさん:2012/06/05(火) 00:28:46.58
>>94
mallocするならmain関数の中で無いとダメという事だったのでしょうか。
→そんな事はない

また、構造体使うときはmallocする必要は無いという事なんでしょうか。
→場合による

配列で確保できるならそうした方がいいし、動的に確保したい場合はmallocを使う
ttp://codepad.org/NC422HNs

97 :デフォルトの名無しさん:2012/06/05(火) 05:34:49.60
fgetc
ファイルポインタfpから1文字読み込んで、その文字をint型として返す

文字コードを格納するための関数って理解でおk?

98 :デフォルトの名無しさん:2012/06/05(火) 05:44:24.77
>>97
おk
ttp://ideone.com/6SWhX

99 :デフォルトの名無しさん:2012/06/05(火) 07:16:27.85
#include <stdio.h>
#include <conio.h>
#include <windows.h>
int main(void){
char ka;
int kb;

while(1){
system("cls");
printf("「a」か方向キー「↑」を押してください\n");

kb=getch( );
if (kb!=0){continue;}

kb=getch( );
if(kb==0x61){ka='a';}
if(kb==0x48){ka='u';}

if(ka=='a'){system("cls");
printf("bが押されました");
Sleep(1000);}
else if(ka=='u'){system("cls");
printf("↑が押されました");
Sleep(1000);}
}
}
「a」か「↑」を押すとそれぞれメッセージが出るように作ったのですが
・「a」を押しても反応しない ・「↑」を押した後、他の方向キーを押すと「↑」のメッセージが出てしまう
の2つを解決したいのですがどうすればいいでしょうか?

100 :デフォルトの名無しさん:2012/06/05(火) 07:41:28.93
すでに2,3時間これで悩んでいます。
Aの文字コード41から順番に表示されると思いきや1個飛ばし、あとコメントアウトしてる部分を本文化すると、
何も表示されないで終了になってしまいます。
#include <stdio.h>
unsigned char buffer[10000];
int main(int argc, char *argv[]){
FILE *fp_i,*fp_o;
int i,c;
fp_i = fopen("a.txt","rb");
/*if(fp_i = NULL) {
fprintf(stderr,"Input File cannot open\n");
exit(8);
}*/
i = 0;
while((c = fgetc(fp_i)) !=EOF){
c = fgetc(fp_i);
printf("c = %02X \n",c);
buffer[i] = c;
i++;
}
fclose(fp_i);
return 0;
}

a.txtの内容:ABCDEFGHIJK
実行結果
c = 42
c = 44
c = 46
c = 48
c = 4A
c = FFFFFFFF

101 :デフォルトの名無しさん:2012/06/05(火) 07:48:40.57
while((c = fgetc(fp_i)) !=EOF){
c = fgetc(fp_i);

なんで二回書いてんだ


102 :デフォルトの名無しさん:2012/06/05(火) 07:57:32.61
気付かなかった・・・
有難うございます。

/*if(fp_i = NULL) {
fprintf(stderr,"Input File cannot open\n");
exit(8);
}*/

の部分を本文にするとなにも起こらないで終了する理由はわかりますでしょうか?

本からのサンプルプログラムなんですが。

103 :デフォルトの名無しさん:2012/06/05(火) 08:01:26.15
fp_i に NULL を代入してるから

104 :デフォルトの名無しさん:2012/06/05(火) 08:05:23.03
ぬるぽ

105 :デフォルトの名無しさん:2012/06/05(火) 08:08:33.53
if(fp_i == NULL) {
多分こうでも書かないと気付かない

106 :デフォルトの名無しさん:2012/06/05(火) 08:10:51.91
「謝罪か、攻撃か」=正恩氏侮辱と韓国に警告―北朝鮮軍

北朝鮮人民軍総参謀部は4日、韓国の李明博政権を支える保守系メディアが、
北朝鮮で始まった朝鮮少年団創立66周年行事と金正恩労働党第1書記を「侮辱した」と反発、李政権などに対し、謝罪するか、北朝鮮の攻撃を受けるか「最後の選択」を求める通告を公表した。朝鮮中央通信が伝えた。

通告は、韓国紙の朝鮮日報、中央日報、東亜日報などが「李政権に動員され」、66周年行事について「(大衆の)歓心を買うための行事」「ヒトラーをまねしている」と報じたと反発。
正恩氏や行事に参加した子供を侮辱したと非難している。 

http://dailynews.yahoo.co.jp/fc/world/south_north_korea/?1338793745

謝罪するか、北朝鮮の攻撃を受けるか「最後の選択」を求める
だっておwwwwwwwwwwwwww

107 :デフォルトの名無しさん:2012/06/05(火) 08:37:45.18
>>99
ttp://ideone.com/qDmD7

108 :デフォルトの名無しさん:2012/06/05(火) 09:03:33.08
>>103>>105
有難うございます。

酷過ぎるミスだ・・・

109 :99:2012/06/05(火) 10:14:37.80
>>107
丁寧な修正、ありがとうございます

110 :デフォルトの名無しさん:2012/06/05(火) 11:28:45.89
>>108
条件式で=と==を見間違えるのはよくある、
もののサイト・ものの本でも「よくあるミス」として注意・解説されてる

問題は、fgetcを二度書いてるところ、
こっちの方がより重篤な勘違いのように見える
これだけデカデカと書かれているのを「見落とす」てのはまずあり得ない、
つまりは、見えているのに見えていない
(==のところは文字通りに「見えなかった」)
fgetcの二度書きは、何か根本的なところで理解しそこなっているような気がしてならない


111 :デフォルトの名無しさん:2012/06/05(火) 11:43:06.83
書いてあることを見落とすなんてのは良くあること
それに単なるテキストでデカデカもクソもない

問題は思い込みで見てしまうこととデバッガを使わないこと
デバッガが使えないなら机上デバッグの技術を身につけるべき

112 : ◆QZaw55cn4c :2012/06/05(火) 12:36:39.95
デバッガ出動まで追い込まれるのは数えるくらいしかない。
ここはprintf()の乱発をお勧めする。

113 :デフォルトの名無しさん:2012/06/05(火) 12:41:39.13
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0605&f=national_0605_024.shtml
韓国テレビの番組で日本海表記の地図を使用し、非難殺到=韓国
 韓国MBC放送の日曜番組『出発! ビデオ旅行』の3日の放送で、「日本海」と表記
した地図を使用していたとして、韓国世論から非難が巻き起こった。多数の韓国メディアが4日、大きく取り上げた。
 『出発! ビデオ旅行』は新作映画の紹介から名作など、さまざまなジャンルの映画を
紹介する番組。3日の放送で日本海が「SEA OF JAPAN」と表記された世界地図を
使用したという。
 番組放送後に視聴者掲示板には、抗議や非難の書き込みが殺到した。番組の制作陣は
世論の非難を受けた当日、公式サイトに謝罪文を掲載し「今後はこのようなミスを絶対に
しないように最善を尽くす」との立場を表明した。しかし、同番組の5月6日の放送分で
も日本海と表記された地図を使用したことが発覚し、番組やテレビ局への非難はしばらく続く見通しだ。
 韓国メディアは「目を疑う場面が電波に乗った」「東海ではなく日本海と表記した地図
を使用して視聴者の怒りを買った」などと伝えた。現在MBC放送は2月から突入した
ストライキがまた続いており番組に支障をもたらしていることも「ミス」の原因とみるメディアもある。


114 :デフォルトの名無しさん:2012/06/05(火) 13:09:34.00
デバッガを使うのを「追い込まれた時」とかアホとしか言いようがない
デバッガってそんなに敷居が高いのかね?

115 :デフォルトの名無しさん:2012/06/05(火) 13:21:36.96
高いよ

116 :デフォルトの名無しさん:2012/06/05(火) 13:53:26.79
環境次第
敷居を下げるためのIDE
#include <windows.h>ならvc++で簡単だろ

117 :デフォルトの名無しさん:2012/06/05(火) 14:04:38.63
うん

118 :デフォルトの名無しさん:2012/06/05(火) 14:06:51.45
でもまぁ、デバッガやエディタのコピペに頼る奴はそれらが使えなくなった途端に馬脚を現すがな。

119 :デフォルトの名無しさん:2012/06/05(火) 14:17:31.79
assert使えよ

120 :デフォルトの名無しさん:2012/06/05(火) 14:29:44.36
道具は使ってなんぼのもの
使えなくなった途端に馬脚を現すような奴は「道具に使われてる」だけ

121 :デフォルトの名無しさん:2012/06/05(火) 14:43:49.07
>>120
それは詭弁だな

100kmの道のりを自動車で走らずに徒歩で行って「どうだ自動車なんかいらないだろう
100kmを自動車で走る奴は自動車に使われてるだけ」と言ってるのと全く同じ

傍から見ると馬鹿にしか見えない

122 :デフォルトの名無しさん:2012/06/05(火) 14:46:13.82
貴重な時間と労力を無駄に費やしていいのはニートだけだろ
現場はいつも一刻を争うしバグは絶対に許されない
悠長な事は言ってられない

123 :デフォルトの名無しさん:2012/06/05(火) 15:13:32.10
>>121
何を言っているのか分からない
「道具が無くても出来るなら道具なんか要らない」とは言ってないんだが

道具が無くなった(使えなくなった)とき
「道具が無いから出来ません」→「道具に使われてる奴」
「道具の代わりを考えます」→「道具を使ってる奴」
ってことだぞ

124 :デフォルトの名無しさん:2012/06/05(火) 15:22:48.40
何を言ってるのかわかんないなら構うなよ

125 :デフォルトの名無しさん:2012/06/05(火) 15:33:08.84
コンピュータが無いと仕事が出来ません

126 :デフォルトの名無しさん:2012/06/05(火) 15:52:04.90
>>125
仕事の種類にも拠るけど、
そんな時のためにネカフェでもなんとかなるように用意しておくのが技師ってもんだ。

127 :デフォルトの名無しさん:2012/06/05(火) 16:07:23.11
少なくとも同じ納期、同じ金額では出来ません。

128 :デフォルトの名無しさん:2012/06/05(火) 16:07:54.77
書いただけで動くと思ってる奴の言ってるバグってなんだ?
頭がバグってないか、そいつ?


129 :デフォルトの名無しさん:2012/06/05(火) 16:23:40.08
>>126
どこのマリーアントワネットだよw

130 :デフォルトの名無しさん:2012/06/05(火) 16:45:02.91
>>123
(  ゚,_ゝ゚)バカジャネーノ
道具は「使う」もんだ
「使われる」のはアホだけ

131 :デフォルトの名無しさん:2012/06/05(火) 16:54:50.13
>>130
だからそう言ってるだろ
馬鹿ですか?

132 :デフォルトの名無しさん:2012/06/05(火) 17:46:16.22
>>121がアホすぎて絡まれた>>120がかわいそうw

133 :デフォルトの名無しさん:2012/06/05(火) 17:53:07.83
「謝罪か、攻撃か」=正恩氏侮辱と韓国に警告―北朝鮮軍

北朝鮮人民軍総参謀部は4日、韓国の李明博政権を支える保守系メディアが、
北朝鮮で始まった朝鮮少年団創立66周年行事と金正恩労働党第1書記を「侮辱した」と反発、李政権などに対し、謝罪するか、北朝鮮の攻撃を受けるか「最後の選択」を求める通告を公表した。朝鮮中央通信が伝えた。

通告は、韓国紙の朝鮮日報、中央日報、東亜日報などが「李政権に動員され」、66周年行事について「(大衆の)歓心を買うための行事」「ヒトラーをまねしている」と報じたと反発。
正恩氏や行事に参加した子供を侮辱したと非難している。 

http://dailynews.yahoo.co.jp/fc/world/south_north_korea/?1338793745

謝罪するか、北朝鮮の攻撃を受けるか「最後の選択」を求める
だっておwwwwwwwwwwwwww

134 :デフォルトの名無しさん:2012/06/05(火) 22:50:05.05
お蔭様でやっている作業が何とかなりそうです、感謝。

>>95
スタック、ヒープについて勉強してみました。 言われたことが少しは理解できました。
また、サンプル有難うございました、色々な書き方が出来て面白い。

>>96
サンプルありがとうございました。
まだまだ勉強不足なので頑張ります。

135 :デフォルトの名無しさん:2012/06/05(火) 23:14:32.01
>>78
べつのアプローチで試してみたが短くならなかった。x86のgccならreturn r;を消しても戻るはずだがcodepadだと動かないのでreturnしてる
int W=8,H=16,L=128,T[999],B[8*16],U[999],D[8*16],i,c,*p,*q;

G(d){int r=*(p+d);if(d==-1)r=(i%W>0)**(p-1);if(d==1)r=(i%W<W-1)**(p+1);return r;}
C(d){int r=c==G(d);return r;}
I(int (*f)()){i=0;while(i<L){f();p++;q++;i++;}}
O(){int _(){*p=*q=0;}I(_);}

E(){int _(){*q=C(0)*(C(-W)+C(W)+C(-1)+C(1));}p=B;q=T+W;I(_);}
F(){int _(){*q=(*p>0)*(G(-W)+G(W)+G(-1)+G(1));}p=T+W;q=U+W;I(_);}
J(){int _(){*q|=(*p>0)*(G(-W)>2|G(W)>2|G(-1)>2|G(1)>2);}p=U+W;q=D;I(_);}

f(){p=q=D;O();c=0;while(c++<8){p=T;q=U;O();E();F();J();}}


/* test */
#include <stdio.h>
#include <stdlib.h>
N(int* a){int _(){*q=rand()%8;}srand(time(0));q=a;I(_);}
P(int* a){int _(){if(i%W==0)printf("\n");printf("%d",*p);}p=a;I(_);printf("\n");}

main(){N(B);P(B); f();P(D);}


136 :デフォルトの名無しさん:2012/06/06(水) 02:49:50.93
>>135
すげー
何やってるのかさっぱり分からん

137 :デフォルトの名無しさん:2012/06/06(水) 02:57:24.16
#include<stdio.h>
#include <conio.h>
int main(void){
char k;
int n;
while(1){
n=getch( );
if (n==0x31){printf("1\n");}
if (n==0x32){printf("2\n");}
if (n==0x33){printf("3\n");}
else{continue;}
}
}

#include<stdio.h>
#include <conio.h>
int main(void){
char k;
int n;
while(1){
n=getch( );
if (n==0x31){printf("1\n");}
else if (n==0x32){printf("2\n");}
else if (n==0x33){printf("3\n");}
else{continue;}
}
}

上のような感じにifを連続で多く使った場合とelse ifを連続で多く使った場合で
どちらがより処理速度が速いとか何か処理で違いあるかな?

138 :デフォルトの名無しさん:2012/06/06(水) 03:05:07.16
>>137
例のように簡単な場合は -O2 オプションで全く同じコードが生成された
@ MinGW gcc 4.5.2

139 :デフォルトの名無しさん:2012/06/06(水) 03:10:34.27
elseをつけといたほうが無難

140 :デフォルトの名無しさん:2012/06/06(水) 04:48:14.22
韓国の景気は下半期も回復困難=経済専門家
http://japanese.joins.com/article/238/153238.html?servcode=300§code=300

141 :デフォルトの名無しさん:2012/06/06(水) 04:58:42.75
>>138-139
答えてくれてありがとう、同じだけど念のため付けてた方がいいみたいね

142 :デフォルトの名無しさん:2012/06/06(水) 08:15:20.68
#define DEBUG 1

#if DEBUG

#endif

#if !DEBUG

#endif

これでどうですか

143 :デフォルトの名無しさん:2012/06/06(水) 10:57:49.95
getch使ってF11とF12の値調べると
F11がffffff85、F12がffffff86と出たんだけど
検索だとF11とF12がそれぞれ0x85、0x86でしか出なく、
このffffffってこちらの環境(Win7,64bit)のせいで出てるいるのか
キー入力でF11とF12押した時に反応するようプログラム作ったら
0x85と0x86のじゃなくて0xffffff85と0xffffff86の方で反応します。
この値について何か分かるでしょうか?

144 :デフォルトの名無しさん:2012/06/06(水) 11:08:43.95
>>143
ttp://ideone.com/8WTWm
それはいわゆる符号拡張
charは負数を扱わないのであれば基本的にunsigned charにしとくのが吉

145 :デフォルトの名無しさん:2012/06/06(水) 11:21:55.91
>>142
>これでどうですか
何が?

146 :デフォルトの名無しさん:2012/06/06(水) 11:24:31.40
getchってファンクションキー対応してるの?


147 :143:2012/06/06(水) 11:25:40.86
>>144
解決できて助かりました

148 :デフォルトの名無しさん:2012/06/06(水) 12:07:31.78
>>146
あんたの知っているgetchと>143の言っているgetchは違うのだろうよ。

149 :デフォルトの名無しさん:2012/06/06(水) 12:10:08.17
引数がよく理解出来なかったけどwikiみたらどのサイトよりも詳しく載ってるんだな、理解できた
テンプレいれてもいいんじゃ

150 :デフォルトの名無しさん:2012/06/06(水) 12:15:33.88
>>149
どのwikiのどのページのこと?

151 :デフォルトの名無しさん:2012/06/06(水) 12:20:42.63
引数の項目だよ、仮から実まで載ってる
仮引数はそこらのサイトの説明じゃintがついてるから変数じゃないの?って思ってた

152 :デフォルトの名無しさん:2012/06/06(水) 12:21:09.21
ごめんpediaね

153 :デフォルトの名無しさん:2012/06/06(水) 13:01:53.97
Wikipedia見たけど何に感心したのか分からん
ものすごく初心者ってこと?
なら英語の方も見るといいよ

154 :デフォルトの名無しさん:2012/06/06(水) 13:06:15.87
C言語では仮引数は変数じゃね

155 :デフォルトの名無しさん:2012/06/06(水) 14:41:41.04
#include <stdio.h>
#include <windows.h>
int main(void){while(1){
system("cls");
printf(
"□■□\n"
"□■□\n"
"□■□\n"
"□■□\n"
"□■□");
Sleep(500);
system("cls");
printf(
"■■■\n"
"□□■\n"
"□■□\n"
"■□□\n"
"■■■");
Sleep(500);
system("cls");
printf(
"■■■\n"
"□□■\n"
"■■■\n"
"□□■\n"
"■■■");
Sleep(500);
}}
1〜3までを繰り返し表示を切り替える上のようなプログラムを作ると
どうしてもチラつきが出てしまうのですが
なにかチラつきを抑える方法はないでしょうか?

156 :デフォルトの名無しさん:2012/06/06(水) 14:44:23.46
>>155
環境依存の方法でカーソル位置を移動させる

157 :デフォルトの名無しさん:2012/06/06(水) 17:51:15.48

Vsyncチェック

158 :デフォルトの名無しさん:2012/06/06(水) 19:17:35.95
>>155
普通は裏vramへ描画してダブルバッファリングする

159 :デフォルトの名無しさん:2012/06/06(水) 19:46:40.16
>>158
アホかい。

160 :デフォルトの名無しさん:2012/06/06(水) 20:15:43.70
74 :可愛い奥様:2012/06/06(水) 17:05:45.85 ID:vRJcvd5t0
フジテレビ電話したら今日の番組の変更は無いと言われた
「皇族の方が亡くなられたのに変更はしないんですか?」
と聞いたら
「今のところありません。よろしくお願いします」だと


国の一大事に捏造人気アイドルの茶番をやるつもりらしい




津田大介 @tsuda
別にAKBに恨みはないし、がんばっていただきたいなと思うけど、国民的に大きく報じる話題は
ほかにもっともっとたくさんありますよねじっさい……。テレビは特に貴重な電波資源使ってるんだし。
http://twitter.com/tsuda/status/210265622502842368

東浩紀 @hazuma
同意。
http://twitter.com/hazuma/status/210266350730481664

161 :デフォルトの名無しさん:2012/06/06(水) 22:57:41.11
>155
system("cls");
を使わずに(最初のは除く)カーソル移動に変える。

162 :デフォルトの名無しさん:2012/06/07(木) 05:46:08.70
エスケープシーケンス?
いいかげん


163 :デフォルトの名無しさん:2012/06/07(木) 08:54:35.80
え?

164 :デフォルトの名無しさん:2012/06/07(木) 15:01:22.97
(0,1)の範囲の6つの数値を複数掛け合わせてできる数値を配列に格納し、
その配列をソートし、配列の隣り合う要素の差の最大が最も
小さくなるような6つの数値を算出しなさい。
ただし、6つの数値のうち1つは0とする。

165 :デフォルトの名無しさん:2012/06/07(木) 15:27:34.19
0, 0, 0, 0, 0, 0

166 :デフォルトの名無しさん:2012/06/07(木) 15:58:50.78
E3アラブの石油王「鉄拳のアーケード筐体200セット(数億円)ください」@2012.06
http://livedoor.blogimg.jp/marketchronicle-moneynews/imgs/d/7/d77299f5-s.gif

167 :デフォルトの名無しさん:2012/06/07(木) 15:59:51.20
若干スレ違いですが、
fwriteでファイルに書き込んだ8byteの浮動小数を
hexdumpでフォーマット指定して眺めることはできますか?
hexdumpのオプションの使い方がよくわからないのでよろしくお願いします。

168 :デフォルトの名無しさん:2012/06/07(木) 16:01:04.82
8byte小数|8byte小数|8byte小数|...
って感じでたんに並んでいます。

169 :デフォルトの名無しさん:2012/06/07(木) 16:16:09.14
ttp://linuxjm.sourceforge.jp/html/util-linux/man1/hexdump.1.html
hexdump -e"%f" hoge.txt
とかかな。環境ないからテストできないけど

170 :デフォルトの名無しさん:2012/06/07(木) 16:37:30.49
hexdump -e '1/8 "%f\n"' input
hexdump -e '4/8 "%f "' -e '"\n"' input

171 :デフォルトの名無しさん:2012/06/07(木) 16:43:03.47
>>169
>>170
ありがとうございます!
とりあえず変換はできてるので、あとはスペースで区切ったりしてみます。


172 :デフォルトの名無しさん:2012/06/07(木) 16:49:56.91
なるほど、%fの後ろにスペース入れてるのが味噌ですね。

173 :デフォルトの名無しさん:2012/06/07(木) 18:02:23.71
ですね

174 :デフォルトの名無しさん:2012/06/07(木) 23:02:33.94
http://codepad.org/ij3zSIja

モード2の方なんですが、入力された数値を\マークとカンマ入りにして表示したいんですが\マークが正しく表示されません
どこを直せばいいでしょうか?

175 :デフォルトの名無しさん:2012/06/07(木) 23:08:51.18
57行目を直せばいい

ついでにエラー番号、
#define でなんとかしておいた方がいい


176 :デフォルトの名無しさん:2012/06/08(金) 02:31:36.03
>>174
buf2にコピーした際に、jを1減していない。
つーか、ロジックの見通しの悪いコードだな。

177 :デフォルトの名無しさん:2012/06/08(金) 06:48:36.33
int i = 41;
char x;
x = i;

printf();

178 :デフォルトの名無しさん:2012/06/08(金) 06:50:20.09
int i = 41;
char x;
x = i;

printf("%c\n",x);

これで A が表示されるかと思いきや ) が表示される
どうしてでしょう? ちなみに x = i; の部分でint型からchar型に型変換されている、という認識で正しいでしょうか?

179 :デフォルトの名無しさん:2012/06/08(金) 06:53:06.23
int i = 0x41;

180 :デフォルトの名無しさん:2012/06/08(金) 07:18:13.25
そうでした 16進数でした。有難うございます

181 :デフォルトの名無しさん:2012/06/08(金) 07:52:01.11
/* 4バイトの数値データをファイル出力する */
int fputLong(long num, FILE *fp){ //num(long型):入力データの総文字数 fp:出力ファイルのポインタ
fputc((num>>24) & 0xff,fp);
fputc((num>>16) & 0xff,fp);
fputc((num>>8) & 0xff,fp);
fputc((num) & 0xff,fp);
return 0;


右シフトして&演算をして出力していますが、
0xffと&演算を取るのにはどういった意味があるのでしょうか? 
0xff = 1111 1111  なので&演算しても元の値がそのまま残ると思うのですが。

182 :デフォルトの名無しさん:2012/06/08(金) 07:57:25.27
#include <stdio.h>
#include <conio.h>
void KEY(int *j1){
int g;
g=getch( );
if(g==0){
g=getch( );
if (0<*j1 && g==0x4b){*j1--;}// 左移動
else if (*j1<2 && g==0x4d){*j1++;}// 右移動
}
}

int main()
{
int j=0;
printf("\nカーソルを合わせる\n");
while(1){
if(j==0){printf("\r→A B C");}
if(j==1){printf("\r A →B C");}
if(j==2){printf("\r A B →C");}
KEY(&j);
}

}

左右のキーで矢印が動くのを作ったのですが
j1に代入された値が使われていないとエラーが出て矢印が動きません
どう修正したらいいでしょうか?

183 :デフォルトの名無しさん:2012/06/08(金) 07:59:45.50
>>182
*j1--; → (*j1)--;
*j1++; → (*j1)++;

184 :デフォルトの名無しさん:2012/06/08(金) 08:04:41.43
>>183
有難うございます、動きました

185 :デフォルトの名無しさん:2012/06/08(金) 08:15:01.32
>>181
ttp://ideone.com/KSbBp

186 :デフォルトの名無しさん:2012/06/08(金) 08:22:35.54
0x41424344 → 0x00000041 & 0x000000FF = 0x41
0x41424344 → 0x00004142 & 0x000000FF = 0x42
0x41424344 → 0x00414243 & 0x000000FF = 0x43
0x41424344 → 0x41424344 & 0x000000FF = 0x44

187 :デフォルトの名無しさん:2012/06/08(金) 08:54:31.22
>>181
確かにその論理積演算は無意味だね。
理由は違うけど。

188 :デフォルトの名無しさん:2012/06/08(金) 09:00:24.80
ttp://www9.plala.or.jp/sgwr-t/lib/fputc.html
intからunsigned charに変換して書き出し
だからマスクする必要はないが、ふつーマスクするよね

189 :デフォルトの名無しさん:2012/06/08(金) 10:57:08.54
>>184
いえいえ

190 :デフォルトの名無しさん:2012/06/08(金) 11:07:42.06
 | チョパーリ様が新しい支配者ニダ!
 | チョパーリの言うことは全て素直に聞いて
 | 日帝様に気に入ってもらわなければいけないニダ!!
 \_  ____________________
    ∨
  Λ_Λ
 <丶`∀´>             Λ_Λ   / ̄ ̄ ̄ ̄ ̄
 ( 両班 )            <丶`∀´>< チョパーリに
 | |〈_フ∧アイゴー      ⊂    つ | 出稼ぎに行くニダ
 〈_フ<´Д`丶>          人  Y   \_______
     ( 白丁 )         レ (_フ
     (_(_)    アイゴー
             888888   ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            <丶´Д`>  <丶`∀´>< チョパーリに売り飛ばすニダ
            (┌斤Y斤⊃⊂    )  \__________
            / / .| | ヽ | | |
           └-レ─レ─ゝ〈_フ__フ
   ↓   ↓   ↓   ↓   ↓   ↓   ↓   ↓   ↓
  Λ_Λ    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 <# `Д´> <  日帝はウリナラ国民を虐殺し強制連行を行い
 (    つ. .| 従軍慰安婦を強制連行したニダ!!
 | | |    | 謝罪と賠償を要求するニダ!
 〈_フ__フ   \____________
    ┌────┐
    | チョパーリは|
    | 反省しる!! |
    └──┬─┘  888888    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  .彡 ⌒ ミ .│     <丶`Д´> < チョパーリ政府は
  < #.`Д´>│    (┌斤Y斤)   | 従軍慰安婦への謝罪と賠償を!!
  (   // つ     / / .| | ヽ  \_______________ 


191 : ◆QZaw55cn4c :2012/06/08(金) 19:05:41.22
>>187,188
ほんとだ。へ〜。http://ideone.com/PF9Eh


192 :デフォルトの名無しさん:2012/06/09(土) 00:10:44.69
へへ

193 :デフォルトの名無しさん:2012/06/09(土) 09:00:34.26
>>191
括弧悪い

194 :デフォルトの名無しさん:2012/06/09(土) 09:57:56.81
>>192
へみ猫の耳か

195 :デフォルトの名無しさん:2012/06/09(土) 11:59:09.04
http://codepad.org/yq5Nd8dD
ここまでは出来たんだけど、min(最小値)の表示がおかしくなるのは何故?

196 :デフォルトの名無しさん:2012/06/09(土) 12:03:00.18
for(i=0; i<=data; i++){

197 :デフォルトの名無しさん:2012/06/09(土) 12:05:22.29
>>196
解決しました
ありがとうございます

198 :デフォルトの名無しさん:2012/06/09(土) 12:51:08.92
c++を使い始めたものなんですけど

こっちはちゃんとなるんですけど
http://www.dotup.org/uploda/www.dotup.org3073322.jpg

includeを使うと
http://www.dotup.org/uploda/www.dotup.org3073352.jpg


こんな感じになっちゃって・・・(´;ω;`)


だれか解決して下さいませんか?



199 :デフォルトの名無しさん:2012/06/09(土) 12:58:18.49
下の方に
エラー EE2209 a.cpp 1: インクルードファイル 'stdio.h' がオープンできない
と出てるように見える
インクルードパスを設定しなきゃいけないんじゃないか

200 :デフォルトの名無しさん:2012/06/09(土) 12:59:48.45
>>199
インクルードパスを設定するだけで直るんですか


201 :デフォルトの名無しさん:2012/06/09(土) 13:00:36.21
そもそも16bitアプリを作ってるのが問題
コンパイラの設定をいじるか、新しいコンパイラに替えるか

202 :質問者:2012/06/09(土) 13:03:10.46
>>201
設定をいじるのと新しく替えるのとどっちが楽ですか?

203 :デフォルトの名無しさん:2012/06/09(土) 13:14:29.80
Borland C++使わなきゃいけないんなら設定いじるしかないし
そうでなければVC++でもいいんじゃね
ttp://cvwww.ee.ous.ac.jp/vc10inst.html

204 :質問者:2012/06/09(土) 13:19:01.94
>>203
Borland C++を使わなきゃいけないんです
設定のいじり方を宜しければ教えてください

205 :デフォルトの名無しさん:2012/06/09(土) 13:21:58.94
こんな馬鹿な質問初めて見た

206 :デフォルトの名無しさん:2012/06/09(土) 13:33:02.63
CPadってLSI試食版かBCC対象じゃなかったっけ?
これから勉強するんなら
Cを勉強したい->GCCかTCC
C++を勉強したい->GCC(G++)かMSVC++
を使えるように環境そのものを替えるべき

207 : ◆QZaw55cn4c :2012/06/09(土) 13:52:04.14
>>206
c++に関して互換性で悪名高きmsvc(msc++)を推薦するのか?

208 :デフォルトの名無しさん:2012/06/09(土) 13:53:05.03
>>205
普段が『自称初心者』を装ったヤツ多いんだよ。

209 :デフォルトの名無しさん:2012/06/09(土) 14:05:58.46
ttp://hp.vector.co.jp/authors/VA029438/level1/bcccmdline.html
bcc32のコンパイルオプションで-tWを付けないと16bitコンソールアプリが出来るのか
Borland C++はよく知らないが何か謎だなー

210 :デフォルトの名無しさん:2012/06/09(土) 15:47:32.58
>>208
そういう意味じゃねーよバカが いつもの池沼か?

211 :質問者:2012/06/09(土) 16:01:07.14
いや俺初心者になりきってんじゃなくて
ガチ初心者

212 :デフォルトの名無しさん:2012/06/09(土) 16:26:23.71
>>211
で、なんでとっくの昔に存在価値のなくなったBCCでなきゃいかんの?

213 :質問者:2012/06/09(土) 16:30:05.43
>>212
ちょとまって
質問に質問で返して悪いんだけど
BCCって時代遅れなん?
最近の主流は何?

214 :デフォルトの名無しさん:2012/06/09(土) 16:57:13.31
たぶんこれ
http://www.microsoft.com/japan/msdn/vstudio/2010/product/express/offline.aspx

215 :デフォルトの名無しさん:2012/06/09(土) 16:59:31.38
gccかclangだろ

216 :デフォルトの名無しさん:2012/06/09(土) 17:48:14.63
>>209
multilibなgccの-m32/-m64とかと似たようなもんじゃね?

217 :デフォルトの名無しさん:2012/06/09(土) 17:56:10.87
>>210
土日祝GW補正ということですか?

218 :はちみつ餃子 ◆8X2XSCHEME :2012/06/09(土) 19:14:58.88
>>213
BCC 5.5 が公開されたのは 2000 年のことだぞ。 当然だがそれ以降の規格改定 (C++03, C++11) に追従していない。
流れの速いこの業界で 10 年以上も前ってのはさすがに時代遅れと言われても仕方がないわな。
ただ、規模が小さくてインストールが楽だっていうところから初心者向けに紹介しているサイトは多いかも。

219 :デフォルトの名無しさん:2012/06/09(土) 19:40:38.27
釣り耐性が育まれてない連中多過ぎwwwwww


220 :デフォルトの名無しさん:2012/06/09(土) 23:08:25.54
charの配列に2バイト文字列が入ってるものをifとかで場合分けしたいんですが、どーしたらいいんでしょう?
初歩的な質問ですいませんがよろしくお願いします


221 :デフォルトの名無しさん:2012/06/09(土) 23:11:40.78
char str[100] = "あ";

if(strcmp(str, "あ") == 0)

222 :デフォルトの名無しさん:2012/06/09(土) 23:12:20.99
初歩的だけどクソな作業だな
俺ならそういう作業は絶対にやりたくない
sjisとutf8 あたりだろうけど
出来あいのライブラリつかう


223 :デフォルトの名無しさん:2012/06/09(土) 23:16:53.04
>>221,222
素早い回答ありがとうございます
解決しました

224 :デフォルトの名無しさん:2012/06/09(土) 23:48:10.49
どこがどう解決したのかと

225 :デフォルトの名無しさん:2012/06/09(土) 23:50:16.34
>>221
>char str[100] = "あ";

色々と、無駄。
>static const char str[] = "あ";
とでもしておくべき。

226 :デフォルトの名無しさん:2012/06/09(土) 23:52:32.90
>>225
バカは黙ってろ

227 :デフォルトの名無しさん:2012/06/10(日) 00:11:05.71
配列とポインタの違いも分からない人って…

228 :デフォルトの名無しさん:2012/06/10(日) 00:12:45.39
自己紹介おつ

229 :デフォルトの名無しさん:2012/06/10(日) 08:49:29.23
              , -‐-'´ー- 、._
          ,、' : : ,:-'´: : : : : : :\
          /: : :/: : : : : : : : : : : : \
        /:/ : /: : :, : : : : : :/: : : : : : : ヽ
          !': : :/: :/;.、=7;、イ;i: : |: : : : 、: ヽ
         !: : /': :'´ ;| 'iァz;、,'ト|: :/;イ: : : }: i l
        !: : : : : : :{  `''゛'` !/'´/イ;ィ:/: リ'!
          '; : : : : ;|ヾ     ,ィ')y'/;ィ:/
          ヽ:|'; :{ヘ     _   ゝ./!'´ !'    あなたは貰えるわ
            /' ヽ! 、   ´,. ィ':i/
       _,,..../    /` ‐' ´l/リ゛      ミヤネ屋を見たもの。
      ノ `丶、  {、   ´         http://i.imgur.com/GPVGM.jpg
     / ' ‐- 、   \トヽ、
     ,イ;;;:::、:_:::::::`ヽ、 _\!`)、

      日本テレビ 社長 「不正ではない、問題ない」
      フジテレビ 社長 「不正ではない、問題ない」
      テレビ朝日 社長 「不正ではない、問題ない」
      毎日放送  社長 「不正ではない、問題ない」
      テレビ東京 社長 「不正ではない、問題ない」
      NHK ただイマ! 「不正ではない、問題ない」
      しんぶん赤旗 「不正ではない、問題ない」








230 :デフォルトの名無しさん:2012/06/10(日) 09:34:54.29
ファイルの入出力できるようになったらいろいろできて面白いです〜

231 :デフォルトの名無しさん:2012/06/10(日) 09:40:49.41
Win32を呼び出して2GB超のファイルの読み書きに挑戦してみよう

232 :デフォルトの名無しさん:2012/06/10(日) 09:41:52.71
HDD容量の限界に挑戦


233 :220:2012/06/10(日) 16:14:00.88
度々すいません

char kotoba[100] = "\0";
char gobi[2] = "\0";
int i = 0;
scanf ("%s",kotoba)
i = strlen(kotoba);
strcat (gobi,&kotoba[i-2]);
strcat (gobi,&kotoba[i-1]);
if(strcmp(gobi,"あ") == 0)
{printf ("い")}

どこが違うのでしょうか?
gobiを出力してみると目的の字の後に半角文字が出力されています
なぜgobiに2バイト文字+1バイト文字?が入ることが出来るのでしょうか?

234 :デフォルトの名無しさん:2012/06/10(日) 16:17:11.96
書式指定子スレとかがフォークして正しく機能すれば
純Cスレなんて超過疎化しそうだな

235 :デフォルトの名無しさん:2012/06/10(日) 16:34:47.17
>char gobi[2] = "\0";

236 :デフォルトの名無しさん:2012/06/10(日) 17:08:10.50
>>233
strcat()の使い方が大間違い。

>>235
見当違い。

237 :デフォルトの名無しさん:2012/06/10(日) 17:21:38.71
>>233
何をやりたいのかいまいちだけど
char gobi[2];
これで2バイト文字入れちゃうと終端文字が入らなくなるよ。
終端文字で終端されていないと、str**系の関数が正しく動作しないです。

238 :デフォルトの名無しさん:2012/06/10(日) 17:29:58.57
ttp://msdn.microsoft.com/ja-jp/library/6y9se58z
マルチバイト文字を扱うならmb系の関数があるけど
コンパイラ等の情報がなければ進展しない

239 :デフォルトの名無しさん:2012/06/10(日) 19:10:12.96
でも今時C95をサポートしてないコンパイラなんて、それこそ組込みとかの世界の話じゃね?

240 :デフォルトの名無しさん:2012/06/10(日) 20:39:47.99
if(strncmp(kotoba,"あ",streln("あ")-1) == 0)

241 :デフォルトの名無しさん:2012/06/10(日) 21:46:09.75
また意味不明なことを……

242 :デフォルトの名無しさん:2012/06/10(日) 22:18:38.66
うきっ

243 :デフォルトの名無しさん:2012/06/10(日) 22:23:15.73
円盤が三枚の時のハノイの塔攻略のプログラミングなんですが、いろいろ考えて
みても、どういう手順でどう処理をしているのか理解できません。どなたか
解説お願いします。

n … 移動させる円盤の枚数
from … 移動元の棒の名前
work … 作業用に使う棒の名前
dest … 移動先の棒の名前


void Hanoi(int n,char *from,char *work,char *dest)
{
if(n>=2) Hanoi(n-1,from,dest,work);

printf("%d を %s から %s へ\n",n,from,dest);

if(n>=2) Hanoi(n-1,work,from,dest);
}

int main(void)
{
Hanoi(3,"A","B","C");

return 0;
}

244 :デフォルトの名無しさん:2012/06/10(日) 22:33:14.43
再帰ってなんかおそろしいよな
そのたったそれだけの処理が再帰の本体だなんて
それで答えが出るからまた驚きだ
しかも処理をやっているようには見えない、
全然見えない
ひさびさにそういう恐怖を感じることができた
中身がカラッポなのに処理が出来ることの恐怖と素晴らしさ
それが詰まってる


245 :デフォルトの名無しさん:2012/06/10(日) 22:45:38.04
>>244
高校数学くらい真面目にやれ

246 :デフォルトの名無しさん:2012/06/10(日) 22:56:41.93
構文だけで再帰出来れば最高なんだけどな

247 :デフォルトの名無しさん:2012/06/11(月) 03:46:08.86
「例題で身につけるC言語入門」の
例題11-3の分割コンパイルを行ってますが
ttp://codepad.org/lVSt09pB
ttp://codepad.org/kT3pPHxI
ttp://codepad.org/96Vhj9I7

エラー E2313 main.c 10: 定数式が必要(関数 main )
と出てしまいます
誰か指摘していただけますでしょうか?
コンパイラはBCCを使用しております

248 :デフォルトの名無しさん:2012/06/11(月) 04:03:06.97
>>247
Bccは過去の遺物なので、const intでも定数として使えません。
近代的なコンパイラで試行するか、マクロ定数に置き換えましょう。

249 :247:2012/06/11(月) 04:44:27.72
>>248
フォロー乙です

テキストの方はUNIX C(富士通)を想定しております

250 :デフォルトの名無しさん:2012/06/11(月) 06:31:34.99
1文字ではなく文字列を代入する場合には、char型の配列を利用する方法がありますが、
1文字ずつではなく複数文字を1つの配列にいれることはできないのでしょうか?

例:
char+[3];

char+[0] = "ABC";
char+[1] = "BC";
char+[2] = "C";

仮に char+型と仮定するとこんな感じです。

お願いします。

251 :デフォルトの名無しさん:2012/06/11(月) 06:44:08.16
>>250
ttp://ideone.com/9kdSa
ポインタの配列を使えばできるが
動的に文字列の内容を変えたいとかもっと高度な事をしたければC++のstd::stringを使う

252 :デフォルトの名無しさん:2012/06/11(月) 07:04:39.54
有難うございます。 急いでいたので大変助かりますs

253 :デフォルトの名無しさん:2012/06/11(月) 07:21:45.01
>>250
>複数文字を1つの配列にいれることはできないのでしょうか?
↓こういうことでは無いの?

char s[3];

memcpy(s, "ABC", 3);

254 :デフォルトの名無しさん:2012/06/11(月) 09:19:03.65
中国 「韓国がまたまた中国文化を盗んだ」
http://hayabusa3.2ch.net/test/read.cgi/news/1339372752/


2012年6月9日、光明日報は、社会科学院の宗波(ゾン・ボー)氏による文化遺産保護に関する記事を掲載、
保護を徹底しなければ韓国に盗まれると警告した。

6月9日は第7回目となる中国の文化遺産デー。光明日報は再生できない貴重な資源だが、
中国の文化遺産保護は遅れていると指摘。遺跡や文化財保護の問題も深刻だが、それ以上に無形文化遺産の遅れが目立つという。

無形文化遺産の保護は中華民族の文化的基盤を揺るがし、文化安全保障にも影響すると警告している。
その事例としてあげられたのが韓国。2007年に孔子を祭る「祭孔大典」を世界無形文化遺産に申請したほか、
活版印刷は韓国の発明だといったり、中国の文化を奪おうとする動きが目立つという。

そうした動きが国家ぐるみのものであると示すのが1万ウォン紙幣。中国の張衡が発明した地動儀が図案として採用されている
(地動儀は世界初の地震計。韓国の紙幣に印刷されているのは天体観測器具の渾天儀で誤りと見られる)。

韓国の学者は地動儀が中国の発明であることを知っているが、政府やビジネスマンはそれを韓国文化の一部分に変えてしまった。

また紙の発明も韓国だとする主張もあるという。もし中国が無形文化遺産の保護を徹底しなければ、
中国民族の特色ある文化と歴史は他国のものとなってしまうだろう。
http://www.recordchina.co.jp/group.php?groupid=61984


255 :デフォルトの名無しさん:2012/06/11(月) 09:55:59.03
#include <stdio.h>
#include <conio.h>
void botan(int *b){
*b=getch( );
}
int main()
{
int f;
while(1){
printf("ENTERを押して終了\r");
botan(&f);
if(f==13) break;
else continue;
}
}

上のbreakとcontinueをイメージ的に下のような感じに関数内にしたいのですが
whileから出して動作させることはできないでしょうか?
void botan(int *b){
*b=getch( );
if(*b==13) break;
else continue;
}
int main()
{
int f;
while(1){
printf("ENTERを押して終了\r");
botan(&f);
}
}

256 :デフォルトの名無しさん:2012/06/11(月) 10:11:41.94
>>255
ttp://ideone.com/4flMp

257 :デフォルトの名無しさん:2012/06/11(月) 10:51:03.38
授業で出された課題のドミノの計算ってので詰んだ…何が分からないのか分からないよ…ふぇ

258 :デフォルトの名無しさん:2012/06/11(月) 10:58:04.96
>>256
早速ありがとうございます

259 :デフォルトの名無しさん:2012/06/11(月) 13:09:11.12
staticな二次元配列を関数func内で宣言し、それの先頭アドレスを返したいのですが、
intの配列へのポインタを返す関数func(パラメータなし)の関数プロトタイプ宣言の書き方を教えてください。
また、それを受ける側の変数の宣言(配列へのポインタ?)の仕方も教えてください。
よろしくお願いいたしますm(_ _)m


260 :デフォルトの名無しさん:2012/06/11(月) 13:12:05.71
構造体を経由したら?

struct hoge {
 int foo[20][30];
};

struct hoge* func(void)
{
 static struct hoge body;
 return &body;
}

261 :デフォルトの名無しさん:2012/06/11(月) 13:41:25.56
>>259
ttp://ideone.com/RlHA6

262 :デフォルトの名無しさん:2012/06/11(月) 14:24:17.32
//せめてtypedefを使うことを強く奨める
int (*fnc())[3]
{
  static int v[2][3];
  return v;
}
void x()
{
  int (*p)[3] = fnc();
  p[1][1] = 2;
}

263 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 14:34:47.09
#include <stdio.h>

int* hoge(int* p) {
int i,j;
for(i=0;i<10;i++){for(j=0;j<10;j++)p[i*10+j]=1;}
return p;
}
int* hage(int p[10][10])
{
int i,j;
for(i=0;i<10;i++){for(j=0;j<10;j++)p[i][j]=2;}
return &(p[0][0]);
}

void main()
{
int i,j,p[10][10]={0},*pp,(*ppp)[10]; pp=&(p[0][0]); pp=hoge(pp);
for(i=0;i<10;i++){for(j=0;j<10;j++){printf("%d ",pp[i*10+j]);}printf("\n");}
printf("\n");
ppp=(int (*)[10])&(p[0][0]);
ppp=(int (*)[10])hage(ppp); for(i=0;i<10;i++){for(j=0;j<10;j++){printf("%d ",ppp[i][j]);}printf("\n");}
printf("\n");
}

お好きなほうを

264 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 14:41:05.68
>>262
さんのを見ると
int (*hage(int p[10][10]))[10]
の関数宣言で良いんだな


265 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 14:43:46.38
でもポインタ渡しじゃないとコピーコストがかかりそう

266 :デフォルトの名無しさん:2012/06/11(月) 14:55:18.78
みなさんありがとうございます
でもダメだorzここまで複雑になると文法の理解が足りなくて読めない><
みなさんどうやって勉強されたのですか?
もしよろしければ教えてください
C言語のプロになりたくて......

267 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 14:57:14.98
関数間の配列参照は普通ポインタ渡しだそ

268 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 15:13:09.15
#include <stdio.h>

int* hoge(int* p) {
int i,j,(*pp)[10];
pp=(int (*)[10])p;
for(i=0;i<10;i++){for(j=0;j<10;j++)pp[i][j]=1;}
return p;
}
int (*hage(int p[10][10]))[10] {
int i,j;
for(i=0;i<10;i++){for(j=0;j<10;j++)p[i][j]=2;}
return p;
}

void main() {
int i,j,p[10][10]={0},*pp,(*ppp)[10];
pp=&(p[0][0]);
pp=hoge(pp);
ppp=(int (*)[10])pp;
for(i=0;i<10;i++){for(j=0;j<10;j++){printf("%d ",ppp[i][j]);}printf("\n");}
printf("\n");
ppp=(int (*)[10])&(p[0][0]);
ppp=hage(ppp);
for(i=0;i<10;i++){for(j=0;j<10;j++){printf("%d ",ppp[i][j]);}printf("\n");}
printf("\n");
}

hogeをおすすめする
hageはコピーコストがかかるよ

269 :デフォルトの名無しさん:2012/06/11(月) 15:34:24.46
//staticな二次元配列を関数func内で宣言し、それの先頭アドレスを返したいのですが、
//intの配列へのポインタを返す関数func(パラメータなし)の関数プロトタイプ宣言の書き方を教えてください。

また、それを受けとって関数内で関数ポインタ配列を宣言し、その先頭アドレスを返す
関数プロトタイプの書き方を教えてください

こういうの普通に出てくるしな
仕事でtypedefなしに書くと叱られるけど

270 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 15:34:57.98
と思ったんだがhageの方が速かったです

271 :デフォルトの名無しさん:2012/06/11(月) 15:49:00.83
なんじゃこりゃ気持ち悪いな
x()[1][1]なんて書き方した事ないぞ

int (*fnc(void))[10]
{
static int v[10][10];

return v;
}

int (*x(void))[10]
{
int (*p)[10] = fnc();

p[1][1] = 10;

return p;
}

int main(void)
{
printf("x[1][1] = %d\n", x()[1][1]);

return 0;
}

272 :デフォルトの名無しさん:2012/06/11(月) 16:00:11.26
>>271
もっと短く書くと

int (*fnc(void))[10]
{
static int v[10][10];
return v;
}

int (*x(void))[10]
{
fnc()[1][1] = 10;
return fnc();
}

int main(void)
{
printf("x[1][1] = %d\n", x()[1][1]);
return 0;
}

273 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 16:02:42.08
グローバルに置かないで関数内staticにする理由が分からない
衝突が嫌ならポインタ渡しだそ

274 :デフォルトの名無しさん:2012/06/11(月) 16:33:48.58
staticにしないと配列へのポインタを返しても関数を抜けると同時に配列が
消滅するからだろう

275 :デフォルトの名無しさん:2012/06/11(月) 16:37:56.44
グローバル 〜 ファイル内 static 〜 関数内 static

276 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 16:58:54.27
>>274
サブルーチン
メインループ
main関数
変数宣言は参照のルーチンレベル一つ下でいい
参照のルーチンレベル以上で宣言するならstaticだけど避けるべき


277 :デフォルトの名無しさん:2012/06/11(月) 17:04:06.69
>>276
あんたの言いたい事は分かるけど今は>>259さんのプログラムの書き方について
議論してるんだから

278 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 17:16:14.92
int g=0;
int *hoge(int *p){
int pp;
static int s=2;
pp=p;pp=&g;pp=&s;//どれか
return pp;
}
void main(){
int *p;
*p=1;
p=hoge(p);
}
ポインタ渡し>グローバル>static
だろ

279 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 17:27:40.97
ミス
main訂正
int i=1,*p=&i;

280 :NAS6 ◆n3AmnVhjwc :2012/06/11(月) 17:46:02.05
関数内static使うのはその関数呼び出し毎に関数内で参照する値を保持したい時位だろ

281 :デフォルトの名無しさん:2012/06/11(月) 17:50:45.02
関数が呼び出された回数を数えたいだろ

282 :デフォルトの名無しさん:2012/06/11(月) 17:52:54.46
クソコテの持論なんてどうでもいいんだよ

283 :デフォルトの名無しさん:2012/06/11(月) 17:55:12.22
書き方を教えてください

グローバル変数でいいだろ

アホですか?

284 :デフォルトの名無しさん:2012/06/11(月) 18:40:18.38
#include <stdio.h>

??? mozi(???){
printf("表示成功\n");
}

int main(void)
{
mozi(???);
}

関数の呼び出しで数値や文字を扱わないで
printfで文章だけ表示させるさいに戻り値と引数はどうするのでしょうか?

285 :デフォルトの名無しさん:2012/06/11(月) 18:41:30.49
void mozi(void)
{
  printf("fuck!!\n");
}

286 :284:2012/06/11(月) 19:08:46.43
>>285
表示できました、
有難うございます

287 :デフォルトの名無しさん:2012/06/11(月) 20:09:22.08
staticな二次元配列を関数func内で宣言し、それの先頭アドレスを返したいのですが、
intの配列へのポインタを返す関数func(パラメータなし)の関数プロトタイプ宣言の書き方を教えてください。

また、それを受けとって関数内で関数ポインタ配列を宣言し、その先頭アドレスを返す
関数func2のプロトタイプ宣言の書き方を教えてください
なおどの関数もfuncで宣言した配列へのポインタを返すものとします

288 :デフォルトの名無しさん:2012/06/11(月) 20:09:44.93
だめぽ・・・typedefを使わずになんとか書きたいんですが

int (*func(void))[10]
{
static int v[10][10];
return v;
}
int (*f1(int (*p)[10]))[10]
{
p[1][1] = 10;
return p;
}
int (*f2(int (*p)[10]))[10]
{
p[2][2] = 20;
return p;
}
int (*(*func2(int (*p)[10])))(int (*p2)[10])[10]
{
static int (*(*f[])(int (*)[10]))[10] = {f1, f2};
return f;
}
int main(void)
{
printf("%d\n", f1(func())[1][1]);
printf("%d\n", f2(func())[2][2]);
return 0;
}

289 :デフォルトの名無しさん:2012/06/11(月) 20:14:00.20
staticな二次元配列の先頭アドレスとはいうが
単に32ビットのデータに過ぎないわけで
unsigned char address[4];
に入れてもいいし
unsigned int address;
に入れてもいいしやな

290 :デフォルトの名無しさん:2012/06/11(月) 20:27:20.52
いいえ違います。

291 :デフォルトの名無しさん:2012/06/11(月) 20:29:27.54
>>288
ちなみに
int (*(*func2(int (*p)[10])))(int (*p2)[10])[10]

int (*(*func2(int (*p)[10])))(int (*p2)[10])
にすると警告が出ますが動きます
x86+BCC6.4.4です

しかし警告が出るという事はポインタの互換性がないので、アーキテクチャや
コンパイラによってはバグるでしょう(鼻から悪魔)

292 :デフォルトの名無しさん:2012/06/11(月) 20:37:22.32
int* sub(void)
{
  static int data[2][2];

  data[0][0] = 1;
  data[0][1] = 2;
  data[1][0] = 3;
  data[1][1] = 4;

  return &data[0][0];
}

int main(int argc, char *argv[]){
  unsigned int address = 0;

  address = (unsigned int)sub();

  printf("addr: %x\n", address);
  printf("data[1][1]: %d\n", *((int *)address+3));

return 0;
}

///////////////////
./a.exe
addr: 403010
data[1][1]: 4

こんなんで駄目なん

293 :デフォルトの名無しさん:2012/06/11(月) 20:44:00.41
>>292
キャストをせずに正確に書きたいのです

294 :デフォルトの名無しさん:2012/06/11(月) 21:14:32.78
>>286
いえいえ

295 :デフォルトの名無しさん:2012/06/11(月) 21:21:07.50
>>288
int (*(**func2(int (*p)[10]))(int (*p)[10]))[10];

296 :デフォルトの名無しさん:2012/06/11(月) 21:31:43.26
>>295
通りましたありがとうございます!!
**と2つ必要だとは・・

cdeclでは

func2 is a function with int (*p)[10] returning pointer to pointer to function with int (*p)[10] returning pointer to array[10] of int

となりましたので、関数のポインタ配列がポインタのポインタとして表現しなければならないわけですね

これを関数のポインタ配列として表現したいところですがCはポインタ配列といえども配列を返す
事は出来ないのでこうなるわけですね

よく理解出来ました!

297 :デフォルトの名無しさん:2012/06/11(月) 21:47:36.55
使うときも

int main(void)
{
printf("%d\n", func2(f1(func()))[0](f1(func()))[1][1]);
printf("%d\n", func2(f1(func()))[1](f1(func()))[2][2]);

return 0;
}

なんて書き方になってしまい非実用的ですがCの複雑な宣言を理解するにはもってこいのようです

298 :デフォルトの名無しさん:2012/06/11(月) 22:01:53.62
もうそこまでくると読めないレベルなのですが
何か読み方のコツといったものはあるのでしょうか

299 :デフォルトの名無しさん:2012/06/11(月) 22:07:21.61
>>298
cdeclというプログラムがいいですよ
プログラミング言語C第2版にソースプログラムが載ってます
難しいのは演算子の優先順位がぱっと見にはわかりにくいからです

300 :デフォルトの名無しさん:2012/06/11(月) 22:09:19.12
http://sourceforge.jp/projects/freshmeat_cutils/

ここからでも取れます
sourceforgeなのでウィルスの心配はないでしょう

301 :デフォルトの名無しさん:2012/06/11(月) 22:13:56.88
>>298
無駄に煩雑になってしまう型宣言の記述は
そもそもC言語の文法設計ミスとも言われている
「エキスパートCプログラミング」では、宣言のためだけに一章を割いてるw

302 :デフォルトの名無しさん:2012/06/11(月) 22:14:33.09
>>299
ありがとうございます
ちょうど手元にあるので読んでみます

303 :デフォルトの名無しさん:2012/06/11(月) 22:15:33.45
>>301さんもありがとうございます
ぜひ買って読んでみようと思います

304 : ◆QZaw55cn4c :2012/06/11(月) 22:19:48.04
鬼としかいいようがない‥‥‥

305 :デフォルトの名無しさん:2012/06/11(月) 22:29:02.66
>>301
頭の体操のために時々わざと複雑な宣言を文章で書いてそれをプログラムにしている(^^ゞ
とんでもないプログラムになって面白いです

306 :デフォルトの名無しさん:2012/06/11(月) 22:42:49.81
他人も見るような実用的プログラムじゃ使えないだろ

307 :デフォルトの名無しさん:2012/06/11(月) 22:58:46.95
実用的じゃないが「こういう書き方も出来る」というだけ

308 :デフォルトの名無しさん:2012/06/12(火) 00:22:28.68
こういうのってどういうときに使うんだろうね?


309 :デフォルトの名無しさん:2012/06/12(火) 00:33:22.61
上級者ぶりたい時

310 :デフォルトの名無しさん:2012/06/12(火) 02:39:53.47
ビル・ゲイツ「反原発派の政治家や国民はもう少し科学的知識を持った方がいい」
http://ikedanobuo.livedoor.biz/archives/51740658.html

きょうシアトルで、西和彦さんと一緒にビル・ゲイツにインタビューした。
彼は福島事故について驚くほどくわしく知っていて、
「合理的な日本人が非合理的な反応をしているのは残念だ」と言っていた。
特に原発や放射線のリスクについての科学的知識が政治家や一般国民に知られていないことが問題を必要以上に混乱させている、と語った。

印象的だったのは、中国がウェスティングハウスのAP1000を60基発注するという話だ。
中国は世界中からエンジニアを集め、国家プロジェクトとして原子力開発を進めている。
先月、第1号機が納品された。これは1基115万kWだから、合計6900万kW。
これだけで日本の原発の合計をはるかに上回る。設計はすべて同じだから、コストも非常に安い。

重要なのは安全性だが、AP1000のような第3世代の原子炉には、
炉心溶融を物理的に防ぐ受動的安全装置がついており、巨大地震が起きても大丈夫だ。
福島第一原発は古いマークTで、30年前から技術者が危険だと警告していた。
日本も「脱原発か否か」といった不毛な論争ではなく、古い原発を新しい原発に代えて
安全性を高めることも必要ではないか。

エネルギー産業は、情報通信産業の次の大きなフロンティアだ。
古い地域独占の電力会社が残っているおかげで、イノベーションの余地は非常に大きい。
新興国は安くて効率的なエネルギーを求めている。環境問題を考えても、きわめて危険な
石炭を減らすために原子力は重要だ。風力エネルギーも有望だが、フィードインタリフは
イノベーションを殺してしまう。

大事なのは、かつての通信と同じく、電力を全面的に自由化して競争を促進することだ。
エネルギー産業でも、かつてマイクロソフトがIBMを倒したように、巨大な電力会社を倒す
ベンチャーが出てくる可能性がある。そのためには不合理な規制を徹底的に見直すことが必要だ。
アメリカにはシェールガスもクリーンコールも第4世代原子力技術もあり、イノベーターも多い。
足りないのは合理的な政府だけだ。


311 :デフォルトの名無しさん:2012/06/12(火) 07:42:42.14
ttp://ideone.com/IoTtQ
一次元配列へのポインタを元に考えると二次元配列へのポインタも渡せるが
こんな書き方はせずに構造体にするか引数にしたり別の分かりやすい手段を取るな

312 :デフォルトの名無しさん:2012/06/12(火) 07:52:03.52
ttp://ideone.com/iuVSw
引数にしてみたが相変わらず分かりづらい

313 :デフォルトの名無しさん:2012/06/12(火) 13:09:27.35
2×2正方行列Aと2次ベクトルy、xの関数
→y = A ・→x
を関数matmulf( )内でyについて計算して
、yをメイン関数の配列の中に返したいのですが
どういう式の書き方をすると良いか教えてください。
配列xと二次元配列Aの値を使って配列yを計算したいです。
行列同士の計算は参考書にも載っているんですが、こちらはやり方が思いつかなくて。
初歩的な質問ですみません><
よろしくお願いしますm(_ _)m

314 :デフォルトの名無しさん:2012/06/12(火) 13:18:15.97
それも行列同士の掛け算ではある

315 :デフォルトの名無しさん:2012/06/12(火) 13:28:48.56
>>313
ttp://ideone.com/IvMzJ
行列とかベクトルとかよく分かんないけどこんな感じか

316 :デフォルトの名無しさん:2012/06/12(火) 14:59:50.39
わからないですが
Nの2乗を10個表示させたいんてすがどうしたらいいんですかね。
ちなみにstdio.hのみで、for文を使ってです

317 :デフォルトの名無しさん:2012/06/12(火) 15:00:38.10
Nの乗数でした。

318 :デフォルトの名無しさん:2012/06/12(火) 15:19:03.09
>>316
ttp://ideone.com/81Pjz

319 :デフォルトの名無しさん:2012/06/12(火) 18:34:48.28
int (*(**func2(int (*p)[10]))(int (*p)[10]))[10];
この関数プロトタイプ宣言解析してください

320 :デフォルトの名無しさん:2012/06/12(火) 19:07:50.71
             ___,,,,,..... -一ァ
         / ̄;;;´;;、;;;ヾ;;;, -──--、,!
.        /'´|;;;;,、;;;;;;;;;;/      ,!
.         /:.:.:.レ´:.ヾ;;;;;;i   断  だ ,!
       /:.:.:.:.:.:.:.:.:.:.:ヾ;i  る  が ,!
.      /:.;.イ:.:.:.:.:.:.:.:.:.:..ヽ       ,!
.       /レ' ;|:.:.:.:.:.:.:,:ィ:.:.:.:〉 __,.,!
     /-、ヽ,:|:.:.:,/ /:.:.://.:,:ィ:.:.:.,!
      /'ヽ、ヾi ゙´.:   /__;:;:-'"´ ,;|:.:.:.,!
.    /ゝ-`';:/ .:〈ニ=-=ニ二 ̄ヽレ',!
   /::::;;;;;/  ' ,, ニ`ー-,、__\〉ィ,!
.   /;:::::/ ::.    ::.,,\_ゞ;'> 〈;,!
  /i!:::::iヾ-'、::..       '';~ ,;:'/,!
. /;;;i!fi´l_、,.`        .: ,;:'  ,!
/;;;;;i' ('ー、ヽ      ..: ,;:''   ,!
ヽ、jゝ、`ヾ:、゙、   ,..:'.:'"    .: ,!
   ``ヽ.、_ ¨`  ,:'      (_r:,!
       ``ヽ.、..    ノr;ソ~,!
             ``ヾ、 / 7,!
                 ``ヽ,!

321 :デフォルトの名無しさん:2012/06/12(火) 20:25:48.12
あるfloatの値aを
fprintf(fp, "%E\n", a);
とすると、1.970200E+03
fprintf(fp, "%f\n", a);
とすると、1970.199707
と精度が違っていて、
scanf(fp, "%E", &b); で 1.970200E+03 を読み取ると
bは%Eだと 1.970200E+03 ですが、 %f だと 1970.199951 になります。
%fだと精度が高いのはなぜですか?
あとこれだと、
fabsf(a - b) <= FLT_EPSILON * max(fabsf(a), fabsf(b))
がFALSEなので比較しても一致しません。
fprintfとfscanfでfloatの値を変えずに読み書きするにはどうしたらいいですか?


322 :デフォルトの名無しさん:2012/06/12(火) 20:29:16.08
>>321
float の7桁目以降は飾りなので気にしない

323 :デフォルトの名無しさん:2012/06/12(火) 20:45:38.34
ttp://www.cc.kyoto-su.ac.jp/~yamada/pB/float.html
float 型の精度(有効桁数)は2進数にして 24 (=23+1) 桁であり,10進数では約 7 桁となる.

324 :デフォルトの名無しさん:2012/06/12(火) 20:50:22.86
fabsf(a - b)

桁落ち
絶対値がほぼ等しい異符号の数値同士の加算後や、同符号でほぼ等しい数値同士の減算の後、正規化で有効数字が減少すること。

325 :デフォルトの名無しさん:2012/06/12(火) 20:52:43.23
>>324
それで a b は(だいたいほぼ)同じだとどうやって比較したらいいのですか?


326 :デフォルトの名無しさん:2012/06/12(火) 21:13:33.97
float j=1.0;
for (i=0;i<7;++i){
while (!(a/j||b/j))j/=10;
while (a/j<j*10||b/j<j*10)j*=10;
if ((a%=j)!=(b%=j))break; }
bool eq=i==7;


327 :デフォルトの名無しさん:2012/06/12(火) 21:17:36.62
ttp://msdn.microsoft.com/ja-jp/library/c151dt3s(v=vs.80).aspx

#define FLOAT_EQ(x,v) (((v - EPSILON) < x) && (x <( v + EPSILON)))
桁落ちしないようこんなマクロ使うとか

328 :デフォルトの名無しさん:2012/06/12(火) 21:24:41.62
>>326
冗談はやめてください
FLT_EPSLION がなんか誤差の範囲みたいなやつでこれをどうにかすると
ズレてもいい範囲に変換でき、その結果が(a - b)の絶対値より大きければOKというような情報を得ていますが
インターネットを探しても間違った情報ばかりで意味が分かりません
>>327
そのEPSILONを x や v がどんな(正しい)floatの値の場合でも
正しく比較できるような範囲にするにはどうしたらいいですか?
その例だと EPSILON が 0.0001だから、1.0E-20くらい同士の比較だとほとんどOKになってしまいますよね?



329 :デフォルトの名無しさん:2012/06/12(火) 22:16:20.52
>>318
どうもありがとうございます<(_ _)>

330 :デフォルトの名無しさん:2012/06/12(火) 22:40:53.35
>>328
つ[double]

331 :デフォルトの名無しさん:2012/06/12(火) 23:18:12.96
>>330
それで何が解決するの

332 :デフォルトの名無しさん:2012/06/12(火) 23:28:36.91
>>321
どうしてもfscanfとかで扱いたいなら、とりあえず文字列で受けてからパースするなりすればいいんでないの

333 :デフォルトの名無しさん:2012/06/12(火) 23:28:59.02
>>331
全てが解決する魔法の呪文だ


334 :デフォルトの名無しさん:2012/06/12(火) 23:31:17.77
あるfloatの値をテキストファイルに書いてまた読み込んで
値の変化がfloatの仕様上許容できる範囲かをチェックしたいだけなんだけどそんなに難しいことなの?

%E の出力は同じだから同じ丸め方で一致するか比較できればいいだけで
%E の出力の桁数がC言語の仕様上7桁と決まっているのなら
絶対値の小さいほうの10の対数とってからEPSILONを求めればいいけど
そのへんを組み込みの定数から華麗に求められないの?という質問です


335 :デフォルトの名無しさん:2012/06/12(火) 23:37:25.21
符号部と指数部を揃えた上で仮数部の差が一定の範囲内であれば一致と見なすとか
ゼロ近傍は符号の関係で別途考慮する必要がある

336 :デフォルトの名無しさん:2012/06/12(火) 23:37:45.61
数値計算の誤差無くすのに人類がどんだけ苦労したと思ってんだ
アホはクソして寝ろ

337 :デフォルトの名無しさん:2012/06/12(火) 23:40:53.17
>>329
いえいえ

338 :デフォルトの名無しさん:2012/06/12(火) 23:52:02.33
>>335
ふたつの値の差の絶対値が許容できる誤差の範囲であれば一致しているとみなしてよいと思ってて
その「許容できる誤差の範囲」を比較する値とFLT_EPSILONみたいな定数から求められればいいと思うんだけど
できないの


339 :デフォルトの名無しさん:2012/06/13(水) 00:00:54.53
>>321
いっそ原点に立ち返って桁落ち覚悟で2つの数値の差を求める
ただ、許容する誤差の範囲としてFLT_EPSILONはあまりにも小さすぎる

ttp://ja.wikipedia.org/wiki/%E9%9D%9E%E6%AD%A3%E8%A6%8F%E5%8C%96%E6%95%B0
非正規化数の考慮や、ある程度の丸めによってゼロになれば一致と見なせないかな

340 :デフォルトの名無しさん:2012/06/13(水) 00:28:49.65
fabsf(a - b) <= N * FLT_EPSILON * fmaxf(fabsf(a), fabsf(b))
でいい(Nは16くらい)
というようなのがチラホラあるんだけど、こいつら全員間違っているんでしょうか



341 : ◆QZaw55cn4c :2012/06/13(水) 01:21:37.79
>>321
float の7桁め以降は飾りなので気にしない。(再掲)
別に精度が悪くなっている/よくなっているわけではない。単に10進表示したときにどこで丸めるか、だけの話で、%f は下々の桁まで展開しちまっているのでは?

>>340
妥当にみえるのですけれども。

342 :デフォルトの名無しさん:2012/06/13(水) 02:19:52.26
複素数を入力すると、偏角と絶対値を出力するプログラムを教えて下さい。

343 :デフォルトの名無しさん:2012/06/13(水) 02:31:20.01
偏角は
atan2(imag, real)

絶対値は
sqrt(real * real + imag * imag)

344 :デフォルトの名無しさん:2012/06/13(水) 04:03:11.53
つ[hypot()]

345 :デフォルトの名無しさん:2012/06/13(水) 04:23:35.28
>>342
>>343をそのままプログラムにしてみた

#include <stdio.h>
#include <math.h>

int main(void)
{
double real, imag;

printf("複素数の実部を入力してください : ");
scanf("%lf", &real);
printf("複素数の虚部を入力してください : ");
scanf("%lf", &imag);

printf("入力された複素数は(%f, %fi)\n", real, imag);
printf("偏角(φ) = %f rad\n", atan2(imag, real));
printf("絶対値 = %f\n", sqrt(real * real + imag * imag));

return 0;
}

346 :デフォルトの名無しさん:2012/06/13(水) 10:17:35.54
>>341
妥当に見える理由はなんでしょう
a b の絶対値を掛けるのは、FLT_EPSILONが1.0を基準にしたものだからスケーリングするためで
16というのは4bit分は余分な精度っぽいので捨てろという意味でよいですか?

そもそも計算誤差ではなく、scanf %E で読みこんだときに
書かれていた値以上の精度の桁が勝手についてるのが悪いのですが
それによってズレる範囲がFLT_EPSILONから求める値、
つまり計算の誤差の範囲と同じくらい、ということにしてもいいの?


347 :デフォルトの名無しさん:2012/06/13(水) 10:52:14.30
>>346
10進小数の2進数への直し方とエプシロンの意味分かる?

348 :デフォルトの名無しさん:2012/06/13(水) 11:07:24.16
何を困っているのかよくわからない
浮動小数点数で2進10進間の変換をしたら循環小数になる場合がある
情報を失いたくないならバイナリで書きましょう

printfにfloatは渡せないよ、doubleに変換される
可変引数だから

349 :デフォルトの名無しさん:2012/06/13(水) 11:31:48.08
doubleに変換して必要な精度でfloatに変換しろよ。

350 :デフォルトの名無しさん:2012/06/13(水) 12:27:48.75
全部double使えばいいよ

351 : ◆QZaw55cn4c :2012/06/13(水) 12:37:26.78
>>346
>書かれていた値以上の精度の桁が勝手についてるのが悪いのですが
これが間違い。勝手についてくるのではない。精度に関しては float 4バイトの内容以上でも以下でもない。
10進法表示としたときに、どの桁まで展開されるかによって、一見表現が違うようにみえるだけなのです。

float の7桁め以降は飾りなので気にしない。(再々掲載)

352 :デフォルトの名無しさん:2012/06/13(水) 13:29:45.90
>>321 が分かってないのは
float f=1970.199707;
ってすると、fの値は1970.199707であってそれ以外ではない!
と思ってることでしょ
でもprintf("%.8f",f)とやれば分かるように、そうじゃない。
精度を指定しない%fが6桁という仕様からくる錯覚…

353 :デフォルトの名無しさん:2012/06/13(水) 13:49:30.42
>>321
ttp://ideone.com/xxafU
ttp://codepad.org/Y50sv6FI

実際にビット列を見た方が早いんじゃないかと思ったが手持ちの環境ではa,bに差異がない

VC++ 2010 Express での結果

0 10001001 11101100100011001100110
1.970200E+003
1970.199951
0 10001001 11101100100011001100110
1.970200E+003
1970.199951

354 :デフォルトの名無しさん:2012/06/13(水) 14:09:56.50
2進の世界で1/10はできないっていうのはわかります
2進の世界では1/10するには1/2^nのシグマをとって限りなく0.1に近づけるのですよね

355 :デフォルトの名無しさん:2012/06/13(水) 14:20:14.68
何事にも限度はあるよ!

356 :デフォルトの名無しさん:2012/06/13(水) 15:42:40.67
http://upload.naritaka.jp/uploda/K&R.png



357 :デフォルトの名無しさん:2012/06/13(水) 15:45:42.10
とりあえず>>321の状況を再現してみたんだが、はてさて
ttp://ideone.com/rU6G9

358 :デフォルトの名無しさん:2012/06/13(水) 16:35:12.46
0から99までの100個の戻り値のサイズがばらばらの関数がある。
これらの関数を引数no 0-99に応じて読み出す関数
long readset(int no){}があったとすると、readsetの中身
の処理をどのように作るのがいいでしょうか?
switch caseで分岐すると処理が長くなりすぎるし、関数ポインタ
の配列にしようにも0-99関数の戻り値がばらばらなのでうまくいかないし。
0から99までの関数の戻り値はlongが最大なので、intで足りる関数も一
番大きいサイズの関数に合わせて戻り値longで作れば関数ポインタ配列で
割とスッキリ作れますが、そういうのってありですかね。

359 :デフォルトの名無しさん:2012/06/13(水) 16:49:02.56
その readset() の戻り値の取り扱いが 引数の no 寄らず固定でいけるんなら
個別関数は戻りを long にするな。

たまたま値域が最大で long にまとまるってだけで
あるときは 座標値を意味してたり、あるときは関数の成否を意味してたり とばらばらだったら
まとめようとは思わない

360 :デフォルトの名無しさん:2012/06/13(水) 16:58:44.86
void readset(int no, void *ret)にして
戻り値の代わりにretに書き込む。

361 :デフォルトの名無しさん:2012/06/13(水) 17:01:00.80
readsetの呼び出し元が戻り値を7桁LCDに表示するんですが、
その関係で戻り値がlongになってます。
0-99の100個の個別関数は意味はばらばらですが、なにかしらの
設定値です。関数の成否を表すようなことには使っていません。

362 :デフォルトの名無しさん:2012/06/13(水) 17:02:32.78
>>357
この状態です
a を %E で出力した後その値を %E でbに読むと値が変わっているけども
その差が許容される範囲であるのなら a と b は一致している判定したいだけ
>>351
10進数で7桁目というのはC言語の仕様上決まっていて決め打ちしてもいい値ですか?


363 :デフォルトの名無しさん:2012/06/13(水) 17:30:55.44
浮動小数点数というものを少しは自分で調べた方がいい
Cの仕様の範囲内ではないが、IEEE754がデファクトスタンダード
正規化数しか考えないならその制度は10進でlog(2^24) = 7.2247199桁
非正規化数も考えるならlog(2^23) = 6.9236899桁

>その差が許容される範囲であるのなら a と b は一致している判定したいだけ
そうすりゃいい
あなたが許容する範囲もあなたが自由に決めていい

364 :デフォルトの名無しさん:2012/06/13(水) 17:32:34.50
>>362
結局のところ>>327のように状況に応じた適当な精度でイコール判定するのが手っ取り早い

365 :デフォルトの名無しさん:2012/06/13(水) 18:09:13.20
>>362
ttp://ideone.com/TU8G2
%Eによる指数表記の精度はfloatよりも悪いので
このように%.8Eのように精度を上げればあるいは

366 :デフォルトの名無しさん:2012/06/13(水) 18:19:07.29
ttp://ideone.com/LYHXd
要するにこう

367 :デフォルトの名無しさん:2012/06/13(水) 18:51:13.79
>>321
この質問に立ち返ると

>%fだと精度が高いのはなぜですか?
%Eの有効桁数は6桁。%fの有効桁数は小数点以下6桁
つまり整数部分があると%fの有効桁数は増える(それでもfloatの有効桁数7桁どまりだが)

>fprintfとfscanfでfloatの値を変えずに読み書きするにはどうしたらいいですか?
%.8Eなど精度を上げるか、いっそのこと4バイト配列と見なして16進文字列に変換してしまえば精度は維持できる
ttp://ideone.com/QK45N
人間の目で分かりづらいのであれば%.8Eなどを併記しておき、読み込む際は無視する

368 :デフォルトの名無しさん:2012/06/13(水) 18:58:16.60
>>363
誤差の範囲は7桁より下と言いたかった人ではないの
>>363
状況に応じたというのは a の b の値に応じた汎用的なチェックはC言語の範囲では書けないという意味ですか
汎用的にfloatの値を保存して読み出したいだけなので値の範囲は float の範囲が全部あります
>>365
%Eのフォーマットが7桁って何かの規格によるものでしょうか
記憶違いかもしれないけどVC++の%Eは8桁だった気がする


369 :デフォルトの名無しさん:2012/06/13(水) 19:02:44.63
>>367
ttp://ideone.com/qY71e
もっとシンプルにするとこうなる

>>368
>状況に応じたというのは a の b の値に応じた汎用的なチェックはC言語の範囲では書けないという意味ですか
汎用的なイコール判定は自分には思いつかない

370 :デフォルトの名無しさん:2012/06/13(水) 19:14:32.38
すみません
clで確認したら7桁でした

ideoneの人が一番分かってそうでしたが
結局誰も答えられないということか

371 :デフォルトの名無しさん:2012/06/13(水) 19:56:16.15
それほど精度が求められないプログラムであれば大体こんな判定になる
ttp://ideone.com/95cHD
きっちり精度を求めようと思ったら論文レベルになる

372 :デフォルトの名無しさん:2012/06/13(水) 22:14:07.05
>>371
絶対値の大きさに依存できないんですよね
指数部は動き回るわけで

10進数7桁でいいなら
if (fabsf(a - b) < 1.0e-7f * powf(10.0f, floorf(logf(min(fabsf(a), fabsf(b)))/logf(10.0f)))) {
// ok
}
みたいな式でもいい気がするのですが


373 :デフォルトの名無しさん:2012/06/14(木) 07:29:56.83
>>372
別にいいけど、そのこだわりには普通は意味がない。
普通は、だいたいどういう大きさの数値を扱っているかわかってるから
>>371 ぐらいの方法でいい。

やりたいことは誤差を無視して比較する、ってことなはずだけど
まず、10進7桁の精度は絶対ではない。みんな2進数だって言ってるでしょ。

それに途中で演算しているなら、どんどん誤差はたまっていく。
いつまでも 10進7桁の精度が有効とは限らない。

374 :デフォルトの名無しさん:2012/06/14(木) 08:46:24.21
>>373
テキストベースで汎用的なfloatの送受信処理が書きたいので数値の大きさは想定できないです
絶対値の大きさはFLT_MAXからFLT_MINまであります
演算による誤差の話はここでは問題にしていません

で、もちろん、floatのサイズなんかの話もあるし正確に移動したいわけではなく
%Eで表現できる範囲でよくて、極端に言えばsprintf %Eで文字列比較して一致していればよくて
それはつまり仮数部10進数7桁目までが一致していればよくねと思い始めていますが
これも難しいですか?


375 :デフォルトの名無しさん:2012/06/14(木) 08:49:48.77
>>374
>%Eで表現できる範囲でよくて、極端に言えばsprintf %Eで文字列比較して一致していればよくて
じゃあそれでいいじゃん

376 :デフォルトの名無しさん:2012/06/14(木) 09:54:06.96
char test[] = {0x01, 0x02, 0x03, 0x04};
っていう配列があったとして
long op(void)
{
return (long)test[3];
}
とキャストした場合戻り値って0x01020304でなく0x00000004に
なりますよね。
これって新たに4byteどこかに確保され0x00000004で上書きされ
てるってことですよね?

377 :デフォルトの名無しさん:2012/06/14(木) 09:58:19.22
>>376
そうだよ
戻り値用のスタックの4バイトに0x00000004が格納される

378 :デフォルトの名無しさん:2012/06/14(木) 10:02:32.35
いや普通レジスタだから

379 :デフォルトの名無しさん:2012/06/14(木) 10:10:31.80
>>374
末尾の N+1 ビットが違っていても許容する判定は

int32_t ia = *(int32_t*)&a;
int32_t ib = *(int32_t*)&b;
if(ia < 0) ia = -(ia ^ (int32_t)(0x80000000));
if(ib < 0) ib = -(ib ^ (int32_t)(0x80000000));

if(abs(ia - ib) < (1 << N)){ /* OK */ }

ただし IEEE 限定
それが嫌なら nextafter とか使えばいいよ


380 :デフォルトの名無しさん:2012/06/14(木) 10:26:37.88
>>376
test[3]が0x01020304なワケがない
キャストに関係なく

381 :デフォルトの名無しさん:2012/06/14(木) 10:57:16.77
よく読めよ

382 :デフォルトの名無しさん:2012/06/14(木) 11:01:54.61
>>374
正解は無いし分かってやるなら別に>>372でもsprintfでもいいんじゃね
参考
http://c-faq.com/fp/fpequal.html

383 :デフォルトの名無しさん:2012/06/14(木) 19:18:40.71
C言語で、外部の.exeファイルを実行するにはどうすればいいですか?
使っているソフトはVS2010です

384 :デフォルトの名無しさん:2012/06/14(木) 19:33:37.71
system

385 :デフォルトの名無しさん:2012/06/14(木) 19:49:21.82
system()

386 :デフォルトの名無しさん:2012/06/14(木) 19:53:21.05
本に記載されているサンプルプログラムをVC++2010で実行したところ

if(fp_i ==NULL) {
fprintf(stderr,"Input File cannot open\n");
exit(8);


の部分で 関数exitが定義されていません と警告がでました。
}

ヘッダファイル等をインクルードする必要があるのでしょうか?

387 :デフォルトの名無しさん:2012/06/14(木) 19:57:07.80
本とVCを窓から投げ捨てれ

388 :デフォルトの名無しさん:2012/06/14(木) 20:01:23.61
printfだろうとstdio.hをインクルードしないと未定義だからな
exitを選択してF1キーでヘルプを調べて必要なヘッダファイルをインクルードしる

389 :デフォルトの名無しさん:2012/06/14(木) 21:00:16.57
goto文を使う場面ってどんな時ですか?

390 :デフォルトの名無しさん:2012/06/14(木) 21:03:56.57
三重のfuckなループから一瞬で抜け出したい時、
あるいはその会社から抜け出したい時


391 :デフォルトの名無しさん:2012/06/14(木) 21:24:47.41
goto使わないことだな、初心者は特に
なれると、どういうときに使えるのか、わかってくるよ

392 :デフォルトの名無しさん:2012/06/14(木) 21:29:32.53
goto文を使っていいのはエラー処理と多重ループからの脱出のみ
ここは試験に出るから覚えておくように

393 :デフォルトの名無しさん:2012/06/14(木) 21:32:19.87
俺もgoto使って会社から抜け出さないと

394 :デフォルトの名無しさん:2012/06/14(木) 21:33:56.21
多重ループから抜けたいお・・・
でもフラグ使うとソースが読みづらくなるお・・・
そうだ、gotoで一気に抜けよう!

エラー処理でmallocした領域を解放したいお・・・
でもいちいち解放してたら大変だお・・・
そうだ、gotoで関数の最後に飛ぼう!

少なくとも前の方に飛ぶ事はないな

395 :デフォルトの名無しさん:2012/06/14(木) 21:36:33.09
受験と同じに点数取ることだけ考えてたら、初心者止まりになる可能性が高くねえか?

396 :デフォルトの名無しさん:2012/06/14(木) 22:36:10.42
対象データをより大きくしようと、配列宣言で取る領域をさらに大きくすると
実行時にフリーズになってしまうんだけど、どうしたらいいんでしょう?

397 :デフォルトの名無しさん:2012/06/14(木) 22:37:36.16
グローバル変数にするかstaticを付ける

398 :デフォルトの名無しさん:2012/06/14(木) 22:50:34.96
>>389
末尾再帰最適化

399 :デフォルトの名無しさん:2012/06/14(木) 23:25:50.03
__fastcallで書いた方いいだろ

400 :デフォルトの名無しさん:2012/06/15(金) 07:27:17.98
>>386
system("");
を使いたいなら
#include <stdlib.h>
を書かなければならない

401 :デフォルトの名無しさん:2012/06/15(金) 09:47:55.97
>>400
嘘乙。このスレ的には必要はない。
しかも、問題になっているのはsystemじゃない。

402 :デフォルトの名無しさん:2012/06/15(金) 09:50:11.44
>>386
>>388
それはc++としてコンパイルしているから。cならエラーにならん。
# インクルードしておいた方がいいことには違いないが。

403 :デフォルトの名無しさん:2012/06/15(金) 10:04:22.97
>>396
解決したらお礼を言えよクズ

404 :デフォルトの名無しさん:2012/06/15(金) 10:46:30.57
お礼は入りませんよ

405 :デフォルトの名無しさん:2012/06/15(金) 11:37:31.98
解決したかどうかぐらいは報告しろよクズ

406 :デフォルトの名無しさん:2012/06/15(金) 11:47:12.77
お礼は三行

407 :デフォルトの名無しさん:2012/06/15(金) 12:17:27.92
おまえらマルチに優しいな

408 :デフォルトの名無しさん:2012/06/16(土) 01:47:29.36
最近は、人の質問をあちこちにコピペしてマルチ認定するのも居る。
応答したい奴がすれば良いんじゃね?

409 :デフォルトの名無しさん:2012/06/16(土) 07:52:54.55
アホか
質問者がトリつけりゃあいいだろ

そこまで頭が回らないなら
C言語以前だ
小学中学から人生の勉強やり直した方が
ソイツのためだろ


410 :デフォルトの名無しさん:2012/06/16(土) 08:45:31.36
トリが違うからマルチじゃなくてコピペされたんですってかw?
判断付かねぇよ

411 :デフォルトの名無しさん:2012/06/16(土) 12:26:58.30
良い流れだ。

412 :デフォルトの名無しさん:2012/06/16(土) 19:34:17.53
米食品医薬品局 韓国製海産物の回収を求める

http://m.ruvr.ru/data/2012/06/16/1295821940/4RIA-618757-Preview.jpg

  米食品医薬品局(FDA)は、健康に害を及ぼす可能性があるとして米国市場に韓国製海産物製品を入れないよう求めた。
 14日ロイター通信が伝えたところでは、韓国製の海産物の中にヒトの糞便の痕跡が見つかり、この事は、胃腸の病気を
引き起こすノロウイルスが食べ物の中に存在する可能性を意味する、との事だ。

  問題となっているのは、韓国製のカキ、ホタテなどの貝類やイクラなどで、生のものも又、缶詰入りのもの、さらには別の
方法で加工された製品も含まれている。

  ロイター通信によれば、今のところ駐米韓国大使館からは、何のコメントも出されていない。

http://japanese.ruvr.ru/2012_06_16/78294694/


韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり



413 :デフォルトの名無しさん:2012/06/17(日) 02:01:26.59
>>412
スレチだし、韓国では普通のコト。
一々書き込むなよ。

414 :デフォルトの名無しさん:2012/06/17(日) 09:40:08.67
>>391
逆だね

初心者ほど何でもありで
やりたい放題やっておいたほうがいい

分岐命令そのものの否定という間違った理解こそ有害だ

415 : ◆QZaw55cn4c :2012/06/17(日) 10:05:04.52
>>414
やりたい放題、というほどやらない人が大半だから(私もここでやりたい放題やることができるようになった口だし)、最初に制限をかましておくことも時には必要で、goto はそれにあたるのでは?

416 :デフォルトの名無しさん:2012/06/17(日) 16:08:43.53
>>415
低脳がやりたい放題やってもやっぱり低脳ですね(笑)

417 :デフォルトの名無しさん:2012/06/17(日) 18:47:11.50
やりたい放題って人の話を聞かないとかミスを指摘されても無視するってことでしょ?
そりゃいつまでたっても成長せんさ。

418 :デフォルトの名無しさん:2012/06/17(日) 20:49:28.29
わかってgoto使ってるんなら、いいんだけど
難読化するような使い方してるの見たことあるけど、何作ってるのってかんじだったなあ、BASICの考え方をそのまま持って来ましたって...

419 :デフォルトの名無しさん:2012/06/17(日) 20:53:51.92
そう言うのを書く人はこう思ってる、
「なんでC言語とかいうアホは、BASICのようにキチンとgotoが使えないんだ」



420 :デフォルトの名無しさん:2012/06/17(日) 21:57:15.05
BASICだって80年代には「goto使うなgosub使え」って言われてたよ
ベーマガのDr.Dとか

421 :デフォルトの名無しさん:2012/06/17(日) 22:10:12.33
 ,_________________
 |                       |
 |  ._,,..-..,,,__          ○     .|
 |  |:::::::: ニ=.T         _______.   .|
 |  |:::::::: ニニ ト、      _,.-个:::::::|   |
 |___ .|:::::::: ニニ |叫     |.=ニレ-'个ー‐-|
 |.  ̄\:. ニニ.|叫 ̄ ̄ ̄~T=ニ|::|`'ー.,_  .|
 |-ー‐''''个.ニニ.レ'´√ ̄ ̄'个-.,|::| 叫 `'ー|
 |. ニ= |::_,.-'´ /   _   ';_ ``|.,     .|
 |   _,.ト'´  /  /入ヽ  `;_  \   |
 |  /    /   ヽ∵フ   `;_  \,  |
 |_/     /  √ |Y| `'i   `;_   \_|
 |      /    | |.|.| .|    `;_    |
  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

422 : ◆QZaw55cn4c :2012/06/17(日) 22:33:23.73
>>416,417
んー、NGワードに登録しないでくれているんだ、ありがとうです。

423 :デフォルトの名無しさん:2012/06/17(日) 23:53:14.39
localtime関数のような構造体へのポインタを返す関数を作ってみると、
「ローカル変数またはテンポラリのアドレスを返します。」と出てきます。
動的に確保されたメモリ領域が解放されるのにそのポインタを返すのはおかしいという解釈でよろしいのでしょうか。
だとすれば何故localtime関数は構造体へのポインタを返す事ができ、それをmainからアクセス出来るのでしょうか
よろしくお願いします。

424 :デフォルトの名無しさん:2012/06/18(月) 00:01:37.21
自動変数は「動的に確保されたメモリ領域」とは呼ばない。

localtimeは、static変数のアドレスを返している。
(処理系によっては、スレッドローカルな変数を使っている)

425 :423:2012/06/18(月) 00:04:24.07
>>424
なるほど
勉強になりました
ありがとうございました

426 :デフォルトの名無しさん:2012/06/18(月) 05:48:31.71
いえいえ

427 :デフォルトの名無しさん:2012/06/18(月) 16:26:09.38
今の処理系ってそんなこと警告してくれるんだ

428 :デフォルトの名無しさん:2012/06/18(月) 18:36:25.47
韓国の海産物はうんこ入り どうせ日本のマスゴミは報道しないからお知らせしとくわ
http://engawa.2ch.net/test/read.cgi/poverty/1339929120/



 米食品医薬品局(FDA)は、健康に害を及ぼす可能性があるとして米国市場に
韓国製海産物製品を入れないよう求めた。

 14日ロイター通信が伝えたところでは、韓国製の海産物の中にヒトの糞便の痕跡が見つかり、この事は、
胃腸の病気を引き起こすノロウイルスが食べ物の中に存在する可能性を意味する、との事だ。

  問題となっているのは、韓国製のカキ、ホタテなどの貝類やイクラなどで、生のものも又、
缶詰入りのもの、さらには別の方法で加工された製品も含まれている。

  ロイター通信によれば、今のところ駐米韓国大使館からは、何のコメントも出されていない。

ソース
http://japanese.ruvr.ru/2012_06_16/78294694/
画像
http://m.ruvr.ru/data/2012/06/16/1295821940/4RIA-618757-Preview.jpg

429 :デフォルトの名無しさん:2012/06/18(月) 18:42:21.68
情報系の学科にいるが、絶対に大学院には行かない。
ガチで就職がやばいんで、さっさと小企業に就職しますわ。

プログラミングは絶対趣味にすべき。

430 :デフォルトの名無しさん:2012/06/18(月) 18:46:29.58
例えば小飼弾なんかは
ゴミクズ寸前?だったストックオプションを切り抜けて
優雅な引退生活を送ってる ように見える
ついでにハクもついた

結局は、入る企業とヌける時期による


431 :デフォルトの名無しさん:2012/06/18(月) 20:03:08.91
プログラミングは場合によって時間食うのがな

432 :デフォルトの名無しさん:2012/06/18(月) 20:09:51.71
プログラミング得意な奴見たことない。
都市伝説でいるのか不思議。



433 :デフォルトの名無しさん:2012/06/18(月) 20:15:14.18
得意っつってもな。
やるこたぁKBDでパチパチ打ち込んでるだけだからな。
その動きじたいがスゴイ!……ってな話でもないし
ヘタなヤツも動き自体はプロと同じだろうし。

それにTVで放映されるような種類の職でもなし、
UMA認定されるのも当然だろう


434 :デフォルトの名無しさん:2012/06/18(月) 20:17:47.89
BPS バトル プログラマーシラセ

435 :デフォルトの名無しさん:2012/06/18(月) 20:17:50.36
>>433
お前国立大卒?
さっさと答えろよ

436 :デフォルトの名無しさん:2012/06/18(月) 20:23:05.24
>>435
すげぇのはいる。
一体どこいらがすごいのかが分からないくらいに凄いと言われてんのが。
もちろんソイツは情報課


437 :デフォルトの名無しさん:2012/06/18(月) 20:25:47.30
>>436
質問に答えろよおっさん。


438 :デフォルトの名無しさん:2012/06/18(月) 20:32:03.09
>>437
しつもん てどれ?


439 :デフォルトの名無しさん:2012/06/18(月) 20:32:11.96
わしゃーおっぱい大学出身じゃ。

440 :デフォルトの名無しさん:2012/06/18(月) 23:58:09.06
質問させてください。

テキストファイルにランダムな数値を出力するプログラムを作ったところ、通常通り出力されました。
http://codepad.org/8xXI3kgO

しかし、これをクイックソートでソーティングしてから出力するプログラムに変更したところ、ファイルが出力されなくなってしまいました。
http://codepad.org/5UZIz01p

実行しても、ファイルの生成自体行われません。開発環境はVisualStudioを使っています。なぜこのような事が起こるのでしょうか

441 :デフォルトの名無しさん:2012/06/19(火) 00:31:05.99
>>440
ファイルが変なフォルダにできてる気が

442 :デフォルトの名無しさん:2012/06/19(火) 00:38:39.22
スタックオーバーフロー

443 :440:2012/06/19(火) 00:42:06.25
>>441
ご返答ありがとうございます。
実行してファイルを検索してみたところ、残念ながら一致するファイルは見つかりませんでした。
このようなプログラムを書くとファイルがおかしな(いつもと違う)場所にできてしまうことが多い、ということでしょうか

444 :440:2012/06/19(火) 00:46:46.21
>>442
ご返答ありがとうございます。
データ数を50に変更してみたところ、同じようにファイルは出力されないままでした。
また、データを二分探索で探せるように先ほどのプログラムを拡張した(クイックソートはそのまま)ところ、正しく結果が出力されるようになりました。
クイックソートだけを記述している場合のほうがスタックオーバーフローを起こしやすいということでしょうか。

レスを分けてしまい申し訳ありません。

445 :デフォルトの名無しさん:2012/06/19(火) 00:50:49.17
>>443
Visual Studio ならデバッガで実行してみればいい。
ツール→デバッグ開始

それでエラーにならなかったら
ファイルはどこかにできてる。

446 :デフォルトの名無しさん:2012/06/19(火) 01:06:55.77
>>444
とりあえずgccでは特に問題なく動いているみたいだけど。

447 :440:2012/06/19(火) 01:35:06.51
>>445-446
皆さんご返答ありがとうございます。やはり私の実行の仕方がまずかったのでしょうか。
他の方法でも実行してみようと思います

448 :uy:2012/06/19(火) 02:30:09.94
ちげーよカス
問題の箇所は
int main ( void ){
int data[N_DATA];
          ↑   
の          これ

main内で宣言したAuto変数はmain関数に割り当てられたスタックを使ってる
それを超えるとスタックがぶっ壊れる
mainで使えるスタックのサイズはコンパイラごとに違うはず

50にしてファイルが出力されないっていうのはおかしいから何かのミスだろ

とりあえずint data[N_DATA];
をメイン関数の外において実行

もし変な環境でやってるなら
"data.txt" を "./data.txt" しないとダメな場合もあるかもしれない

449 :デフォルトの名無しさん:2012/06/19(火) 04:33:46.48
>>440,447
swap ( data, 0, rand() % n ); は何のため?

450 :uy:2012/06/19(火) 04:41:52.26
今はそこじゃねーだろカス

451 :デフォルトの名無しさん:2012/06/19(火) 09:00:14.76
メモリ的な意味でエラーになってるならエラーが表示されてしかるべきだろう。

だから最初にこう聞くべきだった。
「エラーメッセージはないの?」と。

452 :デフォルトの名無しさん:2012/06/19(火) 10:06:30.40
へえ

453 :片山博文MZボット ◆0lBZNi.Q7evd :2012/06/19(火) 16:27:22.49
こんなのクイックソートじゃない。再帰の方法がおかしいので、
無限に再帰してスタックオーバーフローになっているのでしょう。

これでも読んで勉強してください。
http://www1.cts.ne.jp/~clab/hsample/Sort/Sort9.html

454 :uy:2012/06/19(火) 23:35:26.95
だから関数に割り当てられたスタックサイズの上限超えてるっつってんだろボケカス

455 :デフォルトの名無しさん:2012/06/19(火) 23:46:49.95
スタックの上限って関数単位でコントロールできる環境ってあるの?

アプリケーションで1括りや スレッド単位で って環境は知ってるけど

456 :デフォルトの名無しさん:2012/06/20(水) 00:16:56.80
たかが200KBで何ほざいてんだこのアホコテどもは

457 :デフォルトの名無しさん:2012/06/20(水) 00:50:19.00
スタックサイズの問題なら最初の奴でもエラーにならなきゃおかしいだろ

458 :デフォルトの名無しさん:2012/06/20(水) 01:25:11.12
配列をstaticにしたら普通に動いた
やっぱり配列が大きすぎてスタックオーバーフローを起こしてるな
スタックを多目に取るかmalloc/newするか

459 :デフォルトの名無しさん:2012/06/20(水) 01:28:58.28
ちゃんとコテ付けろよ

460 :uy:2012/06/20(水) 02:10:25.58
だからmain関数のスタックっつってんだろバカかwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

C言語なら俺に聞けスレにいる奴ってこんなレベルなの?死ね

#include <stdio.h>
void main(){
int a[100000000];
printf("a\n");
}

これ実行してみろゴミカス
aは表示されない

aが表示された場合には10000000を適当に数値変えてみろ初心者死ね

http://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%83%AD%E3%83%BC
Wikipediaにすら書かれてるwwwwwwwwwwwwwwwww
ググることすら出来ないのか

461 :デフォルトの名無しさん:2012/06/20(水) 02:19:43.35
uyって真性の池沼か

462 :デフォルトの名無しさん:2012/06/20(水) 02:28:22.32
スタックが関数ごとにさらに分けられてる? なにそれ?

463 :デフォルトの名無しさん:2012/06/20(水) 02:30:58.12
スレッド?のことじゃあ

464 :デフォルトの名無しさん:2012/06/20(水) 02:39:04.70
たぶんスタックフレームのこと(?)

465 :デフォルトの名無しさん:2012/06/20(水) 03:34:30.40
スタックの問題なら50に変えてもファイルが出力されないわけねーだろw

466 :デフォルトの名無しさん:2012/06/20(水) 03:56:36.13
カレントディレクトリの問題じゃね?

467 :デフォルトの名無しさん:2012/06/20(水) 04:19:22.96
441に戻る

468 :デフォルトの名無しさん:2012/06/20(水) 07:14:26.76
でもWindowsはフラットモデルを採用したためにスタックサイズがコンパイル時に固定
されちゃったんだよな(ページングを使用)
セグメントモデル使ってればスタック可変に出来たのに(Unix、Linuxの floating stack model
はそうなっている)

よほど8086時代のセグメントが嫌だったのか

しかし確かにスタック可変というのは良くないっちゃあ良くない点もあるからこれでいいのかも

469 :デフォルトの名無しさん:2012/06/20(水) 07:44:02.38
は?

470 :デフォルトの名無しさん:2012/06/20(水) 08:03:01.35
>>440,447
ファイルは出来るし、再帰レベルは2桁(100未満)だから、スタックオーバーフローの可能性は低い。
>>440 かもな。

471 :デフォルトの名無しさん:2012/06/20(水) 10:51:12.72
私大の情報科とかヤバそう
そら院行かずに就職したほうがいいわ

472 :デフォルトの名無しさん:2012/06/20(水) 11:04:33.61
void line(void)
{
int i;
以下省略
この(void)ってなんですか?
あとプロトタイプ宣言ってなんですか?

473 :デフォルトの名無しさん:2012/06/20(水) 11:23:45.33
>>472
あなたがCをどこまで知っているかによって説明の仕方が変わります。

・(void)
(void)じゃなくて()なら判りますか?

・プロトタイプ宣言
関数の宣言のうち、引き数リストを明示したものを指します。

474 :デフォルトの名無しさん:2012/06/20(水) 11:54:27.98
ふう

475 :デフォルトの名無しさん:2012/06/20(水) 12:31:22.42
新しいプロジェクトの作成で、Win32、MFCアプリ、Win32アプリなど
があって、誤って作成したんですが変更するにはどうすればいいですか?

476 :デフォルトの名無しさん:2012/06/20(水) 12:51:28.48
>>475
新しく作り直せばいい
できたものを比較すれば何が違うのかわかるよ

477 :デフォルトの名無しさん:2012/06/20(水) 12:51:48.19
削除して作り直した方がいいよ

478 :デフォルトの名無しさん:2012/06/20(水) 14:02:00.45
つーか、プログラムの使い方はスレ違いだろ、と。

479 :デフォルトの名無しさん:2012/06/20(水) 16:42:18.28
よいしょっと

480 :デフォルトの名無しさん:2012/06/20(水) 16:57:47.48
まー入門編スレだし

481 :デフォルトの名無しさん:2012/06/20(水) 16:58:47.49
>>478
おまえ頭いいなぁ・・・気付かんかったw
で、プログラムの使い方はどこで聞けばいい?

482 :デフォルトの名無しさん:2012/06/20(水) 17:05:49.93
>>481
Visual Studio の事なら Visual Studio スレで訊けばいいんじゃね

483 :デフォルトの名無しさん:2012/06/20(水) 17:30:09.39
>>481
>で、プログラムの使い方はどこで聞けばいい?
ソフト板だろ。JK

484 :デフォルトの名無しさん:2012/06/20(水) 18:18:56.71
主婦の7割が「韓国タレントは嫌い」 地銀シンクタンクが調査した実態とは

日本でのK-POPブームに陰りが見え始めたとも指摘される昨今だが、それでも新たなグループが続々と日本進出している。
今年に入ってからだけでも日韓同時デビューのA-JAX、吉本興業系のレーベルから日本デビューするMYNAME(マイネーム)、
さらには「K-POP最後の大物」との触れ込みで7月にデビュー予定のWonder Girls(ワンダーガールズ)など、相変わらずの
「雨後のたけのこ」状態。それほどまでに日本市場はK-POPにとってオイシイのか、そして本当にK-POPは日本で売れてい
るのか。その実態を探ってみた。

 大垣共立銀行(岐阜)系列のシンクタンクである共立総合研究所による「韓流消費に関するアンケート」の調査結果に、
実に興味深い調査結果がレポートされている。なんと、アンケートに回答した主婦の7割が「韓流は好きではない」との結果だったのだ。

 同研究所は<K-POPの台頭、食品、コスメをはじめとする韓国製商品ブームのマスコミでの取り上げ方、新聞の テレビ欄における
韓国ドラマの占有状況からかなりの盛り上がりを予想したが、結果は予想を下回るものであった>と、調査レポートを結んでいる。

結局、K-POPブームとは単にKARAと少女時代という個別グループのブレイクにすぎず、やはり実体などなかったということか。

http://uramono.org/entertainment/2576.html

485 :デフォルトの名無しさん:2012/06/20(水) 20:38:34.42
>>447
446だけどVC++2010expressでも試してみたけど、
普通に実行できたよ。
hogeソリューションを作成したけど
\hoge\hoge\data.txt
にできてた。今ひとつファイルが置かれた場所は腑に落ちないが、
参考までに。exeファイルと同じフォルダにできると思ったのだが、、、。



486 :デフォルトの名無しさん:2012/06/20(水) 21:42:21.24
スタックサイズ増やせばいいがな

487 :デフォルトの名無しさん:2012/06/20(水) 21:46:33.30
スタックがなければヒープを使えばいいじゃない

488 :デフォルトの名無しさん:2012/06/20(水) 21:47:44.71
ふにゃ〜

489 :デフォルトの名無しさん:2012/06/20(水) 21:59:20.77
まだスタックとか言ってんのかよ

490 :デフォルトの名無しさん:2012/06/20(水) 22:05:38.83
すったかたー。

491 :デフォルトの名無しさん:2012/06/20(水) 22:23:33.74
【6月19日 AFP】大韓航空は18日、ケニアの人々が「原始的エネルギー」で満ちていると広告で表現したことを謝罪し、
ウェブサイトから広告を削除した。

 ソウル・ナイロビ間の便を近日就航する予定の大韓航空は、そのPR広告で「大韓航空で飛び、アフリカの大いなるサバンナ、
サファリツアー、そして原始的エネルギーに満ちた先住民たちを楽しみましょう」と表現した。

 あるケニア人はこうツイートしている。
 「私の #原始的エネルギーを処理するために今日はライオン狩りとゾウいじめをしようと思う」

 別のケニア人はこうツイートした。
 「私は毎朝起床するために #原始的エネルギー を使っています」

 数百件のツイートが集まったことを受け、大韓航空は、「ナイロビ便の最近の広告についてしかるべき確認を行っています。
この状況に対して心から謝罪いたします」と発表した。

以下省略
http://www.afpbb.com/article/economy/2885046/9141540

492 :デフォルトの名無しさん:2012/06/20(水) 23:29:19.87
スタックって64bitくらい?

493 :デフォルトの名無しさん:2012/06/20(水) 23:47:36.51
>>485
起動時のカレントディレクトリは起動したアプリによって決定される。
エクスプローラからならプロパティで変えられるし、VisualStudioでは便宜上ソリューション配下のバイナリ置き場の上になっている。

494 :デフォルトの名無しさん:2012/06/21(木) 01:22:26.44
>>492
Windowsだとデフォルトは1MBで、リンカのオプションで変更も可
http://msdn.microsoft.com/ja-jp/library/tdkhxaks(v=vs.100).aspx

495 :uy:2012/06/21(木) 05:53:45.26
Cのスタックオーバーフローは再現性が低いんだよ
よく覚えとけ

自身のプロセスに割り当てられたスタックより上を使ったとしても
そこのメモリを誰も使っていなければスタックオーバーフローしてても普通に動く
メモリ配置が変われば動かなくなる事もある

そんなゴミカス言語でITは作られてる
動的言語とか、動的言語の問題点とか
ソースコードかいているうちに目に見えないバグとポインタの使用によって脆弱性だらけになっていくC言語に比べたら
メモリ管理だけはしっかりされているだけよっぽどマシだ

496 :デフォルトの名無しさん:2012/06/21(木) 08:34:03.09
スタックより上って……
せめてスタックオーバーフローとは何か、調べてから書けよ。

497 :デフォルトの名無しさん:2012/06/21(木) 08:38:56.87
いやもう書かなくていいよ

498 :デフォルトの名無しさん:2012/06/21(木) 08:41:11.67
スタックの底が FFFF だった頃のご老人かと

499 :デフォルトの名無しさん:2012/06/21(木) 08:42:13.22
そうだね、自分でメモリ管理できない子はGCある言語使ったほうがいいよ
特にローカル変数で1MB超えるようなメモリ使っちゃうようなおバカさんはね

500 :デフォルトの名無しさん:2012/06/21(木) 09:20:39.29
500

501 :デフォルトの名無しさん:2012/06/21(木) 09:56:21.90
次に該当する人は少し勉強しましょう。
・スタックオーバーランとバッファオーバーランは同じだと思っている
・ローカル変数を沢山使うと確保により時間が掛かると思っている
・関数を呼ぶと必ずスタックを消費すると思っている
・自分を卑下しつつもエリートであると矛盾したことを言ってしまう

502 :デフォルトの名無しさん:2012/06/21(木) 09:58:57.68
あらゆる主要板にスレッド立てられてますなあ
こりゃアフィにも広まるし
完全に日テレはネットに嫌われるね

■モ娘(狼)
日テレ韓国マンセーで遂にGP帯オール一桁wwwwwwwwww
http://hayabusa3.2ch.net/test/read.cgi/morningcoffee/1335226115/

■ニュー速(嫌儲)
最近フジより韓流ゴリ押しの酷い日テレ GP帯(19〜23時)視聴率オール一桁達成
http://engawa.2ch.net/test/read.cgi/poverty/1335228771/

【フジ・日テレ死亡】テレビ朝日視聴率3冠おめでとうございます
http://engawa.2ch.net/test/read.cgi/poverty/1340233396/

■ニュース速報
【第二のフジテレビ】日テレ、韓流ゴリ押しで大爆死
http://engawa.2ch.net/test/read.cgi/news/1335230981/

■なんでも実況J
【朗報】韓流ゴリ押しの日テレが低視聴率
http://hayabusa.2ch.net/test/read.cgi/livejupiter/1335229538/




503 :uy:2012/06/21(木) 15:30:51.62
>>496
どんだけ知識ないのにレスしてんだ

これだからOSすら作れないゴミは

504 :uy:2012/06/21(木) 15:40:24.12
関数の実行コードはスタックには詰まれないと思われがちだが
再帰するごとに関数のリターンアドレスがちゃんとスタックに詰まれていく
main関数も例外じゃない


>>501
バカじゃねえの?
インライン展開でもしてない限り関数呼んだ時点でスタック使ってるから


まずはお前らは

void main(){
int a[1];
printf("%d \n" , a[1]);
printf("%d \n" , a[2]);
printf("%d \n" , a[3]);
}


ここら辺にはいってるデータがなんなのかを知れゴミクズ

505 :uy:2012/06/21(木) 15:41:02.09
理解したら二度と話かけんな





二度と話かけんなよ

506 :uy:2012/06/21(木) 15:44:13.48
>>501
> ・スタックオーバーランとバッファオーバーランは同じだと思っている
はああっアアアアあああああああ???????????wwwwww
どんな俺様実装ですか??
スタックも所詮、割り当てられたバッファに過ぎない
バッファオーバーランが スタックオーバーランなんだよ

> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
それだけpush命令行われてるのにバカじゃねえの??????

> ・関数を呼ぶと必ずスタックを消費すると思っている
>>504これみてもわからないなら死んだほうがいいと思うwwwwwwwww

> ・自分を卑下しつつもエリートであると矛盾したことを言ってしまう
偽と本物の区別も付かないゴミカスってまだいたんだ


507 :デフォルトの名無しさん:2012/06/21(木) 16:04:35.85
C/C++あたりでゲーム作りたいと思ってるんだけど、まず初めにゲームを作るとしたら
どんなゲームがいいんだろう?

知識はprintf,scanfとか、for,while,とかまだ触りだけしかしてないけど
参考書なりぐーぐる先生なりに聞いて独学でやるつもり。

できることならクオリティ高いゲーム作りたいけど
はじめから高望みもいけないのでお手軽なものを教えていただきたい
C/C++以外の言語がオススメっていうのもあればお願いします

508 :デフォルトの名無しさん:2012/06/21(木) 16:36:48.41
>>506
ローカル変数を沢山使ったからと言ってpushが使われるとは限らない。
スタックポインタの書き換えで終わるならpushなんて出てこない。

関数の戻り番地の話は良いけど、引数の話を持ち込むなら
スタックを使うとは限らない。
64ビット版Windowsなら条件はあるけどレジスタを使って引数を渡す。

正直もう少し落ち着けと言いたい。

509 :デフォルトの名無しさん:2012/06/21(木) 16:52:35.51
残念ながら、それでも不充分。
世の中には関数の戻り先をスタックに積むのはサブルーチン側の役目になっているCPUもある。
そのCPUでは、関数を呼ぶときにはIPを特殊なレジスタに積んでサブルーチンのアドレスをIPに代入するわけだ。
それに、ローカル変数もレジスタが豊富な最近のCPUなら一々スタックに置かない。

まぁ、そんなことはどうでもよくて、関数がインライン展開されてしまえばどの途スタックは関係なくなるよ。

ついでに言えば、スタックオーバーランはスタックオーバーフローと同義と考えられる。
だとすれば、関数呼び出しのネストが深くなってスタックを使い尽くすことを指す。
バッファオーバーランは、スタックに限らずどこででも発生し得る。有名なのは、gets()だね。

まぁ、>501の言うように少しは勉強しろってこった。

510 :デフォルトの名無しさん:2012/06/21(木) 16:56:32.70
             /)
           ///)
          /,.=゙''"/   
   /     i f ,.r='"-‐'つ____こまけぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /

511 :デフォルトの名無しさん:2012/06/21(木) 16:56:54.62
>>507
http://toro.2ch.net/test/read.cgi/gamedev/1329488938/l50
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/l50

512 :デフォルトの名無しさん:2012/06/21(木) 17:26:43.06
>>511
すまん、ありがとう

513 :デフォルトの名無しさん:2012/06/21(木) 17:59:09.87
うむ。
スタックがなんだかんだとつまらんことを気にするよりライブラリの使い方一つでも読み解いてた方がマシ

514 :デフォルトの名無しさん:2012/06/21(木) 18:16:19.80
>>509
例を挙げただけなのに不十分とか言われても…
それに結局スタックを使っているような…
使う変数はレジスタでも、呼び出した関数でレジスタを使うためにレジスタの値を
スタックに保存する場合だってあるわけだし、ちょっと乱暴な話になってる気がする。

>>513
スタックの話も知ってないと困ることがあるから、つまらんことでは無いと思う。

それにしても、何でコテはすぐ荒れるんだろう…

515 :デフォルトの名無しさん:2012/06/21(木) 18:20:42.02
ちゃんと糞コテ付けろ

516 :uy:2012/06/21(木) 19:59:59.45
七誌が俺に見えてきてるなら病気だぞそれ

517 :uy:2012/06/21(木) 20:02:04.79
>>508
ほんっとうに文章読めないカスだな

俺がいつ「引数」っていった?



まずはお前は

void main(){
int a[1];
printf("%d \n" , a[1]);
printf("%d \n" , a[2]);
printf("%d \n" , a[3]);
}


ここら辺にはいってるデータがなんなのかを知れゴミクズ

518 :デフォルトの名無しさん:2012/06/21(木) 20:18:55.23
猫でも使ってるんだけど、ポインタで???になって困ってる
オススメの参考サイトとかある?

519 :デフォルトの名無しさん:2012/06/21(木) 20:26:42.11
>>518
配列については理解してる?

520 :デフォルトの名無しさん:2012/06/21(木) 20:29:52.40
>>518
http://www9.plala.or.jp/sgwr-t/index.html
http://d.hatena.ne.jp/kura-replace/20120611/1339376977
http://d.hatena.ne.jp/kura-replace/20120616/1339856279

猫でもってタイトルに反してめちゃくちゃ癖がなかったっけ
Cの仕様、Windowsの仕組み、Windows SDKの仕様は分けて考える必要がある

Cの仕様自体はたいした物ではないから
まずそこだけきっちり勉強したほうがいいぞ

521 :デフォルトの名無しさん:2012/06/21(木) 20:39:37.70
猫でもの良い所はIDEに頼ってないところだけじゃないかな

522 :デフォルトの名無しさん:2012/06/21(木) 20:46:10.16
>>519 わかんない;; 複数の変数を一緒に宣言するみたいな感じ? アドレスの話もふわふわしてる

>>520 サイトありがとう じっくり考えてみる

523 :デフォルトの名無しさん:2012/06/21(木) 20:51:33.25
配列⇔文字列⇔ポインタ ここらへんの関係はややこしい

524 :デフォルトの名無しさん:2012/06/21(木) 21:08:56.24
配列理解してないのに、ポインタガーとか

525 : ◆QZaw55cn4c :2012/06/21(木) 21:38:08.85
>>506
>バッファオーバーランが スタックオーバーランなんだよ

バッファオーバーランとスタックオーバーフローは全然違う概念なんですけど。
想定した範囲を超えてアクセスしてしまうのがバッファオーバーラン。
フラットなメモリモデルでスタックがヒープ領域にまで達してしまったのがスタックオーバーフロー

それはそうと、「スタックオーバーラン」?きいたことないね。

>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
>それだけpush命令行われてるのにバカじゃねえの??????

おいおい、スタックポインタをローカル変数分だけずらす(定数マイナスとする)だけなんですけど。
スタックポインタを動かせるのはcall/ret, push/pop だけじゃないんですけど。
sp に対して加減算するオペコードは普通に存在するんですけど。
そもそもローカル変数をアクセスするときはインデックスレジスタを使うと思うんですけど。

>> ・関数を呼ぶと必ずスタックを消費すると思っている
臨機応変にインラインに展開する賢いコンパイラってあるんでしょうかね。そうでなければ call/ret でスタックを消費すると思いますが、はてさて。

糞コテQZに突っ込まれるようでは糞コテ以下と認定せざるを得ません。本当にかわいそうだと思います。
お薬飲みましたか?

526 :デフォルトの名無しさん:2012/06/21(木) 21:45:18.33
QZひでぇw

527 :uy:2012/06/21(木) 21:46:30.31
俺がお前たちに言える事はひとつだけ

さっさと死ねとしかいえないわ

>>525
このゴミカスはpush以外の命令は実行時間が0秒とでも思ってんのか?
だったら0秒後にお前が早く死ね


さっさと死ね

528 :デフォルトの名無しさん:2012/06/21(木) 21:48:09.36
最近読んだポインタの説明は、これが結構良かった
http://www.chokkan.org/lectures/2012c/p2-3_pointer.pdf

でも、まったくの初心者には難しいかも

529 : ◆QZaw55cn4c :2012/06/21(木) 21:48:20.07
>>509
>世の中には関数の戻り先をスタックに積むのはサブルーチン側の役目になっているCPUもある。
???
kwsk。
サブルーチン側うんぬん、というのは ip/pc が変わる前にスタックに積まれるか、変わった後に詰まれるか、っていう差異を問題にしている?
呼び出し側、サブルーチン側の境目の定義を教えてください。

>IPを特殊なレジスタに積んでサブルーチンのアドレスをIPに代入するわけだ。
ということは call のネスト数に限りがあるのでしょうか?

>ローカル変数もレジスタが豊富な最近のCPUなら一々スタックに置かない。
そのかわりに使うレジスタをあらかじめpush/pop しているような気がしてならない‥‥‥。
あるいは使い捨てレジスタを決め打ちしているとか。

530 :デフォルトの名無しさん:2012/06/21(木) 21:50:44.19
今のパソコン環境なら、スタック不足はOSでわかるようになってる
スタック検出機能がない環境もある、パソコン以外なら

531 : ◆QZaw55cn4c :2012/06/21(木) 22:01:24.96
>>527
>このゴミカスはpush以外の命令は実行時間が0秒とでも思ってんのか?

>>506
>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww

え?え?
沢山使うと「より」時間がかかる、というのは間違いだといっているだけね。
ローカル変数を沢山使おうが少なく使おうが、かかる時間は

変 わ ら な い。

定数分引くだけですからね。

私の飲んでるお薬あげます。よくききますよ。
http://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Thorazine_advert.jpg/388px-Thorazine_advert.jpg

532 : ◆QZaw55cn4c :2012/06/21(木) 22:03:38.69
>>530
うーん、それが、どうやってスタック不足を正確に検出することができるのか、不思議におもっています。
かりにフラットなメモリモデルだとして、ヒープの底とスタックの頭の差をいちいちチェックするのも、なんだか無駄な気がしますし。

533 :はちみつ餃子 ◆8X2XSCHEME :2012/06/21(木) 22:11:47.28
>>532
インテルアーキテクチャ (というか 80386 以降) にはメモリ保護の機能があり、
事前に指定した領域にアクセスがあると例外を投げる仕組がある。
例外を受取ったらその領域を有効にするなど、スタックサイズを必要に応じて伸長することが出来る。

534 :デフォルトの名無しさん:2012/06/21(木) 22:16:01.33
>>532
ヒープの底とスタックの頭の差で見てたのはDOS時代?

仮想メモリって、知ってる?
ヒープとスタックって、メモリ空間が2Gもあると隙間ができるみたい
スタック割り当て空間以外をアクセスするとわかるようになってるってだけ

ヌルポも割り当て空間以外をアクセスしてるよってことでしょ

535 : ◆QZaw55cn4c :2012/06/21(木) 22:40:55.84
>>533
ページングは普通に使われているだろうとは考えているのですが、フラットなメモリ構造を捨てセグメンテーションを積極的に使っている OS というのは寡聞にしてきいたことがないのです。
>>534
スタックとヒープの間をうーんと広げて隙間にページフォールトを仕掛ける、ということですか。

んー http://www.amazon.co.jp/dp/4756102131 を読みかえしてみよう‥‥‥。

536 :デフォルトの名無しさん:2012/06/21(木) 22:43:22.78
フラットモデルはヒープとスタック領域がほとんど同等に扱われているから問題なんだよ
利点もたくさんあるけど

セグメントモデルにするとスタックが足りなくなると伸長するようにOSが組める
その分スタックセグメントを別扱いしないといけないなど欠点もある
でもこちらの方が安全性が高い

537 :デフォルトの名無しさん:2012/06/21(木) 22:47:42.60
まーたセグメントとか言ってるあほが居るよ

538 : ◆QZaw55cn4c :2012/06/21(木) 22:57:10.70
>>536
どうせならユーザースタックpush/popとシステムスタックcall/retもわけたらいいと夢想してきてはいたのですが、もうそんなOS/言語系って存在するのでしょうか?

539 :デフォルトの名無しさん:2012/06/21(木) 23:02:07.77
なんだっけ、規定以上の水を入れたせいで固まりが悪く、阪神大震災では大きな被害をもたらす原因となったんだっけ?

540 :デフォルトの名無しさん:2012/06/21(木) 23:08:39.40
それコンクリート

541 :デフォルトの名無しさん:2012/06/21(木) 23:13:32.48
ああ、フランス人ピエール・シェフェルが始祖とされる音楽の一分野ね。

542 :デフォルトの名無しさん:2012/06/21(木) 23:18:01.34
>>533
仮想記憶もそれと基本的に同じ仕組で実現してるしな

543 :デフォルトの名無しさん:2012/06/21(木) 23:25:42.60
>>538
ユーザースタックとシステムスタック
を、そういう風に分けてるマイコン?ってあるんっけ?

544 : ◆QZaw55cn4c :2012/06/21(木) 23:42:59.75
>>543
6809ははっきりそうだったのですが、それ以降はよくわからないのです。68k は違うみたいだし。

545 :デフォルトの名無しさん:2012/06/21(木) 23:53:42.65
>>544
なんか古いの知ってるみたいだけど
push/popだけ分けたのは6809で終わったんじゃね

546 :デフォルトの名無しさん:2012/06/22(金) 00:14:04.91
68000はデータスタックとコードスタックを分けられるね。
分けない環境も多いけど。

>>520
その先頭はとってもダメになるサイトだ。

547 :デフォルトの名無しさん:2012/06/22(金) 00:15:58.43
>データレジスタとアドレスレジスタはそれぞれ8本の使い道が自由です。

548 :デフォルトの名無しさん:2012/06/22(金) 00:16:09.56
もっとはっきりと
「そのサイトはゴミだ」
と言わないとダメだろw
伝わらねーよwww


549 :デフォルトの名無しさん:2012/06/22(金) 00:19:14.93
bigインディアンだろう

550 :デフォルトの名無しさん:2012/06/22(金) 00:20:48.57
>>517
> 俺がいつ「引数」っていった?

> 504
> インライン展開でもしてない限り関数呼んだ時点でスタック使ってるから
>
>
> まずはお前らは
>
> void main(){
> int a[1];
> printf("%d \n" , a[1]);
> printf("%d \n" , a[2]);
> printf("%d \n" , a[3]);
> }
>
>
> ここら辺にはいってるデータがなんなのかを知れゴミクズ

「関数を呼んだ時点」と「はいってるデータ」の繋がりが全く分からないんだが…

551 :デフォルトの名無しさん:2012/06/22(金) 00:36:34.36
printfでも、archによっては引数もある程度はレジスタ渡ししてることもある
printfは入り口であって、本体は別の関数だったりするし

552 :デフォルトの名無しさん:2012/06/22(金) 00:50:13.88
>>551
>>508でレジスタ渡しの話をしたら>>517で噛み付いてきたのよ
「引数」の話じゃないって
だから何が言いたいのかな〜っと

553 :デフォルトの名無しさん:2012/06/22(金) 00:54:49.53
時代についていけないのを高飛車に言い放ってごまかそうとしてるのかもしれない?

554 : ◆QZaw55cn4c :2012/06/22(金) 01:12:32.51
>>546
68k命令表をみたところでは、ポストインクリメント/プリデクリメントつきレジスタ間接アドレッシングのmovでデータスタックとしてやっていけそうですね。link/unlk は使用禁止かもしれませんが。
実際どうなんでしょう?

555 :デフォルトの名無しさん:2012/06/22(金) 01:35:30.98
ttp://www.kkaneko.com/kaneko/as/advanced/outline.html
>実は,スタックポインタは2つ存在し,CPUのモードによって自動的に使うべきスタックポインタが切 り替わる.
> CPUがスーパバイザモードの時はスーパーバイザスタックポインタ(SS P)が使用され, CPUがユーザモードの時はユーザスタックポインタ(US P)が使用される.
> 従って,スーパバイザモードでのスタック操作は,USPに影響を与えず, ユーザモードでのスタック操作は,SSPに影響を与えない.

556 :デフォルトの名無しさん:2012/06/22(金) 01:37:28.15
>>554
PalmOSはA6をデータスタックに使っていたよ。
今見たけど、linkも使っているね。

557 :デフォルトの名無しさん:2012/06/22(金) 01:48:05.21
x86のレジスタのbp系の使い方してるだけでしょ

558 : ◆QZaw55cn4c :2012/06/22(金) 02:18:05.30
>>555
コールスタック・データスタックの話とは関係ないでしょう。
>>556
link/unlink を使うと‥‥‥コールスタックにデータを載せているような気が。

559 :デフォルトの名無しさん:2012/06/22(金) 02:20:00.11
>データスタック
フレームポインタのこと?

560 :デフォルトの名無しさん:2012/06/22(金) 02:25:48.19
68kは相対的なコードが吐けるから、データ領域とかのアクセス時にレジスタ経由でやってるだけじゃねえの?
x86の勢いがよかったから、絶対番地アクセスが優位になった?

561 : ◆QZaw55cn4c :2012/06/22(金) 02:44:29.38
>>559
call/ret に使うスタックはそれ以外の用途では使用しないようにして、バッファオーバーランによる乗っ取りが皆無になればずいぶんと安全になるのでは?というお話です。

562 :デフォルトの名無しさん:2012/06/22(金) 03:07:36.89
>バッファオーバーラン
個人的には、未熟者が作ったって証明でしかないように思ってるけど

563 :デフォルトの名無しさん:2012/06/22(金) 08:16:44.38
ご連絡 平成24年6月21日

チケット購入者  各 位


1 「K-POP IN 豊岡・神鍋高原」のイベント中止について

株式会社アンフィニジャパンでは、「K-POP IN 豊岡・神鍋高原」と題するライブイベントを、平成24年6月30日及び同年7月1日に開催することとなっておりました。
  しかしながら、関係各所との行き違い等から、当初予定していたチケット販売計画は大幅な変更を余儀なくされ、チケット販売が低調に推移しました。
その結果、上記イベントを開催するために必要な各プロダクション、各業者への支払資金をねん出することができなくなり、上記イベントについては、中止させて頂くこととなりました。
チケットをご購入された皆様には、深くお詫び申し上げます。
 

2 ご購入いただいたチケット代金について
  イベントの中止に伴い、本来であれば、当然にチケット代金をご返金すべきこととなります。
  しかしながら、株式会社アンフィニジャパンにおいては、現在、見るべき資産がほとんどない状態です。
皆様にご購入いただきましたチケット代金についても、ほぼ全てを韓国プロダクションへの前金の支払及び開催準備費用に費消しており、株式会社アンフィニジャパンにおいてご返金することができなくなっております。
現状、株式会社アンフィニジャパンでは、大幅な債務超過状態にあり、自己破産の申し立てを行わざるを得ない状態です。
  チケットをご購入されました皆様には、大変なご迷惑をお掛けすることとなり、深くお詫び申し上げます。

http://www.infinijapan.jp/


http://ticket.pia.jp/pia/event.do?eventCd=1223924
K−POP IN 豊岡・神鍋高原

KARA、超新星、Rainbow、パク・ヒョンビン…K-POPの人気アーティト達が、
兵庫県豊岡市にある、神鍋高原に大集合!激レア・イベントをお見逃しなく!

【中止?】K-pop in 豊岡・神鍋高原【契約不履行】
http://uni.2ch.net/test/read.cgi/4sama/1340285151/


564 :デフォルトの名無しさん:2012/06/22(金) 10:37:47.33
・配列とポインタの宣言は実質的に区別が付かず、分かりにくい。
・配列とポインタについては現在でもわかりにくいため、私の設計ミスといってよいかもしれない。
http://web.archive.org/web/20081203130450/http://www.ttoyota.com/threedesigners/cjava04.php

565 :はちみつ餃子:2012/06/22(金) 19:08:01.73
>>535
プロテクトモードにセグメントなんて無いよ。

566 : ◆QZaw55cn4c :2012/06/22(金) 19:17:27.36
>>562
月例のWindowsのパッチですら「未チェックバッファ」とかなんとか頻繁に出てくるくらいですから、「未熟者」よばわりという旧日本軍的竹槍ストラテジーではどうしようもないと思います。

567 : ◆QZaw55cn4c :2012/06/22(金) 19:19:32.32
>>565
いや、あります。フラットモデルではセグメント=セレクタを同一にしていると思います。

568 :デフォルトの名無しさん:2012/06/22(金) 19:23:31.58
>>565 てめぇ80286さんをdisってるのかよ?

569 :デフォルトの名無しさん:2012/06/22(金) 19:24:46.33
>>566
有限、無限の違いがわからない人が作ってるだけでしょ

570 : ◆QZaw55cn4c :2012/06/22(金) 19:39:22.57
>>568
LOADALL!

571 : ◆QZaw55cn4c :2012/06/22(金) 19:51:12.56
>>569
個人的な経験からいうのもなんですが、ついうっかりやってしまったりします。アマチュアゆえに回避定石や検出手法を知らないだけだといいのですが。

572 :デフォルトの名無しさん:2012/06/22(金) 20:10:30.50
>>571
窓s系やってるのは初心者ってことかい?

573 : ◆QZaw55cn4c :2012/06/22(金) 20:18:54.40
>>572
ん?よくわからないんですけど。
Windowsのパッチでバッファオーバーラン関連が少なくない、というのは事実を述べたまで。
アマチュアの自分でもやっちまう、というのは個人的感想を述べたまで。

その両者に関連があるとは一言も申しておりませんが、両方に関連があると考えてしまうその思考過程には興味があります。すくなくとも論理学初歩を通過した思考過程ではありますまい。

574 :デフォルトの名無しさん:2012/06/22(金) 20:21:44.41
バッファオーバーラン
で、今だに騒いでるのはどっち方面かよく調べてみようね

575 :デフォルトの名無しさん:2012/06/22(金) 20:35:28.03
馬鹿が論理学を習っても論理的な思考ができるようになるわけじゃないんだな

576 :デフォルトの名無しさん:2012/06/22(金) 20:46:24.56
学習して論理的思考ができるのは最初から馬鹿じゃないよ

577 :デフォルトの名無しさん:2012/06/22(金) 21:08:05.46
文字列処理(文章ファイルから一部を取得)を行ったファイルをChasenを利用して形態素解析を行っています。
具体的には、そのファイルを読み取り、違うファイルに書き出すという内容です。
しかし問題として…

読み取りファイル「AAA/BBB/c.txt」→オープンは正常だがChasenがエラー(存在しません)
読み取りファイルをディレクトリBBBにコピー「AAA/c.txt」→オープン、Chasen共に正常
読み取りファイルをディレクトリBBBにコピーし名前変更「AAA/BBB/d.txt(c.txt)」→オープン、Chasen共に正常

ディレクトリ・ファイルの権限の問題なのか、ファイルの中身の問題なのか色々とプログラムを確認しましたが、解決できません。
指定が間違っている、読み取りファイルが空というのでは無いようです。
いちおディレクトリにも権限を与えています。
考えでも良いので、もしよければ意見お願い致します。



578 :デフォルトの名無しさん:2012/06/22(金) 21:12:18.56
>>577
マルチウゼーという意見

579 :デフォルトの名無しさん:2012/06/22(金) 21:30:58.67
感想文的思考じゃあ、プログラム系はできんでしょ

580 :デフォルトの名無しさん:2012/06/22(金) 23:26:00.15
足したら10になる4次元の組み合わせを1000回作るプログラム。
正し要素はfloat型。

どういうアルゴリズムがいいかな?


3.4323+4.2342+1.323+1.23121=10になればいい

ランダム生成。

581 :デフォルトの名無しさん:2012/06/22(金) 23:28:33.88
>正し要素はfloat型。
?

582 :デフォルトの名無しさん:2012/06/22(金) 23:30:02.21
>>581
小数点型ってことです。
int型じゃない。

3とか2じゃない。

2.1212
4.0
0.232
とか。


583 :デフォルトの名無しさん:2012/06/22(金) 23:30:29.90
>>580
総和が10って以外に特に制約がないなら
3つランダムで決めて4つ目で帳尻合わせればいい

584 :デフォルトの名無しさん:2012/06/22(金) 23:33:54.42
そのアバウトな問題をどう解けと言ってるのかいな?

585 :デフォルトの名無しさん:2012/06/22(金) 23:37:20.69
>>583
あーそれが早いかな。
1時間も頭使って俺馬鹿だ。

586 :デフォルトの名無しさん:2012/06/22(金) 23:44:15.31
そんなアバウトな問題じゃなく、3以上の整数nについて、
x^n + y^n = z^n となる自然数の組み合わせ( x, y, z )を見つけ出すプログラム書こうぜ?^^

587 :デフォルトの名無しさん:2012/06/22(金) 23:44:45.83
あ、ちなみにここでは ^ はべき乗とします・3・ Cは pow 使わないとねー

588 :デフォルトの名無しさん:2012/06/22(金) 23:48:43.94
>>586
n=1,2以外は自然数で無いんじゃないっけ?



589 :デフォルトの名無しさん:2012/06/22(金) 23:49:43.55
>>588
不思議なところにお住まいですね

590 :デフォルトの名無しさん:2012/06/22(金) 23:52:46.86
マジバカなのかコイツ
1000000なりの長さの棒きれをランダムに三か所で割って
あとから1/100000にすりゃあいいだろ……
それを実装して終わりだろが


591 :デフォルトの名無しさん:2012/06/22(金) 23:52:54.64
ところで、イギリスでは自然数というと0を含むらしいな。
あと、前にもこの板で話題になったけど、小数点を表すのに . を使う地域と , を使う地域があるらしいな。
で、小数点に . を使う地域は桁区切りに . を使うので大変ややこしいとかなんとか。

592 :デフォルトの名無しさん:2012/06/22(金) 23:53:51.24
>>589
フェルマーでしょ。
それ。


ところで最近はiphoneのアプリとか多いわけだが、どんなゲームが
流行ってるの?やっぱり形を変えて同じ原理のゲームが流行ってるわけ?
Cでパズルゲーム作りたいから教えて。


593 :デフォルトの名無しさん:2012/06/23(土) 00:00:27.63
無限個の答え探し?

594 :デフォルトの名無しさん:2012/06/23(土) 00:01:41.82
高校3年以上の女性nについて、
味^n + 香り^n = 舌触り^n となるブルマの組み合わせは存在しない

595 :デフォルトの名無しさん:2012/06/23(土) 00:03:05.72
>>594
オチは?

596 :デフォルトの名無しさん:2012/06/23(土) 00:06:06.14
ゴミ箱にゴミを投げ入れる糞ゲーでも作ってろ

597 :デフォルトの名無しさん:2012/06/23(土) 00:12:08.84
>>589>>591
どうでもいいが、>>588は「自然数では、n=1,2以外の解は存在しない」という意図だと
読み取れないようだとまずいだろ。
多少わかりにくいとしても、「1,2以外は自然数ではない」がおかしいのはわざわざ指摘するまでもなく
「そんなふうに思っている人がいるのかも」という考え自体も非常識。

598 :デフォルトの名無しさん:2012/06/23(土) 00:21:55.72

    ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
    {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;;      Standard Input/Output …
    ヾ;;;ハ    ノ       .::!lリ;;r゙
     `Z;i   〈.,_..,.      ノ;;;;;;;;>  そんな事も知らない時期が
     ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f              俺にもありました。
     ~''戈ヽ   `二´    r'´:::. `!




599 : ◆QZaw55cn4c :2012/06/23(土) 00:25:27.79
>>586
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A7%E3%83%AB%E3%83%9E%E3%83%BC%E3%81%AE%E6%9C%80%E7%B5%82%E5%AE%9A%E7%90%86

600 :デフォルトの名無しさん:2012/06/23(土) 00:28:38.67
>>586
32bit の unsigned long でそれを満たす数値を探すってのなら成立しそう
ラップアラウンドのおかげで

601 :デフォルトの名無しさん:2012/06/23(土) 00:28:55.98
>>597
マジレスワロタwww


ガチで、iphoneとかで皆パチパチゲームやってるけど、どんなのやってんだ?
ミニゲームでも作りたい。


602 :デフォルトの名無しさん:2012/06/23(土) 00:33:50.13
でもフェルマーって何の意味があるんだろうな。

x^n+y^n+z^n=w^nとか

x^n+3^y^n=z^n

とか類似系いくらでもあるじゃん。
何が楽しくてこんなもん解くんだろうな。


603 :デフォルトの名無しさん:2012/06/23(土) 00:41:49.86
今まで誰もわからなかった問題を解いた俺様すごいだろっていう気持ちはなかなか楽しいんじゃね

604 :デフォルトの名無しさん:2012/06/23(土) 00:47:07.88
フェルマーの最終定理って、nは自然数っていう条件で
x,y,zが有理数の場合、nは3以上存在するようなx,y,zは存在するの?


1.323^3+1.1234^3=2.323^3みたいな。適当だけど。

有理数まで広げたらスパコンでも解析無理そうだね。




605 :デフォルトの名無しさん:2012/06/23(土) 00:49:23.03
>>604
正の有理なら整数倍すれば整数になるんじゃあるまいか

606 :デフォルトの名無しさん:2012/06/23(土) 00:49:40.26
そこから小数点省いてみろよ


607 :デフォルトの名無しさん:2012/06/23(土) 00:51:46.81
>>602
例えばガウスも「一見解けない問題なんていくらでも作れる」と
証明を試みる意義をあまり認めていない発言をしていたはず

とはいえフェルマーの最終定理の場合はかなり微妙なバランスの上にあるようで
類似のオイラー予想(x^4 + y^4 + z^4 = w^4を満たす自然数xyzwは存在しない)は
否定的に解決されている

まあ板に身近な所でいくと、4色問題がグラフの塗り分け問題に発展して、
コンパイラのレジスタ割り付けに応用されたり
未解決問題は研究発展の原動力になるという側面はあるんだろう

608 :デフォルトの名無しさん:2012/06/23(土) 02:49:34.35
char* a, b;と
char *a, *b;は同じ意味ですか?

609 :デフォルトの名無しさん:2012/06/23(土) 02:52:23.39
わからないなら
char *a;
char *b;
と書くこと覚えませう

610 :デフォルトの名無しさん:2012/06/23(土) 03:17:03.73
/* >>608 */
#include <stdio.h>
int main(void) {
  char* a, b;
  char *c, *d;
  int i;

  i = sizeof a;
  printf("%d\n", i);

  i = sizeof b;
  printf("%d\n", i); /* bは、char */

  i = sizeof c;
  printf("%d\n", i);

  i = sizeof d;
  printf("%d\n", i);
  return 0;
}
/*
D:\work>sizeofp
4
1
4
4

*/

611 :uy:2012/06/23(土) 03:51:17.21
>>531-n
なんだ、

お前もただのヴァカか


そもそもC言語って幅広く使われて
コンパイラも実行環境も腐るほどあるわけで

どこの環境を前提に話してんだお前

Windows限定の話ならさっさと死ねよお前


ローカル変数でスタック1MBくらい常に使ってろよwwwwwwバーーカwwwwwwwwwww

実行速度がかわらねーとかなんとか、どこで拾ってた知識だからしらねえけど・・・ベンチマーク取れよカス
何もしねーのなwwwwwwwwwwww

根本的にはずれた事言っちゃう時点でマジでお前知ったかだ、死んだほうが良い

お前のゴミカスレスなんて信用ならないんだから、ちゃんとソースだせソース、実行結果と環境と全てを示せゴミが

612 :uy:2012/06/23(土) 03:57:26.61
死なねば直らんか

こんな場所でグダグダ知ったかレス続けてるくらいなら勉強しろ
お前は俺の高校生の時点でのレベルさえ超えていない
何年やっても何十年やっても絶対に超えられない

見えないものに対しての予想、憶測と、確信の違い

お前の予想なんてだれもきいてねえから俺みたいに確信のあるレスをしたいならあと10年は勉強してろ
大体さぁC言語を語るならアセンブラとOSレベルまで詳しくなれよゴミカスが
OSすら作った事のない奴が機械語レベルでまともな議論できるはずが無いwww

ぷろせすの仕組み(笑) かーねる(笑) とかwwwwwww
教科書に書かれてる知識だけで実際のコードを知らないから
何にもわかっていない

目障りだ 知ったかはさっさと死ね


613 :デフォルトの名無しさん:2012/06/23(土) 03:59:09.10
ひどいブーメランを見た

614 :デフォルトの名無しさん:2012/06/23(土) 04:17:04.72
完全に間違ってることに確信もたれてもw

615 :デフォルトの名無しさん:2012/06/23(土) 04:17:05.02
611 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん

612 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん

616 :デフォルトの名無しさん:2012/06/23(土) 04:25:36.56
>>564
訴訟社会のアメリカで『私の設計ミスといってよいかもしれない』か。

617 :uy:2012/06/23(土) 06:16:46.54
ゴミカスはやはり処刑するしかない

今の時代にC言語を使っている層

そりゃな、大体わかるが

618 :デフォルトの名無しさん:2012/06/23(土) 07:22:35.07
朝鮮半島海域の貝類からプルトニウム

検出された放射能物質プルトニウムの濃縮係数は、国際原子力機構(IAEA)が
定める勧告値より最大2.11倍高かった。複数の韓国メディアが伝えた。

  濃縮係数は、海水中の放射性物質が、貝や海藻など生物に取り込まれ蓄積された
濃度を示す。貝類から検出されたプルトニウム濃縮係数の平均値は2813で、
IAEAの勧告値<3000>を下回ったが、江陵近海で採取した貝は6341に達した。

海草類からは放射性物質ストロンチウム90が検出された。濃縮係数の平均値は14でIAEAの
勧告値<10>よりも高く、江陵近海のわかめは17、仁川近海のわかめは10だった。
2005―09年の平均値も15で勧告値を超えていた。
朝鮮半島の周辺海域20カ所で採取した表層海水からは、プルトニウム239・240が検出され、
平均濃度は1キログラムあたり2.91―6.82マイクロベクレルだった。


韓国ソウルの道路は毎時3マイクロシーベルト 福 島 緊 急 避 難 区 域 よ り 上
http://blog-imgs-49-origin.fc2.com/f/x/y/fxya/wwwdotuporg2243941.jpg

韓国の量販店の食器から毎時23マイクロシーベルト
http://keyframe.imnews.imbc.com/today/2012/01/17/2/Large_3425047.jpg

K-POPでチケット詐欺発生か? 突如ライブ中止&代金返還不可 (´・ω・`)
http://long.2chan.tv/jlab-long/10/s/long289597.jpg


韓国食品の危険性 ネット販売のキムチから幼虫とカエル
http://www.nicovideo.jp/watch/sm16732021
不衛生すぎる韓国のキムチ工場 冷蔵庫にはウジ虫・・
http://www.nicovideo.jp/watch/sm16731897
韓国産キムチの日本向け輸出衛生検査が免除<`∀´>
http://www.nicovideo.jp/watch/sm14634923

619 : ◆QZaw55cn4c :2012/06/23(土) 07:47:35.97
これがruby脳ってやつか。

620 :Perl忍者 ◆M5ZWRnXOj6 :2012/06/23(土) 08:56:06.26
いきてたのかこいつ ◆QZaw55cn4c [

621 :uy:2012/06/23(土) 09:34:33.80
真性のクズ

622 :デフォルトの名無しさん:2012/06/23(土) 09:43:51.70
ninjaVSQZというあまりにもどうでもいい展開に唖然……


623 :SCHEME餃子 ◆8X2XSCHEME :2012/06/23(土) 11:19:13.57
>>602
それ自体は (今のところは) それほど応用が見出されてないみたいだが、
証明の過程で様々な発見は有った。
どれがどんな役に立つか事前に完璧にわかるわけでもないので、
意味が有るとか無いとかは解いた後じゃないとわからないし、
後々に有用性が発見される場合もある。
ブール代数が考案された時に現代のようなコンピュータは想像もできなかったと思うぞ。

究極的には意味なんてないだろ。
そんなこと言ったらお前って何の意味があるんだろうな?
似たような人生を歩む人はいくらでもいるじゃん?
何が楽しくて生きてるんだろうな。

624 :デフォルトの名無しさん:2012/06/23(土) 11:32:04.13
などと意味不明な供述を繰り返しており

625 :デフォルトの名無しさん:2012/06/23(土) 13:40:59.35
uyとか言う糞コテさんへ質問です。
ローカル変数を沢山使うとpush命令が沢山使われて遅くなるのは本当ですか?

626 :デフォルトの名無しさん:2012/06/23(土) 14:09:15.04
#include <stdio.h>

int main(void)
{
int i, j;
char word[99];

scanf("%s", &word);

for (i=0;i<=98;i++){
if (word[i]==',')
j=i;
}
printf("%s,", word[j+1]);

for (i=0;i<=98;i++){
if (word[i]==',')
word[i]='\0';
}
printf("%s\n", word);
return 0;
}

カンマの前後を入れ替えて表示したいんですが、エラーになってしまいます。

627 :デフォルトの名無しさん:2012/06/23(土) 14:11:40.73
scanf("%s", word);

628 :デフォルトの名無しさん:2012/06/23(土) 14:15:57.52
>printf("%s,", word[j+1]);

629 :デフォルトの名無しさん:2012/06/23(土) 14:42:28.88
>>627
>>628
できました。ありがとうございます。

630 :uy:2012/06/23(土) 14:49:42.54
この程度もできないゴミカス

631 :デフォルトの名無しさん:2012/06/23(土) 15:21:55.83
質問にすら答えられない糞コテ

632 :vy:2012/06/23(土) 15:23:59.69
膣内に出すぞゴルァ

633 :デフォルトの名無しさん:2012/06/23(土) 15:25:11.06
>>610
いまさら32ビットwwwwwwwwww
4バイトwwwwwwwwww


634 :デフォルトの名無しさん:2012/06/23(土) 15:31:07.48
x32かも

635 :デフォルトの名無しさん:2012/06/23(土) 15:31:47.45
>>564
staticに文句言う奴は読み方が間違ってるんだよ。


636 :デフォルトの名無しさん:2012/06/23(土) 15:43:58.22
const int a
int const b
の違いを教えてください。

637 :デフォルトの名無しさん:2012/06/23(土) 16:15:02.14
うんこ

638 :デフォルトの名無しさん:2012/06/23(土) 16:55:40.67
見た目の印象が違います

639 :デフォルトの名無しさん:2012/06/23(土) 17:04:37.34
>>564
このURLのページ、
> Cといえばポインタと現在でも騒がれていますが、設計者本人も"変なもの"と考えているわけです
出鱈目だな。ポインタと配列の扱い方に歪みがあったと言ってるだけ。

640 :デフォルトの名無しさん:2012/06/23(土) 17:10:17.98
/* >>636 ちがいは、ないらしい */
#include <stdio.h>
void put_const_int(const int i)
{
  putchar(i);
}

void put_int_const(int const i)
{
  putchar(i);
}

int main(void)
{
  const int a = 97;
  int const b = a;

  put_const_int(a);
  put_const_int(b);
  put_int_const(a);
  put_int_const(b);
  return 0;
}
/*
D:\work>gcc -Wall -o int_const int_const.c

D:\work>int_const
aaaa
D:\work>
*/

641 :デフォルトの名無しさん:2012/06/23(土) 19:55:23.54
メモリリークの解消ってどうやるんですか?

642 :デフォルトの名無しさん:2012/06/23(土) 19:58:22.91
COBOLでも使ってろ

643 :デフォルトの名無しさん:2012/06/23(土) 20:01:48.01
Boehm GC使ってろ

644 :デフォルトの名無しさん:2012/06/23(土) 20:08:44.65
実体がスコープを2つ以上またいだら設計失敗くらいの覚悟で書けばOK

645 : ◆QZaw55cn4c :2012/06/23(土) 20:32:18.22
>>611
>そもそもC言語って幅広く使われてコンパイラも実行環境も腐るほどあるわけで
いわれなくても。

>どこの環境を前提に話してんだお前Windows限定の話ならさっさと死ねよお前
どんなCでもローカル変数の量で速度が変わるなんてきいたことない。
アセンブラを知らないruby脳はこれだから困る。

>実行速度がかわらねーとかなんとか、どこで拾ってた知識だからしらねえけど・・・ベンチマーク取れよカス何もしねーのなwwwwwwwwwwww
ベンチとるまでもないこと。これだからruby脳は困る。

>お前のゴミカスレスなんて信用ならないんだから、ちゃんとソースだせソース、実行結果と環境と全てを示せゴミが
http://toro.2ch.net/test/read.cgi/tech/1313183984/

646 : ◆QZaw55cn4c :2012/06/23(土) 20:34:01.28
>>612
>大体さぁC言語を語るならアセンブラとOSレベルまで詳しくなれよゴミカスが
それはお前だ。さあ、Cのソースを貼ってごらん?できるかな?できないだろうが。
アセンブラのソースでもいいよ。

647 : ◆QZaw55cn4c :2012/06/23(土) 20:37:05.63
>>623
しかし残念なことには、フェルマーの最終定理ほど私のような素人にも内容の理解が容易でかつ証明困難、という魅惑的な未証明命題がなくなってしまったことだ。
なにかフェルマーの地位に到達できるほどの未証明定理はないものだろうか?

コラッツの予想?いまいちですなあ。

648 : ◆QZaw55cn4c :2012/06/23(土) 20:40:11.05
>>641
自前のランタイムを使っていたこともありましたが、今はエンバカなんとかの評価版 bcc32 -v -vG を便利につかわせてもらっています。別にソニータイマーは組み込まれていないようです。

649 :デフォルトの名無しさん:2012/06/23(土) 21:41:17.92
素晴らしいね

650 :デフォルトの名無しさん:2012/06/23(土) 21:44:09.63
>>641
メモリリーク
がどういうものか考えることからはじめせう

651 :デフォルトの名無しさん:2012/06/23(土) 21:46:06.24
アサンジと関係あるわけ?

652 :デフォルトの名無しさん:2012/06/23(土) 21:47:58.09
そのネタわかる奴いるのかな?

653 :デフォルトの名無しさん:2012/06/23(土) 22:14:19.78
>>641
今時はツールだろ

654 :デフォルトの名無しさん:2012/06/24(日) 01:47:44.86
>>653
互換性あるツールじゃないと

655 :デフォルトの名無しさん:2012/06/24(日) 01:56:16.78
何と?

656 :デフォルトの名無しさん:2012/06/24(日) 01:59:34.18
>>655
スペック

657 :デフォルトの名無しさん:2012/06/24(日) 02:05:28.64
ツールによっちゃ動かないPCもあるってことでしょ。

658 :デフォルトの名無しさん:2012/06/24(日) 03:31:13.36
自然数nの階乗を求めるプログラムを教えて下さい。

659 :デフォルトの名無しさん:2012/06/24(日) 03:53:10.30
>>658
http://ideone.com/Mon3v

660 :デフォルトの名無しさん:2012/06/24(日) 06:16:38.29
>>659
ありがとうございました。

661 :デフォルトの名無しさん:2012/06/24(日) 07:26:59.43
いえいえ

662 :デフォルトの名無しさん:2012/06/24(日) 09:12:34.37
くとぅるー

663 :デフォルトの名無しさん:2012/06/24(日) 09:36:15.49
【K-POP】購入代金は既に韓国に送金されたことが判明【破産中止】
http://engawa.2ch.net/test/read.cgi/poverty/1340431520/

K-POP終了 「チケット12000枚完売」 → 実は450枚だった
http://engawa.2ch.net/test/read.cgi/poverty/1340496276/

↓チケット購入者の様子
http://long.2chan.tv/jlab-long/10/s/long289597.jpg


K-POPブームついに終焉? チケット売れずイベント中止、返金もできず

兵庫県内で開催予定だったK-POPイベントが、チケット売れ行きが低調で直前になって中止になった。
イベントを主催した会社は事実上倒産し、チケットの払い戻しも出来ないという有様で、
チケット購入者からは怒りの声が出ている。

同社担当弁護士によると、当初1万2000枚ほどの販売を見込んでいた代理店との契約がなくなってしまい、
他でまかなおうとしていたが、それも間に合わず中止になった。
いろいろ事情はあるにせよ、「飛ぶようには売れなかった」ということは確かなようだ。
帝国データバンクによると、同社が直接販売したチケットは450枚。

「『あのKARA』や『あの超新星』が来るのに何で販売低調なんだ」

ネットでは、チケット購入者からは「許せない。責任もって返金してもらわないと」と怒りの声が出ている。
疑問なのが、K-POPがブームの中、KARAや超新星といった大人気グループを呼んでも
なぜチケットを捌けなかったのか、という点だ。

2012/6/22 19:01
http://www.j-cast.com/2012/06/22136771.html?p=2

664 :uy:2012/06/24(日) 09:40:08.18
はっ

665 :デフォルトの名無しさん:2012/06/24(日) 11:17:19.42
共用体っていつ使うんですか?あまり役に立たない機能だと思うんですが。

666 :デフォルトの名無しさん:2012/06/24(日) 11:18:32.64
>>665
役に立たないプログラマを見分けるためのデータ構造だよ
採用では良く使われるよ


667 :デフォルトの名無しさん:2012/06/24(日) 11:22:53.93
ビットマップのファイルフォーマットとか数種類あるじゃない
あれを構造体で定義するときに共用体使って定義しといたら
アクセスが容易になるじゃない

668 :デフォルトの名無しさん:2012/06/24(日) 11:26:42.59
>>665
socket通信とかプロトコルスタックに使われている。プロユースだな。
http://itpro.nikkeibp.co.jp/article/COLUMN/20071024/285445/

669 :デフォルトの名無しさん:2012/06/24(日) 11:26:42.53
昔々のstructの使い勝手を残そうとした残留物だからね

670 :デフォルトの名無しさん:2012/06/24(日) 11:31:40.72
>>665
つっ マイコンチップレジスターの定義


671 :デフォルトの名無しさん:2012/06/24(日) 11:45:59.99
>>670
それだと実装依存の使い方になるよね。
structやunionはbyte/bit配置の保証ないから。
ほとんどのコンパイラがpragmaかオプションで指示可能だけど。

672 :デフォルトの名無しさん:2012/06/24(日) 12:33:32.10
コボルの集団項目とかredefineとかと同じか

673 :デフォルトの名無しさん:2012/06/24(日) 12:34:41.35
文字列処理で 改行 が出てきたら〜 という条件分岐をしたいのですが
どのように指定すればいいのでしょうか?

スペースがでてきたら〜 は
if(data[i] == ' '){

}

のようにやっています

674 :デフォルトの名無しさん:2012/06/24(日) 12:40:32.99
if(data[i] == '¥n'){

}

675 :uy:2012/06/24(日) 12:41:08.24
>>645
>どんなCでもローカル変数の量で速度が変わるなんてきいたことない。
お前が無知なんだよ
当たり前のことが、わかっていない

>ベンチとるまでもないこと。これだからruby脳は困る。
そしてやったら自分の間違いに気づいてしまうから怖くて出来ないだけ
おいためしにローカル変数1000000TB分宣言して最適化オプションはずしてみろwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww



 さ っ さ と や れ
 さ っ さ と や れ
 さ っ さ と や れ


676 :デフォルトの名無しさん:2012/06/24(日) 12:41:34.12
そして以下
キャリッジリターンと
ラインフィード、
およびOSウんぬんの話


677 :デフォルトの名無しさん:2012/06/24(日) 12:45:12.86
>>674
半角の \n ですよね? それでやりましたができませんでした

678 :uy:2012/06/24(日) 12:46:34.88
そもそもローカル変数の宣言によってスタックを消費し、
ローカル変数を宣言しすぎればスタックオーバーフローするという事がわかってないんじゃないか

一体ここで「どういうチェック」が行われているか
いってしまえばスタックオーバーフローなんてのはOSの設計ミスであって、
スタックサイズなんて伸縮させれば良い
これだからOSすら作ったことないゴミは教科書に書かれてる知識以外が全然ないから
アドリブ聞かせようとすると的外れなこと言いはじめるんだよ

「C言語」の実行コードの時点では速度は変わらないとしてもw
コンピュータっていうのはCPU(レジスタ)とOSとメモリを使うんだからお前も頭使えよバカ

679 :デフォルトの名無しさん:2012/06/24(日) 12:46:57.44
typedef を使わずに、関数の型をキャストすることはできますか?

680 :デフォルトの名無しさん:2012/06/24(日) 12:51:53.87
>>677
たりめーだ
strcmpつかえハゲ

681 :デフォルトの名無しさん:2012/06/24(日) 13:09:01.99
ふう

682 :uy:2012/06/24(日) 13:12:47.18
a="aaaa
bbb
ccc"

p a.split

# ["aaaa", "bbb", "ccc"]





683 :デフォルトの名無しさん:2012/06/24(日) 13:23:47.07
>>679
できる。(関数の型)式

684 :デフォルトの名無しさん:2012/06/24(日) 14:22:15.21
>>678
おまえが優秀なのはよくわかったよ
すこしはてかげんしてください

685 :デフォルトの名無しさん:2012/06/24(日) 15:51:54.29
>>682
はいはい、よくできまちたねー、えらいえらい

686 :デフォルトの名無しさん:2012/06/24(日) 16:52:18.45
>>684
どこが優秀なのか詳しく
自演か?

687 :デフォルトの名無しさん:2012/06/24(日) 17:42:01.79
馬鹿を煽ててお引取り願おうとしてるのに、台無しだろw

688 :デフォルトの名無しさん:2012/06/24(日) 17:54:39.31
>>682
aaaaaaaaaaaaaaaaaaaaaaaaaaaa

689 :uy:2012/06/24(日) 18:23:00.20
俺はゴミカスだがエリートゴミカスだ
お前らのような下級ゴミカスとは格が違う
話しかけるなよクズ

690 :uy:2012/06/24(日) 18:30:56.77
ゴミ

691 :デフォルトの名無しさん:2012/06/24(日) 18:33:14.61
エリートゴミカスってゴミカス中のゴミカス、まさに真のゴミカスってことかw

692 :uy:2012/06/24(日) 18:37:36.44
俺に言及するなど100光年早い

693 :デフォルトの名無しさん:2012/06/24(日) 18:44:03.87
100光年とかえらい近いな

694 :デフォルトの名無しさん:2012/06/24(日) 19:16:57.04
線形リストの考え方を教えてもらいたいです。

695 :デフォルトの名無しさん:2012/06/24(日) 19:18:27.63
宿題スレに共用体きたぞ

696 :uy:2012/06/24(日) 20:51:27.03
>>694


人は↓で出来ている 木構造
   .    o
    ┌─┴─┐
     o     o
   ┌┴┐  ┌┴┐
   .o  .o  o   o
 ┌┴┐
 o   o

世界は↓で出来ている グラフ構造

    o → o ← o
    ↑ ↓  ↑
    o ← o → o
    ↓ ,↓  ↑
    o → o → o

 ↑の2個を実装できない初心者(笑)が作るもの ↓ 線形リスト
  o → o → o → o → o → o o → o → o → o → o → o → o → o → o → o → o
  o ← o ← o ← o ← o ← o o ← o ← o ← o ← o ← o ← o ← o ← o ← o ← o

これで理解できなければプログラミングを引退しとけよ初心者はしね

697 :デフォルトの名無しさん:2012/06/24(日) 20:53:58.68
>>696
スレチ

698 :デフォルトの名無しさん:2012/06/24(日) 20:55:45.58
>>694
次のロッカーの住所と適当なデータが入ったロッカーが連続している。次のロッカーがなければ住所はNULL。

699 :デフォルトの名無しさん:2012/06/24(日) 20:57:32.96
誤)連続している
正)点在している


700 : ◆QZaw55cn4c :2012/06/24(日) 20:58:06.18
>>675

>>645
>どんなCでもローカル変数の量で速度が変わるなんてきいたことない。
>>675
>当たり前のことが、わかっていない

当たり前というのであれば、次のCコードと、それから吐かれた .s で説明してくれないか?
http://codepad.org/gVm1Y9Ps
http://codepad.org/dwKs5LBd

ローカル変数の定義数にしたがって変化するのは次の行
subl $212, %esp
の $212 の大きさだけ。この計算がオペランドの定数の大きさによって、速くなったり遅くなったりするとでもいうのか?

>>678
>そもそもローカル変数の宣言によってスタックを消費し、
>ローカル変数を宣言しすぎればスタックオーバーフローするという事がわかってないんじゃないか

速さの話から す り か え ま し た か?

>スタックサイズなんて伸縮させれば良い
i386 ならフラットなメモリ構造を捨てセグメンテーションを採用しないかぎり、それはできない。
論理アドレスがぶつかれば、そこでスタックオーバーフローだ。
そして i386 でセグメンテーションを積極的に採用した OS はないはずだ。

もっとも論理アドレス空間が 64bit になった現在、そんな心配は無用ともいえる。

701 :デフォルトの名無しさん:2012/06/24(日) 21:00:19.82
脳内話で喧嘩でもしてるのかい?

702 :uy:2012/06/24(日) 21:08:45.90
言語の事情だけではなく
他の要因でも遅くなるケースはあるといっているのにまだわかってないか
http://toro.2ch.net/test/read.cgi/tech/1337067149/674-675


>そして i386 でセグメンテーションを積極的に採用した OS はないはずだ。
え、もしあったらどうする?
泣いて謝る?
これからの将来スタック伸縮可能なOSが出てきたら泣いて謝ってくれますか?

703 :uy:2012/06/24(日) 21:11:43.82
どんだけ何をやっても「0%」にはならない箇所っていうのは知っとけよgomikasu

704 :デフォルトの名無しさん:2012/06/24(日) 21:16:43.57
>>689
Hi, KS.
How was the last weekend?

705 : ◆QZaw55cn4c :2012/06/24(日) 21:40:51.08
>>702

そもそも
>>506
>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
>それだけpush命令行われてるのにバカじゃねえの??????

とローカル変数を push で確保すると思っていた(爆笑)ようですが、それが論破されるといろいろ極端な例を後付けして凌いだつもりになっているのですね。
そろそろ、普通に使う範囲での妥当なサイズのソース
>>700
http://codepad.org/gVm1Y9Ps
http://codepad.org/dwKs5LBd
で説明していただけませんかね。ruby 脳ではやっぱり無理でしょうかね?

>>700
>そして i386 でセグメンテーションを積極的に採用した OS はないはずだ。
>>702
>え、もしあったらどうする?
使ってみたいですねえ。セグメンテーション利用リミット値できっちり保護されていて、コールゲートも使用していて、というのはプロユースではあるのかもしれません。

>これからの将来スタック伸縮可能なOSが出てきたら泣いて謝ってくれますか?
将来の話にすりかえるのですか?ということは現在はない、と認めているのですね。負けそうになると(というか負けているんけど)、話のすり替えばかりするのですね。

706 :uy:2012/06/24(日) 21:49:55.73
ヒント:
ローカル変数のサイズ合計 > CPUキャッシュサイズ

707 :デフォルトの名無しさん:2012/06/24(日) 21:51:54.42
>>706
ヒント
馬鹿 |||||||||

708 :uy:2012/06/24(日) 21:57:34.13
はぁ、また初心者を論破してしまったか
悪い癖だわ

709 :デフォルトの名無しさん:2012/06/24(日) 22:01:37.30
>>708
> はぁ、また初心者を論破してしまったか
pppppppppppppppppppppppppppppppppppppppppppppppp

710 : ◆QZaw55cn4c :2012/06/24(日) 22:02:17.63
>>706
そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは滑稽なんですが。

それはそうと、
>>506
>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
>それだけpush命令行われてるのにバカじゃねえの??????

とローカル変数を push で確保すると思っていた(爆笑)ようですが、それが論破されるといろいろ極端な例を後付けして凌いだつもりになっているのですね。
そろそろ、普通に使う範囲での妥当なサイズのソース
>>700
http://codepad.org/gVm1Y9Ps
http://codepad.org/dwKs5LBd
で説明していただけませんかね。ruby 脳ではやっぱり無理でしょうかね?


711 :デフォルトの名無しさん:2012/06/24(日) 22:10:18.43
まともに釣りもできんのか

712 :uy:2012/06/24(日) 22:14:12.34
まあ俺はゴミカスだがエリートゴミカスだ
お前らのような下級ゴミカスとは格が違う
俺に勝つなど100光年早い

713 :デフォルトの名無しさん:2012/06/24(日) 22:14:14.34
だからフラットメモリモデルはDS=SSでセグメントの大きさが4GBになってるだけだっつーのに
フラットメモリモデルもセグメントモデルの一種

uyが言いたいのはスタックセグメントを分離しようって事だろ?そういうOSも実際にある

http://homepage3.nifty.com/ryuz/c/memorymodel.html

714 :uy:2012/06/24(日) 22:15:46.01
>そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
>どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは滑稽なんですが。
あ、ついに遅くなるって認めちゃった?


>そろそろ、普通に使う範囲での妥当なサイズのソース
いきなり範囲指定wwww


まだpush,pushいってるけどさ
push命令を他の高速なcpu命令で代用するようにCコンパイラが最適化していたとか
ある意味「遅くなるか」「全く遅くならないか」という議論においてはどうでもいい
「速くなった」というだけで、演算速度が0クロックになったわけではない

まさか二進数の計算が、桁が1桁で、たとえも999999999^9999999桁でも実行速度が変わりませんとか、そこまで逝ってるのか?

715 :uy:2012/06/24(日) 22:17:52.70
>、桁が1桁で、たとえも
桁が1桁でも、 たとえ999999999^9999999桁でも



716 :uy:2012/06/24(日) 22:37:08.67
ローカル変数のサイズ合計 > CPUキャッシュサイズ
で、決着ついてる

初心者にも良くわかりそうなキャッシュについての説明
http://myoga.web.fc2.com/prog/cpp/opti02.htm

まぁおれも詳細は今知ったんだけどね
詳細知らずとも遅くなる箇所と、遅くならない箇所くらいは分かるレベルなわけで
ローカル変数を大量に定義したら遅くなるって事です

そのサイトのここ重要
>スタック溢れにならなくても、スタックに巨大なデータを置くと、 スタック自体でキャッシュミスが起こったりして遅くなります。

717 : ◆QZaw55cn4c :2012/06/24(日) 22:37:40.32
>>714
>あ、ついに遅くなるって認めちゃった?

普通の領域でも遅くなるのにスタックだけが遅くならない理由があるとでも?普通の領域で起こる事象を「スタックで起こる事象だ」と主張するのは滑稽ですね。

>いきなり範囲指定wwww

だって、最初の主張 >>506 では、

>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
>それだけpush命令行われてるのにバカじゃねえの??????

なんでしょ。比較的小さな範囲でも発生するんじゃないですか?>>506 が正しければ。

>まだpush,pushいってるけどさ
>ush命令を他の高速なcpu命令で代用するようにCコンパイラが最適化していたとか
>ある意味「遅くなるか」「全く遅くならないか」という議論においてはどうでもいい
>「速くなった」というだけで、演算速度が0クロックになったわけではない

あのね。 >>506 ではローカル変数を沢山使うとスピードが遅くなる、つまりローカル変数の量によってスピードがかわると主張しているのでしょう?
だったら比較すればいいじゃない、ローカル変数1個のときと100個のときとで。そういう問題じゃないのでしょうか。
アセンブリソースをみればそういうわけではないことが自明なんですけれどもね。

でそれと、「演算速度が 0クロックにならない」とどんな関係があるのでしょうか?どういう主張を補強したいのか意味不明ですね。
論破されるといろいろ極端な例を後付けして凌いだつもりになっているのですね。

718 :uy:2012/06/24(日) 22:39:41.42
>>716

719 : ◆QZaw55cn4c :2012/06/24(日) 22:40:56.91
>>713
>そういうOSも実際にある
ぜひ。大概のOSは DS=SS みたいなんです。紹介のページでも Windows はフラットモデル、といっているし。

720 : ◆QZaw55cn4c :2012/06/24(日) 22:42:17.78
>>716
>>710
そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは滑稽なんですが。

721 :uy:2012/06/24(日) 22:43:31.67
>>720
いくら負けを認めたくないからって
負けを認めないためにキャッシュの勉強をあえてせずに盲目になるか

終わりだな


722 :デフォルトの名無しさん:2012/06/24(日) 22:44:11.73
どんなメモリでも起きるならやっぱりローカル変数でも起きるんだなぁ。

723 :デフォルトの名無しさん:2012/06/24(日) 22:44:20.83
知識が間違っててうけるわー

724 :デフォルトの名無しさん:2012/06/24(日) 22:46:20.77
滑稽みたいな主観丸出し語句使っても何の反論にもなってないわ

725 :デフォルトの名無しさん:2012/06/24(日) 22:48:33.45
面白すぎて毎日見にきてしまうじゃないか

>それだけpush命令行われてるのにバカじゃねえの??????

uyさんはとっととこれについて解説してくれよ
wktkして待ってるんだから
気になって眠れないよ

726 :デフォルトの名無しさん:2012/06/24(日) 22:48:37.76
その脳内キャッシュの動作はどこで習ったの?

727 : ◆QZaw55cn4c :2012/06/24(日) 22:49:48.75
>>721
>>710
そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは滑稽なんですが。

728 : ◆QZaw55cn4c :2012/06/24(日) 22:53:03.90
>>724
では非論理的で説得力に欠ける、とでも言い換えておきましょうか。

>>716,721
そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは非論理的であり説得力皆無なんですけれども。


729 : ◆QZaw55cn4c :2012/06/24(日) 22:54:23.41
>>725
つきあっているんだからモリタポくれ

730 :デフォルトの名無しさん:2012/06/24(日) 22:59:17.66
説得力みたいな主観丸出し語句使っても何の反論にもなってないわ

731 :uy:2012/06/24(日) 23:02:27.30
俺はお前が思ってるよりもマジでレベルは高いから
二度とかみつかない事を薦める

http://myoga.web.fc2.com/prog/cpp/opti02.htm
キャッシュの動作の第2項
キャッシュ内容の更新 を読め

>キャッシュの更新で何をするのかというと、 今回触ったアドレス X のデータとその周辺のデータのコピーを L1 に作成するのです。
>周辺のデータというのは、大体数十バイトから百バイト程度のブロックになります。
>周辺のデータもまとめてコピーするのは、先程説明した「局所性」に拠って、 アドレス X に触った時には
>その周辺のアドレスのデータに触る確率も高いと期待されるからです。

そのサイトのここも重要
>スタック溢れにならなくても、スタックに巨大なデータを置くと、 スタック自体でキャッシュミスが起こったりして遅くなります。


つまり、無駄なでかいローカル変数があったらキャッシュミスが起こって遅くなるのです
つまり、ローカル変数を沢山定義すると遅くなるのです

ワカッタカナー

732 : ◆QZaw55cn4c :2012/06/24(日) 23:03:13.47
>>730
そうですか。ではこういうときは、どういう言葉がいいんでしょうね。難しいですね。

733 : ◆QZaw55cn4c :2012/06/24(日) 23:04:21.11
>>731
そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは非論理的で筋が通らないんですけれども。


734 :デフォルトの名無しさん:2012/06/24(日) 23:05:13.50
どんなメモリでも起こる → ローカル変数でも起こる


735 :デフォルトの名無しさん:2012/06/24(日) 23:07:42.20
>それだけpush命令行われてるのにバカじゃねえの??????

これについて解説してくれよ早く

736 :片山博文MZボット ◆0lBZNi.Q7evd :2012/06/24(日) 23:08:10.50
定義しただけでは遅くならねーよ、ばーか。論理飛躍だ。

737 :デフォルトの名無しさん:2012/06/24(日) 23:09:56.87
「使う=定義」だったのか

へぇ知らんかった
俺の国語辞典には載ってないな


738 : ◆QZaw55cn4c :2012/06/24(日) 23:15:06.03
>>506
>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
>それだけpush命令行われてるのにバカじゃねえの??????

とローカル変数を push で確保すると思っていた(爆笑)ようですが、それが論破されるといろいろ極端な例を後付けして凌いだつもりになっているのですね。
そろそろ、普通に使う範囲での妥当なサイズのソース
>>700
http://codepad.org/gVm1Y9Ps
http://codepad.org/dwKs5LBd
で説明していただけませんかね。ruby 脳ではやっぱり無理でしょうかね?

739 :デフォルトの名無しさん:2012/06/24(日) 23:17:36.25
引き際を知らないコピペゴミ

740 : ◆QZaw55cn4c :2012/06/24(日) 23:22:03.53
そうですね。コピペ多用はさすがにまずかったですね。飽きたのでやめます。

741 :uy:2012/06/24(日) 23:36:52.82
俺が簡単に負けを認めたらスレが盛り上がらないだろ?

742 :デフォルトの名無しさん:2012/06/24(日) 23:38:09.55
×スレが盛り上がらない
○スレが荒れない

743 :uy:2012/06/24(日) 23:43:01.17
言いたいことはそれだけか?
それくらいでは全く論破したことにもならないが

744 :デフォルトの名無しさん:2012/06/24(日) 23:43:14.39
なんという糞コテ勢揃い感

745 : ◆QZaw55cn4c :2012/06/24(日) 23:43:34.94
>>739
引き際、確かにむずかしいですね。SCHEME餃子さんはうまくて感心しています。

746 :デフォルトの名無しさん:2012/06/24(日) 23:44:44.53
日曜の夜はふけてゆく

EUROまだー、ちんちん

747 :デフォルトの名無しさん:2012/06/24(日) 23:47:38.38
今さら気づいて再レスしなくていいから

748 :uy:2012/06/24(日) 23:51:24.07
>>745
俺を論破できずに逃げるのか?ゴミカス

749 :uy:2012/06/24(日) 23:55:13.56
俺はゴミカスだがエリートゴミカスだ
お前らのような下級ゴミカスとは格が違う

750 :デフォルトの名無しさん:2012/06/24(日) 23:57:06.83
きてるきてる

751 :デフォルトの名無しさん:2012/06/24(日) 23:59:12.82
                        / /
                        / /
                     /三ミ} フ
                    r'"rニニ`〈
                   .| rニ~~` }    そんなことより野球しようぜ!
                   j (_)  /
     _,.-‐‐‐-'ヽ.      /  ,A_  ヽ.
   /,.--‐‐‐、  ヽ.    /  /  |  ヽ.
  / / />  ヽ ,..、ヽ /   /   |   ヽ.
  /‐┘/,.-、   ! | 6)/    /  __|   ヽ
  !ニ=_"iO ヽ   ヾ/    ./‐-'"i iZ    }
  !TOヽヽ、_ノ __ /|__   / { ヽ ヽヾZ   /
  ヽヽ_ノC /ン|   L  /___ヽ ヽヽ _>‐'"
   ヽ (∠ン´| ヽ、_.ク   _ ヽ、/
    `ー/| ヽ、__ /_/  _ |
      | ヽ、_. /   _/   _|

752 :デフォルトの名無しさん:2012/06/25(月) 00:03:40.58
猿だろ

753 :デフォルトの名無しさん:2012/06/25(月) 00:28:28.04
なんだプロサルファーのゴルフが猿するのか・・・。

754 :デフォルトの名無しさん:2012/06/25(月) 00:29:27.31
                        / /
                        / /
                     /三ミ} フ
                    r'"rニニ`〈
                   .| rニ~~` }    バスケットはお好きですか?
                   j (_)  /
     _,.-‐‐‐-'ヽ.      /  ,A_  ヽ.
   /,.--‐‐‐、  ヽ.    /  /  |  ヽ.
  / / />  ヽ ,..、ヽ /   /   |   ヽ.
  /‐┘/,.-、   ! | 6)/    /  __|   ヽ
  !ニ=_"iO ヽ   ヾ/    ./‐-'"i iZ    }
  !TOヽヽ、_ノ __ /|__   / { ヽ ヽヾZ   /
  ヽヽ_ノC /ン|   L  /___ヽ ヽヽ _>‐'"
   ヽ (∠ン´| ヽ、_.ク   _ ヽ、/
    `ー/| ヽ、__ /_/  _ |
      | ヽ、_. /   _/   _|

755 :デフォルトの名無しさん:2012/06/25(月) 04:18:14.16
論理的でな馬鹿二人の煽り合いってどうしようもないな

756 :uy:2012/06/25(月) 04:52:32.69
>>755
お前は誤字脱字を何とかしろゴミカス

757 :デフォルトの名無しさん:2012/06/25(月) 05:22:06.62
金星(まあず)

758 :デフォルトの名無しさん:2012/06/25(月) 08:18:23.74
甘酢(あまず)

759 :uy:2012/06/25(月) 08:20:41.52
吾妻(あずま)

760 :デフォルトの名無しさん:2012/06/25(月) 08:28:18.63
さ(まぁ〜ず)

761 :デフォルトの名無しさん:2012/06/25(月) 08:29:59.58
お前ら朝から何をやってんだ・・・。

762 :uy:2012/06/25(月) 08:30:23.72
俺はゴミカスだがエリートゴミカスだ
お前らのような下級ゴミカスとは格が違う

763 :デフォルトの名無しさん:2012/06/25(月) 08:40:21.50
ベジータさん
早く仕事に戻ってください

764 :デフォルトの名無しさん:2012/06/25(月) 10:15:22.44
なんだこれ。
アホとバカが共鳴しあってるのか?

765 :デフォルトの名無しさん:2012/06/25(月) 10:21:22.44
K&R版文字列反転に感動した朝。

766 :uy:2012/06/25(月) 10:26:35.11
俺に聞け

767 :デフォルトの名無しさん:2012/06/25(月) 10:28:30.20
わざわざ反転させなくても
先頭末尾の両方から使えるようにすれば済む話

768 :デフォルトの名無しさん:2012/06/25(月) 10:36:10.90
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::
::::::::::             ____
       ∧_∧    ||....___ |
      ( ´・ω・)   .|| └ヾ::::| |
    ┌/:::::::  l     ||__/._/_|
    | |:: |::::  | ┌━━ー┷┷┐

769 :デフォルトの名無しさん:2012/06/25(月) 11:34:53.26
くぴー

770 :デフォルトの名無しさん:2012/06/25(月) 13:33:01.58
>>765
どんな?

771 :デフォルトの名無しさん:2012/06/25(月) 15:51:53.50
http://bytes.com/topic/c/answers/220668-string-reversal-k-r-2nd-edition

772 :デフォルトの名無しさん:2012/06/25(月) 16:27:57.50
無駄が無いな。

773 :デフォルトの名無しさん:2012/06/25(月) 16:53:53.28
16行128列みたいな2次元の配列を作りたいんですけど、

int test[16][128];
ってやるのと
int *test
test = (int *)calloc(16*128, sizeof(int));

ってやるのどっちがいいですか?。


774 :デフォルトの名無しさん:2012/06/25(月) 16:57:52.06
インデックスの計算を自前でやるとメリットがある場合は後者


775 :デフォルトの名無しさん:2012/06/25(月) 17:02:57.69
>>773
int (*test)[128];
test=calloc(16*128, sizeof(int));

776 :デフォルトの名無しさん:2012/06/25(月) 17:38:39.52
>>775
その方がいいんですか?。

777 :デフォルトの名無しさん:2012/06/25(月) 17:43:29.89
とてつもなく工学計算ぽいから
R言語なりmathmaticaなりでやりゃあいいじゃん
FFTとかだろたぶん


778 :デフォルトの名無しさん:2012/06/25(月) 17:45:07.38
>>776
二次元配列と同じようにアクセスできる

779 :デフォルトの名無しさん:2012/06/25(月) 17:48:22.17
かなりの量の行列が生成死滅する場合、まとめて確保した方がメモリフラグメントが避けられる。

780 :デフォルトの名無しさん:2012/06/25(月) 17:49:25.95
>>775
ただ *test は配列へのポインタだから添字と違い毎回アクセスされる可能性があるので
わずかに速度が遅いかも

781 :デフォルトの名無しさん:2012/06/25(月) 17:52:19.63
>>774さん、>>775さん、>>777さん、>>778さん、>>779さん、>>780さん、
どうもありがとうございますm(__)m。

782 :デフォルトの名無しさん:2012/06/25(月) 19:21:28.48
>>781
いいの、いいの
お礼なんかいらないよ

783 :776:2012/06/25(月) 19:21:43.24
>>781
俺には挨拶なしかよ!

784 :デフォルトの名無しさん:2012/06/25(月) 19:27:22.29
無能に用はないんだよ

785 :デフォルトの名無しさん:2012/06/25(月) 19:33:59.45
>>773=>>776

786 :デフォルトの名無しさん:2012/06/25(月) 19:47:35.00
おまえ後で楽屋まで挨拶にこいよ

787 :デフォルトの名無しさん:2012/06/25(月) 20:27:04.19
よきにはからえ

788 :uy ◆pdu1UZmweE :2012/06/26(火) 00:41:13.23
>>773
記述量の少ないほうを常に選べ

789 :デフォルトの名無しさん:2012/06/26(火) 00:44:51.46
rubyierの言うことは聞かんでいい

790 : ◆QZaw55cn4c :2012/06/26(火) 02:15:44.92
ruby脳はこれだからねえ。

791 :デフォルトの名無しさん:2012/06/26(火) 02:51:27.77
#defineとtypedefはどう違うのですか?

792 : ◆QZaw55cn4c :2012/06/26(火) 03:00:40.89
>>791
typedef は コンパイラが理解できる。
#define は C コンパイラにわたる前の前処理プログラム(c プリプロセッサ)だけが理解できる。

使い分けはいろいろサンプルをみたり自分で試してみたりしてみてください。私は typedef のご利益を、実はよくわかっていない。

793 :デフォルトの名無しさん:2012/06/26(火) 03:25:23.24
構造体の時便利

794 :デフォルトの名無しさん:2012/06/26(火) 03:39:29.60
移植の時便利


795 :デフォルトの名無しさん:2012/06/26(火) 03:51:16.45
enum使うとき便利

796 :デフォルトの名無しさん:2012/06/26(火) 07:24:33.48
>>791
typedefは型名に別名をつけるようなもの。
だから宣言と同じ構文で識別子に当たる部分が型の別名になる。

#defineは単なる文字列置換だから、Cの文法では通らないようなこともできてしまう。

型Tの変数a, bの値を入れ替えるマクロ関数
T: 型名
#define SWAP(T, a, b) do{ T SWAP_tmp; SWAP_tmp = (a);(a) = (b); (b) = SWAP_tmp}while(0)

Cの関数では型を引数にはできないが、マクロ関数なら、引数に型を与えるように扱える。

797 : ◆QZaw55cn4c :2012/06/26(火) 07:47:55.99
>>793
そうは思わない派です。
(a + b)(c + d) で a + b = A とおいて、(a + b)(c + d) = A(c + d) = Ac + Ad, A をもどして (a + b)c + (a + b)d = ac + bc + ad + bd とかやらないように、
typdef struct { ... } *HogeP;
とするくらいだったら
struct Hoge *
を直接書いてあるほうがありがたい。あくまでひとつの意見ですが。

>>795
意識していませんでした。もしよろしければ例をくださりませんか。

798 :デフォルトの名無しさん:2012/06/26(火) 08:40:22.92
何でもかんでもtypedefしまくって何バイトなのかすぐには分からんのが多い
time_t size_t wchar_t とか
C++でSTL使うときに長ったらしいのを短くできるのはありがたい

799 :デフォルトの名無しさん:2012/06/26(火) 09:15:16.40
C++ Cording Standardsだったか、クラステンプレートにはtypedefで別名つけろって書いてたのは。

800 :デフォルトの名無しさん:2012/06/26(火) 10:14:58.81
800

801 :デフォルトの名無しさん:2012/06/26(火) 10:25:26.74
622 :デフォルトの名無しさん:2012/06/09(土) 12:27:10.29
int*をtypedefしたらさらにややこしい

623 :デフォルトの名無しさん:2012/06/09(土) 13:20:15.63
いやそこは#define だろ

624 : ◆QZaw55cn4c :2012/06/09(土) 13:47:33.95
なんでもありの #define は避けれるのであれば避けたほうがいい。

625 :デフォルトの名無しさん:2012/06/09(土) 14:35:41.84
コテはアスペとわかっちゃいても
ヤッパむかつくな

626 : ◆QZaw55cn4c :2012/06/09(土) 15:12:12.59
>>625
コードをみせてくれ。話はそれからだ。

627 :デフォルトの名無しさん:2012/06/09(土) 15:46:21.13
ナッパむかつくわ

802 :デフォルトの名無しさん:2012/06/26(火) 11:17:57.51
ここまで「マクロの方がはやい」はない

803 :デフォルトの名無しさん:2012/06/26(火) 12:24:23.87
別段早くないしな。

>>797
structにしろenumにしろ、C++なら省略できるけどCだと省略できないから一手間省けるってことでしょ。
--
struct foo {...;}
struct foo bar; // typedefを使わない例
typedef struct {...;} foo_t;
foo_t bar; // typedefを使う例
--
const int や volatile int も int * 同様typedefできるけど、するべきじゃないと思うね。
サイズ情報を隠蔽するためにはしばしば使うけど。
--
#if SOME_ENVIRON
typedef double Float;
#else
typedef float Float;
#endif
Float foo = (Float) (1. /3);
--

804 :デフォルトの名無しさん:2012/06/26(火) 12:27:01.86
typedefするとポインタかそうでないか分かりにくくなる場合がある
例えばLPCTSTRはポインタ

805 :デフォルトの名無しさん:2012/06/26(火) 12:35:18.99
Pはなんだと思ってるんだよw

806 :デフォルトの名無しさん:2012/06/26(火) 12:45:34.60
いい加減 LP = long (far) pointer をやめて欲しい

807 :デフォルトの名無しさん:2012/06/26(火) 13:10:24.73
L Peaple

808 :デフォルトの名無しさん:2012/06/26(火) 13:12:07.06
それより CTSTR の T がうざい。


809 : ◆bm8Y3upg2Y :2012/06/26(火) 13:20:04.90
質問なのですが、合計点と平均点を求めるプログラムを作ろうとしているのですが
上手くいきません。以下のどこが間違っているか教えてもらえますでしょうか?
合計も平均も0になってしまいます。

int ten[5], i = 0;
int sum = 0, ninzu = 5;
double avg;

printf("点数\n");
while (i < 5) {
printf ("%d人目 > ", i + 1);
scanf("%d", &ten[i]);
i++;
}

while (i < 5) {
sum += ten[i];
i++;
}

avg = (double)sum / ninzu;

printf("合計点: %d\n", sum);
printf("平均点: %f\n", avg);

return 0;




810 :デフォルトの名無しさん:2012/06/26(火) 13:21:48.91
>>808
TemplateのTだろ
マルチバイトならLPCSTR
UnicodeならLPCWSTR

811 :デフォルトの名無しさん:2012/06/26(火) 13:27:21.15
>>809
forを使えば直ぐに気付くミスなのに。

812 :デフォルトの名無しさん:2012/06/26(火) 13:28:13.64
>>809
ttp://ideone.com/Pj9KK

813 :片山博文MZボット ◆0lBZNi.Q7evd :2012/06/26(火) 13:57:17.18
>>810
不正解。TEXTのTでした。

814 :デフォルトの名無しさん:2012/06/26(火) 14:37:13.67
ぴよぴよ

815 :809:2012/06/26(火) 14:43:55.99
>>811
言われてみれば確かにその通りですね。
forなら(i=0,・・・)と書くので気付けたハズ。
iに数字が入ったままだったのですね。
>>812
ありがとうございます。助かりました。
これで無事に提出できます。

816 :デフォルトの名無しさん:2012/06/26(火) 15:00:26.82
いえいえ

817 :uy:2012/06/26(火) 15:57:30.56
>>809
p p((a=[1,4,5,10,20]).inject:+)/a.size

>40 合計
>8 平均

818 :デフォルトの名無しさん:2012/06/26(火) 16:11:18.37
スレタイすら読めない馬鹿がいる
っていつものことか

819 :デフォルトの名無しさん:2012/06/26(火) 16:58:37.01
#defineの質問をした者です。ありがとうございました。

820 :デフォルトの名無しさん:2012/06/26(火) 17:10:57.16
いえいえ

821 :デフォルトの名無しさん:2012/06/26(火) 17:11:41.70
あーいやー

822 :デフォルトの名無しさん:2012/06/26(火) 19:12:32.10
プログラムの速度を上げるには最適化のほかに
最新スペックのパソコンに変えると速度は上がりますか?


823 :デフォルトの名無しさん:2012/06/26(火) 19:30:29.72
アルゴリズムを見直せ

824 :デフォルトの名無しさん:2012/06/26(火) 19:34:05.57
>>822
ボトルネック箇所次第

825 :デフォルトの名無しさん:2012/06/26(火) 20:32:14.95
C言語1か月の初心者です。
例えば、『9』『99』『999』『9999』『99999』というように同じ数字だけで桁数を増やす計算式ってありますか?
一番簡単な方法があればご教授願います!



826 :デフォルトの名無しさん:2012/06/26(火) 20:35:13.57
>>825
x=x*10+x%10;

827 :デフォルトの名無しさん:2012/06/26(火) 20:36:43.20
>>825
http://ideone.com/HyiYB

828 :デフォルトの名無しさん:2012/06/26(火) 20:44:38.42
>>825
k*(10^(n+1)-1)/9

829 :デフォルトの名無しさん:2012/06/26(火) 20:51:26.21
質問の意味が分からない

830 :デフォルトの名無しさん:2012/06/26(火) 20:59:12.35
後出しで劣化しとる

831 :デフォルトの名無しさん:2012/06/26(火) 21:17:45.46
ずんちゃ

832 :デフォルトの名無しさん:2012/06/26(火) 21:38:38.18
ビルドしたあと出かけて帰ってきて再ビルドしたら再定義されていませんって出たけど何が原因でしょう
どこが間違ってるのか本気で分からない…構造体です

struct camera{
float posx,posy,posz,eyex,eyey,eyez,dir,speed,range,size;
};
camera cam;

833 :デフォルトの名無しさん:2012/06/26(火) 21:41:06.69
再定義されていません
って何だよ
されてないならいいじゃないか

834 :デフォルトの名無しさん:2012/06/26(火) 21:41:06.87
>>832
説明する気あんのかよ
ついでにC++はスレチ

835 :uy:2012/06/26(火) 21:49:36.44
どう考えても言語問わず

x = 9
x*10 + x

これで済む話なのに
なんでこんなバカしかいねーんだこのスレ


836 :デフォルトの名無しさん:2012/06/26(火) 21:56:23.36
10^(i+1)-1でいいだろゴミカス

837 :デフォルトの名無しさん:2012/06/26(火) 22:13:50.01
>>835
>x = 9
>x*10 + x

x = 88
x * 10 + x -> 968

838 :デフォルトの名無しさん:2012/06/26(火) 22:33:13.33
>>835

www

839 :デフォルトの名無しさん:2012/06/26(火) 22:39:51.96
>>835
kkk

840 :デフォルトの名無しさん:2012/06/26(火) 22:44:48.22
また後出しで劣化しとる

841 :デフォルトの名無しさん:2012/06/26(火) 22:47:35.66
まるで韓国人だな

842 :デフォルトの名無しさん:2012/06/26(火) 22:51:49.19
>>832
(C++ ではなく)C言語だと struct は省略できないよ
× camera cam;
○ struct camera cam;

843 :デフォルトの名無しさん:2012/06/26(火) 23:00:46.86
827,828,836とuyと同レベルが3人もいるのか…日本の未来は暗いな

844 :uy:2012/06/26(火) 23:01:43.42
確かに俺はゴミカスだ

845 :デフォルトの名無しさん:2012/06/26(火) 23:09:31.59
843も入れてあげて

846 :825:2012/06/26(火) 23:13:49.35
レスくれた方ありがとうございます!
何かいろいろと大変なことになっていますが、どれが一番良い方法なのでしょうか?


847 :デフォルトの名無しさん:2012/06/26(火) 23:18:42.68
836は数学的で実に美しい

848 :デフォルトの名無しさん:2012/06/26(火) 23:20:14.23
元はと言えば>>825の質問が悪い
いろいろ解釈できる質問しやがって

849 :デフォルトの名無しさん:2012/06/26(火) 23:22:43.64
828で終わってるだろう

850 :デフォルトの名無しさん:2012/06/26(火) 23:26:33.10
836,847馬鹿の自演

851 :uy:2012/06/27(水) 00:17:47.01
はぁ?
Cとかもういいから
さっさとruby使えよ
p ([9]*5666).join.to_i #=>99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

852 :デフォルトの名無しさん:2012/06/27(水) 00:23:39.83
>>851
スレチ消えろ

853 :uy:2012/06/27(水) 00:32:26.36
class Module ; def tco(name)
    continue = [] ; first = true ; arguments = nil ;  private_name = "private_" + name.to_s
    alias_method private_name, name ; private private_name
    proc = lambda do |*args|
      if first ; first = false
        while true
          result = send(private_name, *args)
          if result.equal? continue ; args = arguments
          else ; first = true ; return result
          end ; end
      else ; arguments = args ; continue ; end ; end ; define_method name, proc ; end ; end
class A
  def q x , n
    n.times.map do | i |
      f x , i
    end.inject:+
  end
  def f x , n
    return x if n == 0
    f x * 10 , n - 1
  end
  tco :f
end
p A.new.q 5 , 3

あー、やっべつい末尾再帰で書いて最適化しちゃったわ

854 :デフォルトの名無しさん:2012/06/27(水) 00:32:52.88
Rubyを初心者にすすめるとuyになるから絶対ダメってことですね

855 :デフォルトの名無しさん:2012/06/27(水) 00:34:11.02
>>853
スレチだバカ

856 :デフォルトの名無しさん:2012/06/27(水) 00:34:58.75
構うなバカ

857 :デフォルトの名無しさん:2012/06/27(水) 00:41:56.39
なんだこのクソコード

858 :デフォルトの名無しさん:2012/06/27(水) 02:38:17.00
Rubyが恐ろしいのは
汚く書こうと思えばいくらでもできちゃう所で
そういう意味ではCに近い

859 :uy:2012/06/27(水) 03:05:28.91
どんだけC言語やりたいんだよお前ら

時代遅れ時代遅れ時代遅れ時代遅れ

860 :デフォルトの名無しさん:2012/06/27(水) 03:21:25.81
>ttp://d.hatena.ne.jp/athos/20110119/p1
プw

861 : ◆QZaw55cn4c :2012/06/27(水) 03:29:43.92
>>854
ruby... 2.0 になったら勉強しよう。そのときはいろいろご指導ください >uy さま

862 : ◆QZaw55cn4c :2012/06/27(水) 03:32:17.03
>>859
OS はいまだに C で記述するのが一般的だというのに、それでも C が時代遅れと主張するのでしょうか?
というか C の理解なくして他の言語が理解できるのでしょうか。あー lisp は許す。


863 :uy:2012/06/27(水) 05:23:06.51
お前のようなゴミカスには教えない

864 :デフォルトの名無しさん:2012/06/27(水) 08:07:36.36
×お前のようなゴミカスには教えない
○uyのようなゴミカスには教える能力が無い

865 :uy:2012/06/27(水) 08:14:38.28
俺はゴミカスだがエリートゴミカスだ
お前らのような下級ゴミカスとは格が違う

866 :デフォルトの名無しさん:2012/06/27(水) 09:02:13.45
uyは放射能汚染ごみか。
世界中で受け入れ拒否。

このスレでも受け入れ拒否だからな。

867 :デフォルトの名無しさん:2012/06/27(水) 09:25:57.24
やめるのです!ボクたち

868 :デフォルトの名無しさん:2012/06/27(水) 09:38:25.10
clangでhttp://codepad.org/CebfjmLMをコンパイルに時間がかかるのは何故でしょうか。
配列の大きさを指定しているくせに違う大きさの配列リテラル?で初期化するのは良くないとは分かっていますが、気になって。

869 :デフォルトの名無しさん:2012/06/27(水) 09:54:43.10
C言語->LLVM->(最適化)LLVM->x86と変換するわけだけど
最初のLLVMを内部で出力するのに時間がかかるんじゃないかな
clang test.c -S -emit-llvm -o - で最適化無しのLLVMコードを見ると山ほどの
getelementptr [1048575 x i8]* %5, i32 0, i32 数字
が見れる
関数内での配列はとりあえずインライン化してみる仕様なのかも

870 :デフォルトの名無しさん:2012/06/27(水) 12:26:05.90
くぴーっ

871 :デフォルトの名無しさん:2012/06/27(水) 12:27:52.26
お前はガッチャンかっ!!

872 :デフォルトの名無しさん:2012/06/27(水) 12:29:01.39
>>871
お前はおっちゃんだ!

873 :デフォルトの名無しさん:2012/06/27(水) 19:24:21.87
int a = 10;
int i[a];
だとエラーが出るので

#define a 10
int i[a];
にすると、違うソースファイルで
externが使えないので、違うソースファイルでも

#define a 10
int j[a];
としたのですが、これだと片方のソースファイルの数字を書き換えれば
もう片方のソースファイルの数字も書き換えないといけなくて、
片方のソースファイルの数字だけを書き換えればいいように
したいのですが、どうしたらいいですか?

874 :デフォルトの名無しさん:2012/06/27(水) 19:32:37.37
hogehoge.h を用意して
#define a 10
する
fugafuga.c と hagehage.c の両方で
#include "hogehoge.h"
すれば、変更はhogehoge.hだけで済む

875 :デフォルトの名無しさん:2012/06/27(水) 19:34:11.98
// hoge.h

#ifdef MAIN
#define EXTERN
#else
#define EXTERN extern
#endif

#define a 10
EXTERN int i[a];

// main.c
#define MAIN
#include "hoge.h"

i[0] = 10;

// sub.c
#include "hoge.h"

printf("%d\n", i[0]);

876 :デフォルトの名無しさん:2012/06/27(水) 19:37:07.82
>>873
C以前に日本語の学習から始めてみたらいかがかな。


877 :デフォルトの名無しさん:2012/06/27(水) 19:53:46.60
>>874
>>875

できました。ありがとうございました


878 :デフォルトの名無しさん:2012/06/27(水) 20:24:35.93
いえいえ

879 :デフォルトの名無しさん:2012/06/27(水) 20:29:54.44
どうもどうも

880 :uy:2012/06/27(水) 21:35:20.42
>>861
気持ち悪い死ね

>>876
お前絶対に接客も接待もできないよ


881 :uy:2012/06/27(水) 21:37:31.93
>>873
int a = 10;
int i[a];
だとエラーが出るので

え?まじで?そんな言語使ってるほうが悪い

882 :デフォルトの名無しさん:2012/06/27(水) 21:39:31.79
>>873
グローバルな配列宣言ではなく
関数の引数で渡すことを考えてみることもやってみませう

883 :デフォルトの名無しさん:2012/06/28(木) 00:01:17.03
スタック領域とヒープ領域について教えてください。


884 :uy:2012/06/28(木) 00:16:40.59
そんなもん直感で分かれよカス

↓以下ドヤ顔で初心者に長文レスかますC言語スレ古参たち

885 :デフォルトの名無しさん:2012/06/28(木) 00:19:36.00
┃↑
┗┛

886 :デフォルトの名無しさん:2012/06/28(木) 00:22:22.09
ググればいくらでも解説が出てくるだろ
その上で疑問が有るなら疑問点を限定しろ

887 :デフォルトの名無しさん:2012/06/28(木) 00:25:26.12
>>883
言葉覚えたから、動くものが作れるってわけじゃないんだよ

888 :uy:2012/06/28(木) 02:38:52.81
>>886.887
??
もっとレス書きたいんだろ?書けばいいのに?
???

889 :デフォルトの名無しさん:2012/06/28(木) 02:44:33.80
A「私の3人の子供の年齢を当ててみて」
B「ヒントは?」
A「年齢の積は36」
B「もう少しヒントを」
A「年齢の和はあなたの年齢と同じ」
B「う〜ん、もう1つだけ。年齢が一番上の子の名前は?」
A「Cだよ」
B「OK、それで分かった」
さて、3人の子供の年齢は?

890 :デフォルトの名無しさん:2012/06/28(木) 02:45:49.00
読んで理解できるかしらんけど
ttp://networkprogramming.blog18.fc2.com/blog-entry-7.html
ttp://www9.plala.or.jp/sgwr-t/c/sec12.html

891 :デフォルトの名無しさん:2012/06/28(木) 02:53:01.73
今からプログラムを組んでくれって言ったら組んでくれる神様はいない…よな…
明日提出の課題がやばいんだが…

892 :uy:2012/06/28(木) 02:56:05.71
呼んだ?

893 :デフォルトの名無しさん:2012/06/28(木) 02:58:44.60
>>889
2,2,9

894 :デフォルトの名無しさん:2012/06/28(木) 02:59:22.03
>>891
3万円でやるよ

895 :デフォルトの名無しさん:2012/06/28(木) 07:55:47.63
学校の課題をそれで通ってどうすんだか

896 :デフォルトの名無しさん:2012/06/28(木) 08:06:57.26
uyのスパゲティはお断りします

897 :デフォルトの名無しさん:2012/06/28(木) 14:14:56.08
カペリーニならいいのか?

898 :デフォルトの名無しさん:2012/06/28(木) 14:18:17.62
うん

899 :uy:2012/06/28(木) 14:27:03.12
学生の頃Cのミニ問題集100問を1時間で終わらした記録があるわ
その頃からメタプログラミングは出来ていた
コードジェネレータ(笑)をperlで5分でかいて、Cソースコード出力
そこからは一問あたり20秒以内で
後半のほうにじゃんけんゲームやスゴロクゲームをCUIで作れっていうのあったけど
それらも1個、数分以内に作って1時間でクリアした
あれは楽しかったな

スクリプト言語はこうやって使うんだよ
素でCのソース書いてる奴には絶対に出せない効率

900 :デフォルトの名無しさん:2012/06/28(木) 14:43:01.65
そんな妄想聞かされても、君を哀れに思うだけで誰も感心なんてしないよ?

901 :デフォルトの名無しさん:2012/06/28(木) 14:48:38.84
>>775の、int (*test)[128];ってどういう意味ですか?。
int *test[128];ってやるとエラーが出たんですけど、どういう違いがあるんですか?。


902 :デフォルトの名無しさん:2012/06/28(木) 14:58:26.13
http://www.kouno.jp/home/c_faq/c6.html

903 :uy:2012/06/28(木) 15:01:35.08
>>901
そんなもん覚えても意味ない
理由は演算子の優先順位
ポインタの配列ではなく
配列のポインタになろうとして失敗してる
これで意味不明だったらお前も初心者だから俺に謝れよ

904 :デフォルトの名無しさん:2012/06/28(木) 15:15:27.38
初心者uyが自分より格下を見つけていじめてる

905 :デフォルトの名無しさん:2012/06/28(木) 15:45:15.36
>>903


906 :デフォルトの名無しさん:2012/06/28(木) 16:15:14.73
uyが最下位だから格下なんていないよ

907 :デフォルトの名無しさん:2012/06/28(木) 16:22:37.80
うひょー

908 :デフォルトの名無しさん:2012/06/28(木) 16:40:06.42
ひょひょ

909 :デフォルトの名無しさん:2012/06/28(木) 17:19:08.26
さすが、URL一行で取ってこれる絵のためにRubyごりごり書いてる
効率の悪いバカの言うことはちがうなw

910 :デフォルトの名無しさん:2012/06/28(木) 18:07:42.77
>>902さん、>>903さん、どうもありがとうございますm(__)m。


911 :デフォルトの名無しさん:2012/06/28(木) 18:09:26.62
>>910
いえいえ

912 :uy:2012/06/28(木) 18:42:20.86
>>911
お前だれだよ厚かましい
謝罪しろ

913 :デフォルトの名無しさん:2012/06/28(木) 18:44:38.68
初心者以下のクズuyは消えろよ

914 :デフォルトの名無しさん:2012/06/28(木) 19:46:53.39
>>903
演算子の優先順位じぇねーよ。嘘教えるなバカ

915 :uy:2012/06/28(木) 20:30:01.32
>>905
お前本当に文章よめねーのな
多分このスレの中でお前だけが読めてないよ

916 :デフォルトの名無しさん:2012/06/28(木) 20:38:16.82
int (*test)[128]; 配列のポインタ
int *test[128]; ポインタの配列

>>901は下にして上手くいかないんだから、配列のポインタをポインタの配列にして失敗してる

917 :デフォルトの名無しさん:2012/06/28(木) 20:45:51.56
うきょ

918 :デフォルトの名無しさん:2012/06/28(木) 20:48:57.53
なろうとして失敗してる、じゃどーとでも言えるな…
uyがプログラマになろうとして失敗してる とか
uyが普通の社会人になろうとして失敗してる とか
uyがあのコに気付いてもらえる男にry とか。

int (*test)[128]だとtest変数はintが128コある配列へのひとつのポインタだからcallocした戻り値を代入できるけど
int *test[128]だとintを指すポインタが128コある配列なので、
callocした戻り値をtestのどれに代入するかわかりません、ってことです。

919 :デフォルトの名無しさん:2012/06/28(木) 20:59:41.77
>>918
>int *test[128]だとintを指すポインタが128コある配列なので、
>callocした戻り値をtestのどれに代入するかわかりません、ってことです。

ん?「配列には代入できないからエラー」でしょ。

920 :デフォルトの名無しさん:2012/06/28(木) 21:01:52.31
まぁ、そういうこってすなw

921 :デフォルトの名無しさん:2012/06/28(木) 21:07:46.99
ハマりそうな書き方するんですね

922 :デフォルトの名無しさん:2012/06/28(木) 21:10:28.19
素直に構造体にしたほうがいいと思う

923 :デフォルトの名無しさん:2012/06/28(木) 21:19:02.42
うひ

924 :デフォルトの名無しさん:2012/06/28(木) 21:58:39.56
演算子の優先順位だよな

int *test[128]は int *test([128]) (エラーだけど意味を示したい) のように解釈される
配列演算子が逆参照演算子よりも優先度が高いためだ

CはAPL、C++についで3番目に演算子が多い

APLは演算子がCの倍あり、優先順位を決めるのを諦めてしまって評価順序を全部
左から右にしてしまった

しかしCは優先順位があり、しかも不自然な順位だと思われるものもあるためなかなか
覚えにくい

印刷した紙を手元に置いておくか、カッコで囲む必要がある

925 :デフォルトの名無しさん:2012/06/28(木) 21:59:29.22
あ、こう書けばいいのか

int *(test[128])

926 :デフォルトの名無しさん:2012/06/28(木) 22:12:56.70
>>924
だから演算子の優先順位じゃないって。
演算子は式に関するもの。
int *test[128]; (あるいはint (*test)[128];も)は宣言。

927 :デフォルトの名無しさん:2012/06/28(木) 22:24:10.88
>>903
演算子の優先順位じゃないよ
今後恥をかかないようにしっかり覚えとけクズ

928 :デフォルトの名無しさん:2012/06/28(木) 22:36:39.56
>>916さん、>>918さん、>>919さん、>>924さん、>>925さん、>>926さん、どうもありがとうございますm(__)m。

929 :デフォルトの名無しさん:2012/06/28(木) 22:45:25.27
いいってことよ

930 :デフォルトの名無しさん:2012/06/28(木) 22:48:13.84
>>916はuy

931 :uy:2012/06/29(金) 01:30:09.95
演算子の優先順位の問題だよ
特例みたいな抜け道の書き方が用意されているだけで

コンパイラくらい作ってからわめけカス

932 :uy:2012/06/29(金) 01:39:29.74
>>909
はぁ?
さっさとJAVAで描けよ


933 :デフォルトの名無しさん:2012/06/29(金) 01:41:46.29
「gcc -nostdlib -m32 -c test.c」と「gcc -nostdlib -m32 -c test2.c」
で作成したtest.oとtest2.oをリンクしたいのですが上手く行きません。
純粋に「gcc -nostdlib test.o test2.o」とやると warning: cannot find entry symbol _start; defaulting to 0000000000400144のような警告はが出ます。
どのようにやればいいですか?

934 :デフォルトの名無しさん:2012/06/29(金) 01:47:45.60
連投すみません。
2つのオブジェクトを結合して1つのオブジェクトにしたいと言う事です。
よろしくおねがいします。

935 :デフォルトの名無しさん:2012/06/29(金) 01:52:38.30
あのさーuyちょっと考えてみろよ、*と[]の優先順位?が逆だったとしたら、ポインタの配列を宣言するのに()が必要になるだろ結局。
特例でもなんでもないよな?

936 :デフォルトの名無しさん:2012/06/29(金) 01:57:19.23
>>933
-nostdlib
とってみるとかせんの?

937 :デフォルトの名無しさん:2012/06/29(金) 01:57:31.07
警告が出てるだけならできてるでしょ


938 :uy:2012/06/29(金) 03:58:41.94
また謝らないのか

939 :デフォルトの名無しさん:2012/06/29(金) 04:40:49.55
ごめんなさい

で、何が?

940 :デフォルトの名無しさん:2012/06/29(金) 07:13:31.22
間違ってるのはuy
だからさっさと消えろゴミクズ

941 :デフォルトの名無しさん:2012/06/29(金) 10:35:04.49
初級者はDeclaratorもしらんのだな。

942 :デフォルトの名無しさん:2012/06/29(金) 11:53:59.83
>>933
リンカは普通、結合されたオブジェクトをオブジェクトとして出力することはしない。
つまり、gcc -nostdlib test.o test2.oではオブジェクトを結合して実行モジュールにしようとしている。
そして恐らくは、test.oにもtest2.oにもmain()がないので警告されている。
全体、何をしたいんだ?

943 :デフォルトの名無しさん:2012/06/29(金) 12:15:05.04
くぷぅ

944 :942:2012/06/29(金) 12:35:48.45
あー訂正。nostdlibだからmain()ではなくてエントリポインタである_startがないってことか。
まぁ、本質は変わらないけど。

便宜上、オブジェクト(ファイル)を纏めたいならar(アーカイバ)で纏めればいいんじゃないのか?
普通のリンカなら、できたアーカイブファイルを指定するだけでtest.oとtest2.oをリンクできるか試みてくれる。

つーか、この辺りの話はWindowsに関係ないし、環境依存OKのスレ向きだなぁ。

945 :デフォルトの名無しさん:2012/06/29(金) 13:06:54.26
stdlib内に真のエントリポイント_start()があって、
そいつがmain()を呼び出してくれる

946 :デフォルトの名無しさん:2012/06/29(金) 13:48:35.07
>>942
gcc -Wl,-rで上手く行った。
用途はちょっとな。作りたいものがあるだけ。

947 :デフォルトの名無しさん:2012/06/29(金) 14:28:47.30
ぱーぷぅ

948 :デフォルトの名無しさん:2012/06/29(金) 14:31:37.25
>>946
つまり ld -r

949 :デフォルトの名無しさん:2012/06/29(金) 14:36:04.02
            ,:::-、       __
      ,,r::::::::::::〈:::::::::)    ィ::::::ヽ
      〃::::::::::::;r‐''´:::::::::::::::::::::ヽ::ノ
    ,'::;'::::::::::::::/::::::::::::::::::::::::::::::::::::
     l::::::::::::::::::l::::::::::●::::::::::::::●:::::ji
    |::::::::::::::::::、::::::::::::::( _●_)::::::,j:l  クマー!
    }::::::::::::::::::::ゝ、::::::::::|∪|_ノ::;!
.    {::::::::::::::::::::::::::::`='=::ヽノ:::::/     
    ';::::::::::::ト、::::::::::::::i^i::::::::::::/
      `ー--' ヽ:::::::::::l l;;;;::::ノ
【ラッキーレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です




950 :デフォルトの名無しさん:2012/06/29(金) 15:48:10.51
関数の外側で変数を宣言する場合なのですが
extern をつける場合と、つけない場合で、何か意味的に違いがありますか?

951 :デフォルトの名無しさん:2012/06/29(金) 15:55:12.74
つけてないと そこに本体がいるとする
つけると その変数の本体がいないとする

最終的には複数のソースで唯一の変数を作らなきゃいけないので
どのソースに本体が居ます 他はそこを参照してくださいな という制御

952 :デフォルトの名無しさん:2012/06/29(金) 16:02:49.38
>>951
理解しました、ありがとうございます

953 :デフォルトの名無しさん:2012/06/29(金) 17:39:33.38
extern付きと無しは被ってもいいの?
一つのソース内で、

extern int a; //どこかにあるよ
int a;    //ここに実体

これはOK?

954 :デフォルトの名無しさん:2012/06/29(金) 17:41:40.69
>>953
OK

955 :デフォルトの名無しさん:2012/06/29(金) 18:44:57.71
extern int x;
void test() {
x = 123;
}
int x;

これとか

956 :デフォルトの名無しさん:2012/06/29(金) 18:49:25.79
>>953
実態がどっちかというのは決まってない。

957 :デフォルトの名無しさん:2012/06/29(金) 19:12:24.77
extern は関数の宣言では必要だけど
グローバル変数の宣言では要らないんだっけ?
逆だった?

958 : ◆QZaw55cn4c :2012/06/29(金) 19:24:23.47
>>957
extern なんていらない子。使っていいことなどない。

959 :uy:2012/06/29(金) 19:26:34.65
>>958
externは俺のものだ
ゴミカスは黙ってろ

960 :デフォルトの名無しさん:2012/06/29(金) 19:28:29.02
>>959
よっ、ゴミカス

961 :デフォルトの名無しさん:2012/06/29(金) 19:29:21.72
やめるのですボクたち

962 :デフォルトの名無しさん:2012/06/29(金) 19:41:01.73
ふっふっ

963 :デフォルトの名無しさん:2012/06/29(金) 19:44:37.59
void hoge(void)
{
extern void hage(void);
extern int foo;
hage();
foo++;
}

964 :デフォルトの名無しさん:2012/06/29(金) 21:38:41.09
ふっほっ

965 :デフォルトの名無しさん:2012/06/29(金) 21:41:08.46
ふつへっ

966 :デフォルトの名無しさん:2012/06/30(土) 04:39:18.62
ぬっふぇ!


967 :デフォルトの名無しさん:2012/06/30(土) 10:42:18.55
>>957
extern はグローバル変数の外部宣言では必要だけど
関数のプロトタイプでは要らない
QZはファイル分割やヘッダーファイル知らないのか?

968 :uy:2012/06/30(土) 12:38:15.59
defineにループ文すら実装しなかったゴミカス言語の話か

969 :デフォルトの名無しさん:2012/06/30(土) 12:47:34.13
スレタイが嫁

970 :デフォルトの名無しさん:2012/06/30(土) 13:26:11.58

  ∩―‐、                                  
 / (゚) 、_ `ヽ                               
/  ( ●  (゚) |つ                            
| /(入__ノ   ミ                      人ノ゙ ⌒ヽ       彡ミ彡)彡ミ彡  +:;'
、 (_/    ノ                ,,..、;;:〜''"゙゙       )  从    ミ彡ミミ彡ミ  :;'
\___ ノ゙  / ̄ ̄ヽ_,,..、;;:〜-:''"゙⌒゙          彡 ,,     ⌒ヽ::::/彡:: :::ミゞ::::从从
   i i⌒\__ノ     ノ::::::゙:゙                    '"゙    /: : : : ::;彡ミ: ;:: ; : : : :ゝミ)
   ヽヽ ヽ    / /   `゙⌒`゙"''〜-、:;;,_              ) ミ{:: :ミ: :ノ --‐' 、_\:: ミ:}  
    )) )-─/ /            ⌒`゙"''〜-、,,      ,,,彡⌒''〜 {:: : :ノ ,_;:;:;ノ、 ェェ ヾ: :::}
    // /  //  /                     "⌒''〜"       l: :ノ /二―-、 |: ::ノ
   ((__ノ  // /                                   | //   ̄7/ /::ノ  
       // ノ                                    〉(_二─-┘{/  
       |_|_/                                   /、//|  ̄ ̄ヽ
                                           /   // |//\ 〉
                                          /    //   /\ /
                                               ↑
                                              ニート uy













971 :デフォルトの名無しさん:2012/06/30(土) 15:42:23.79
>>970
そういう下品なのはRubyスレでやってくれないかな

972 :デフォルトの名無しさん:2012/06/30(土) 15:47:08.78
1000

973 :デフォルトの名無しさん:2012/06/30(土) 19:02:06.41
ふう

974 : ◆QZaw55cn4c :2012/06/30(土) 19:12:20.00
>>967
>extern はグローバル変数の外部宣言では必要だけど
ところが、外部変数であっても条件つきで extern なしでリンクが通る場合がある。
http://pc12.2ch.net/test/read.cgi/tech/1201153965/139
"tentative definition"

私見だがこれはリンカ依存。
これが結構便利で頻繁に使わせてもらっている。

975 :デフォルトの名無しさん:2012/06/30(土) 19:52:54.64
リンカの都合でexternを省略できるのって、そんなもんどこが便利なんだ?
頻繁にw使ってるとこを具体的に聞きたいもんだが。

976 : ◆QZaw55cn4c :2012/06/30(土) 20:12:55.18
>>975
>リンカの都合でexternを省略できるのって、そんなもんどこが便利なんだ?
「どんな場合でも extern が省略できないリンカ」というのはみたことがない、.obj, a.out, coff, elf どの時代でも。

977 :デフォルトの名無しさん:2012/06/30(土) 20:28:49.52
そんなのどーでもいーけど
で、どこが便利なの?


978 :デフォルトの名無しさん:2012/06/30(土) 20:32:51.44
入力の手間が省けるくらいなもん

979 :デフォルトの名無しさん:2012/06/30(土) 20:34:01.92
共有な変数名としてコードに落とすことがあるからね、最近のコンパイラとかは

980 : ◆QZaw55cn4c :2012/06/30(土) 20:35:48.43
>>977
特定のひとつのソースの外部変数は extern 抜きで書き、他のは全部 extern をつける、とかめんどくさいことを特に意識しなくてもいいこと。
外部変数を .h に書いておいて、その外部変数使う .c でのみその .h をインクルードすればいいだけ、というのもある種のスコーピングになりうる。
初期化はちゃんとコードに書かないといけないけれども、これはある意味必然だ。

981 : ◆QZaw55cn4c :2012/06/30(土) 20:36:46.67
>>978
ま、そのとーり。

982 :デフォルトの名無しさん:2012/06/30(土) 20:48:08.05
そんなもんが結構便利って、いいかげんな仕事しかしてねぇんだなぁ。

983 : ◆QZaw55cn4c :2012/06/30(土) 20:59:12.90
>>982
同様の趣旨で MASM6 には EXTERNDEF ディレクティブっていうのがあったんだよね。

984 :デフォルトの名無しさん:2012/06/30(土) 21:00:42.95
struct A {int a};

main()
{
struct A __i686;
__i686.a = 686;
}

上記のようなコードがgccだとエラーになる場合があるので困る。
glibcのソースコード中にもこれ由来の問題が昔からあるのだが、いまだに治ってない。gcc,glibcどちらの問題なのか?そんなウルリッヒドレッパー。

985 :デフォルトの名無しさん:2012/06/30(土) 21:04:39.16
boke.c:1:16: 警告: 構造体または共用体の最後にセミコロンがありません [デフォルトで有効]

986 : ◆QZaw55cn4c :2012/06/30(土) 21:08:33.17
>>984
http://codepad.org/hGhMhuxO
__686 ってgcc特有のキーワードっぽいね、よくわからないけど。

987 :デフォルトの名無しさん:2012/06/30(土) 21:13:54.07
いや、ふつーこうじゃね?
>ttp://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.5.4.html

988 :デフォルトの名無しさん:2012/06/30(土) 21:15:53.50
最近のgccをi686以降のみ対応で決め打ちビルドすると、組み込みマクロに #define __i686 1 などがずらっと追加される。
普通にコンパイルするだけでも、ソースコードに #define __i686 1 が頭に追加されてる状態。このマクロを利用してCPU最適化コードへの#ifdef分岐に使ったりできるのだが、
弊害として変数名などに__i686を使った場合に、マクロで1に置き換えられてしまうので、当然エラーとなる。

これが原因で最新のglibcがビルドできない。
しかも昔からある問題らしいhttp://www.gcd.org/blog/2009/10/179/
__i686なんてよくある名前を組み込みマクロにしてるgccはどうかしてる。

989 :デフォルトの名無しさん:2012/06/30(土) 21:17:53.44
>>986
gccのverが古くねえか?

990 :デフォルトの名無しさん:2012/06/30(土) 21:18:43.80
>>988
glibcのverが古くねえか?

991 :デフォルトの名無しさん:2012/06/30(土) 21:20:08.57
つかglibcがgccでビルドできないって…

992 : ◆QZaw55cn4c :2012/06/30(土) 21:22:07.25
>>988
プリプロセッサ制御用コマンドラインオプション -U ではだめなのでしょうか?めんどくさそう。

993 :デフォルトの名無しさん:2012/06/30(土) 21:23:39.42
>>991
どちらも協調性に難ありまくりな作者が書いてるコードだからな

994 :デフォルトの名無しさん:2012/06/30(土) 21:24:07.18
おみゃがビルドしてる(使ってる)gccとglibcのver晒せや

995 :デフォルトの名無しさん:2012/06/30(土) 21:26:18.71
次スレは980踏んだQZが立てるのか? つーか、さっさと立てろよQZ

996 :デフォルトの名無しさん:2012/06/30(土) 21:38:08.39
次スレ
http://toro.2ch.net/test/read.cgi/tech/1341059858/

997 : ◆QZaw55cn4c :2012/06/30(土) 21:38:35.52
>>995
C言語なら俺に聞け(入門編)Part 103
http://toro.2ch.net/test/read.cgi/tech/1341059858/

998 :デフォルトの名無しさん:2012/06/30(土) 21:39:26.09
>>996


999 :はちみつ餃子 ◆8X2XSCHEME :2012/06/30(土) 21:41:38.74
>>999 なら長門は俺の嫁

1000 :デフォルトの名無しさん:2012/06/30(土) 21:41:57.28
1000get

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

250 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)