- 1 名前:デフォルトの名無しさん [2015/05/27(水) 06:15:55.14 ID:gRxCv8ae.net]
- C言語の入門者向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 127 peace.2ch.net/test/read.cgi/tech/1424244688/ ★過去スレ ttp://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++の宿題片付けます 168代目 peace.2ch.net/test/read.cgi/tech/1408962564/ ★C++言語については避けてください。C++対応明記スレへどうぞ。 ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。 # サイズが大きい場合はアップローダ等を利用してください。 ttp://codepad.org/ ttp://ideone.com/ ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 【重要】 当たり前の事ですが、2chではコピペ荒らしは禁止されています
- 586 名前:NAS6 ◆n3AmnVhjwc [2015/07/04(土) 00:16:33.50 ID:+0FMM883.net]
- マクロって・・・
inlineにしろよ
- 587 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 00:21:29.98 ID:VV3jJEnC.net]
- >>572
展開結果みればいいだけじゃん
- 588 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 04:03:44.48 ID:Fgik/57+.net]
- >>577
どたらも、良し悪しある。 関数にすると、型が限定されてしまう。 マクロだと意図しない動作する可能性ある。
- 589 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 04:10:40.35 ID:pRWF/8JR.net]
- どたらもな
- 590 名前:NAS6 ◆n3AmnVhjwc [2015/07/04(土) 07:12:51.83 ID:+0FMM883.net]
- >>579
(C++ならば)それなら inline template
- 591 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 08:18:41.39 ID:negZyq4J.net]
- Cスレ
- 592 名前:デフォルトの名無しさん [2015/07/04(土) 08:42:52.40 ID:MQHT1P6q.net]
- 幾度となく死線を潜り抜けてプログラムを極めた俺様に何でもきかんかい!
- 593 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 08:49:33.00 ID:negZyq4J.net]
- はい
- 594 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 09:00:08.69 ID:5JPjTv/9.net]
- >>581
ここはcスレ。
- 595 名前:デフォルトの名無しさん [2015/07/04(土) 13:38:46.30 ID:Tzt2/bWL.net]
- これは秀逸だなって思うC言語のコードってあります?
前にマージソートの質問したもんですが、左配列用、右配列用と 一時保存用の配列を二つ用意せず一つ用意して、左右の端から走査して、 本来右を走査する配列が、左を走査しても問題ない、また逆も然りっていう 仕組みは凄いなって思いました。 他にあったら教えて下さい。まぁあってもそういうのって自分だけの秘密にしたいと 思うんですかね、中々言いたくないと思いますが。
- 596 名前:デフォルトの名無しさん [2015/07/04(土) 13:52:01.01 ID:zkccIDTn.net]
- 1~100を表示させてそのなかの任意の数字の倍数の総和を求めるプログラムの書き方を教えて下さい
a%b==0は使うことは分かるんですけど、総和をどう記述すればいいか悩んでます aを足しあげるからaを最後に出力させるように書くと1<=a<=100の制限で100以下にしかなりません #include <stdio.h> main() { int a; for(a=1; a<=100; a++) { printf("%d\n",a); } int b,; printf("任意の数字="); scanf("%d",&b); for(b=1;b<=100;b++)
- 597 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 13:56:18.26 ID:7qFGbGe6.net]
- int t=0,a,b;
for(a=1; a<=100; a++) { printf("%d\
- 598 名前:",a);
} scanf("%d",&b); for(a=b;a+=b;a<=100) t+=a; か? [] - [ここ壊れてます]
- 599 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 13:57:08.10 ID:7qFGbGe6.net]
- × for(a=b;a+=b;a<=100) t+=a;
○ for(a=b;a<=100;a+=b) t+=a;
- 600 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 14:04:13.84 ID:XWq4mp45.net]
- int tmp=100/b;
int totatl = (a+a*tmp)*tmp /2; 整数の除算は余り切り捨てだよな?
- 601 名前:590 mailto:sage [2015/07/04(土) 14:05:25.39 ID:XWq4mp45.net]
- って変数aじゃねぇ! orz
int totatl = (b+b*tmp)*tmp /2;
- 602 名前:デフォルトの名無しさん [2015/07/04(土) 14:10:27.16 ID:zkccIDTn.net]
- 例えば10が任意の数字だとしたら
10+20+30+40+50+60+70+80+90+100= が出力されるってわけなんですが それが表現できなくて歯がゆい
- 603 名前:デフォルトの名無しさん [2015/07/04(土) 14:58:12.11 ID:zkccIDTn.net]
- 助けてください発狂してしまいます
- 604 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:03:03.01 ID:3dpbiA1v.net]
- レスもらっといて何言ってんだ
- 605 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:08:05.74 ID:XWq4mp45.net]
- >592
>588-589 ←いじれば出来るだろ。 それさえも出来ないなら辞めちまえ。
- 606 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:16:21.71 ID:IoQCkQ/X.net]
- いつものかまってちゃんだろ。放置しとけよ。
- 607 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:16:53.27 ID:WvwJxr10.net]
- printfの中身を一字一句理解せず呪文と思ってるとそうなる
誰だCなんか勧めたのは
- 608 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 17:10:44.98 ID:hWeTlHuy.net]
- CountChar関数内で渡された文字が文字列中に何回出現するかを求めて返す
というのがわからない #include <stdio.h> char CountChar(char ss[], char dt[] ); int main(void); { char c[100]: int n; scanf("%lf", c); scanf("%ld", n); CountChar(); return 0; } char CountChar(char ss[], char dt[] ) { int a; }
- 609 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 18:10:52.85 ID:3xe091DX.net]
- >598
char 配列に実数データを格納して文字列と言い張る理由がわからない
- 610 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 13:35:33.26 ID:TrBrpITS.net]
- >>586
お付き合いした者です、刺激を沢山ありがとうございます 当初、作業領域なし/インプレイスで出来るんじゃないかと期待してたんですが、 いろいろ場合に当たった結果、やっぱり、当初与えられたデータ数程度の作業領域は必要なようですね データ配列の「一個分位置ずらし」をコストとしてカウントしなければインプレイスにできるんですけども、 これは認めてもらえないだろうな‥ これはすごいっていうアルゴリズム‥たぶんいろいろあったんだとは思うけれども 感動する前にめんどくさいな、とか思ってしまっていたのでよくわかんない とりあえず専用ブラウザから投稿させてほしい
- 611 名前:デフォルトの名無しさん [2015/07/06(月) 04:50:17.31 ID:r+1ftyuS.net]
- ttp://www.nurs.or.jp/~sug/soft/tora/tora5.htm
最後の問題がさっぱりわからないです...
- 612 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 07:43:11.38 ID:UtQpsrfy.net]
- そうですか。
- 613 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 04:41:15.27 ID:QhcZ6j1E.net]
- QZには無理だから諦めろ才能ない無職
- 614 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 15:25:58.45 ID:uc2UtN37.net]
- >>601
こういうことかな? codepad.org/bE5S9dWG ただし、手元の環境で実行すると、 int:0 float:0.000000 hex:0 int:1318926965 float:1318926976.000000 hex:4e9d3a75 となって、0x4e9d3a74→0x4e9d3a75で、floatがintを追い越すから、 intとfloatで同じビットパターンが同じ値を示すのは、0以外無いんだけど。 問題の解釈を間違えてるのかな?
- 615 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 21:16:09.81 ID:BL0LeVkm.net]
- >>601
こんな感じかな codepad.org/o1J0XqWR int : 0, float : 0.000000, hex : 0 int : 1318926965, float : 1318926976.000000, hex : 4e9d3a75
- 616 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 21:35:40.91 ID:BL0LeVkm.net]
- 問題よく読んだらポインタの項だった。。。
課題1からの流れを汲み取ってあげるとこんな感じかな float f = (float)i; if (i == *((unsigned int *)&f)) { printf("int : %d, float : %f, hex : %x¥n", i, (float)i, i); }
- 617 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 22:32:58.19 ID:3oy//rai.net]
- ホントに「intとfloatで同じビットパターンが同じ値を示す」数字って0以外にあるの?
ひょっとして、ビッグエンディアンなら0以外にもあるって事かしら?
- 618 名前:デフォルトの名無しさん [2015/07/07(火) 23:15:00.34 ID:QhcZ6j1E.net]
- 口調変えてもバレバレだろQZ
お前は低能なんだから低レベルの議論にするなよ永久無職
- 619 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:19:00.26 ID:BL0LeVkm.net]
- エンディアン関係ないから
- 620 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:32:11.62 ID:3oy//rai.net]
- そりゃそうだな、関係ないなw
じゃ、やっぱり問題の解釈が違うんかなぁ?
- 621 名前:デフォルトの名無しさん [2015/07/08(水) 00:36:50.13 ID:QLXOn1Rg.net]
- QZには無理っていってんだろ
- 622 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 07:38:44.88 ID:IfW/Ay/U.net]
- QZが何者か知らんが、お前が虐められて悔しいのは理解した。
いつまでも引きずってないで、前に進んだ方があなたのためですよ。 人生のリハビリだと思って頑張って下さいね。 ではでは。
- 623 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 08:44:03.79 ID:xRK5vE6u.net]
- まじで、ネタで言ってたとしても「QZガ〜」は何の面白みもないからやめて欲しい。
ってか荒しだよね、スレから消えて欲しいいや板から消えて欲しい。
- 624 名前:デフォルトの名無しさん [2015/07/08(水) 10:36:42.18 ID:O7aPWqfj.net]
- そういえばQZと片山のIDが同一だった発言を見た記憶がある
- 625 名前:デフォルトの名無しさん [2015/07/08(水) 10:47:21.02 ID:O7aPWqfj.net]
- >509 :テスト ◆QZaw55cn4c :2015/04/29(水) 14:59:08.26 ID:z7uliay9
> テスト > >510 :片山博文MZ ◆T6xkBnTXz7B0 :2015/04/29(水) 15:28:32.77 ID:z7uliay9 > >>507 うまく修正できたよ。 これだったな
- 626 名前:デフォルトの名無しさん [2015/07/08(水) 13:36:33.08 ID:SQs9ZFsr.net]
- そうなの?
- 627 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/08(水) 13:38:13.02 ID:73Ug3Wex.net]
- Qzのトリップはバレてるからな
- 628 名前:テスト ◆QZaw55cn4c [2015/07/08(水) 13:39:14.38 ID:SQs9ZFsr.net]
- テスト
- 629 名前:デフォルトの名無しさん [2015/07/08(水) 14:56:17.56 ID:O7aPWqfj.net]
- いや、第三者が証明しないと意味ないから
- 630 名前:デフォルトの名無しさん [2015/07/08(水) 14:58:18.09 ID:O7aPWqfj.net]
- せっかくだからQZのトリップを公開してもらおうか
バレてるのなら今更だろ? #自爆乙
- 631 名前:デフォルトの名無しさん [2015/07/08(水) 15:06:04.19 ID:O7aPWqfj.net]
- 片山ってもしかしてバカなのか?
- 632 名前:デフォルトの名無しさん [2015/07/08(水) 15:21:02.25 ID:O7aPWqfj.net]
- IDの自演も無しにしてほしいな
- 633 名前: ◆96Z1eVei2s mailto:sage [2015/07/08(水) 16:10:47.83 ID:PQcxNWhR.net]
- すぐバレる嘘つきやがって全く
- 634 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/08(水) 17:43:38.36 ID:73Ug3Wex.net]
- 2ちゃんねるのトリップ漏洩事件によってQZのトリップは漏れてる。個人情報保護法があるから、詳しくは言えないが
- 635 名前:デフォルトの名無しさん [2015/07/08(水) 18:04:11.30 ID:gNgHjUOK.net]
- つまり君は漏洩した情報を入手してそれを利用したというわけだね。
その時点で個人情報保護法に抵触しているよ。 漏洩した情報にはクレジットカードの番号も含まれているわけだが。 通報しますか?しませんか?
- 636 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:28:23.70 ID:gNgHjUOK.net]
- ::::::::::/ ヽ::::::::::::
:::::::::::| ば じ き i:::::::::::: :::::::::::.ゝ か つ み ノ::::::::::: :::::::::::/ だ に は イ::::::::::::: ::::: | な。 ゙i :::::: \_ ,,-' ――--、..,ヽ__ _,,-'' :::::::,-‐、,‐、ヽ. )ノ _,,...- :::::_|/ 。|。ヽ|-i、 ∠_::::::::: /. ` ' ● ' ニ 、 ,-、ヽ|::::::::: ニ __l___ノ |・ | |, -、:: / ̄ _ | i ゚r ー' 6 |:: |( ̄`' )/ / ,.. i '- `ー---―' / '(__ ) ヽ 、 ====( i)==::::/ ,/ニニニ :/ ヽ:::i /;;;;;;;;;;;;;;;;
- 637 名前:(株)今北産業 mailto:sage [2015/07/08(水) 18:58:50.66 ID:e1WcPcpR.net]
- 自分の犯罪を白状するスレはここですか?
- 638 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 19:21:27.57 ID:Y4/HOrqp.net]
- ワロい過ぎた
- 639 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 20:10:15.83 ID:PAkk6Hqa.net]
- すみません僕は2ch初心者なんですがQZって誰ですか?有名な人なんですか?
- 640 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/08(水) 20:22:50.07 ID:73Ug3Wex.net]
- >>629
QZは、C/C++の宿題スレに生息している。
- 641 名前: ◆QZaw55cn4c mailto:sage [2015/07/08(水) 21:20:35.04 ID:dH1o5zRy.net]
- >>630
最近はみかけないね‥
- 642 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 21:36:28.98 ID:43f6DXxl.net]
- プログラム板にこの人ありって位、有名で有能なプログラマだよ。
覚えておいて損はない。
- 643 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:34:01.71 ID:P3MgPigD.net]
- じっくりコードを読む事ができるが理解が遅いプログラマと
すばやくコードを読むことができるが間違いが多いプログラマなら どっちが欲しいですか?リーダーとして
- 644 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:42:36.39 ID:m5k9DQUy.net]
- 有能ではないけど有名だな
プログラムの最後に /* end */ と付けるのが好きみたいだし 必要のない場所にすら二分木使ったり
- 645 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:43:52.91 ID:m5k9DQUy.net]
- あ、そうだ、QZに課題出しといてやるよ
二分木探索は再帰を使わない非再帰に書き換える事が出来る そうする事によって高速化やスタックオーバーフローを防止できる これやってみ
- 646 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:57:48.60 ID:tSvJTLLc.net]
- >>633
マ板池
- 647 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:28:30.75 ID:H34fJNZm.net]
- >>633
後者のそれ読めてないじゃないですか
- 648 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 00:55:05.63 ID:J7b7Mxuc.net]
- >>635
peace.2ch.net/test/read.cgi/tech/1313183984/793
- 649 名前:デフォルトの名無しさん [2015/07/09(木) 01:44:10.39 ID:1/aylVmX.net]
- QZ怒りの自スレ紹介
- 650 名前:デフォルトの名無しさん [2015/07/09(木) 01:45:03.59 ID:1/aylVmX.net]
- ほんと自演魔だなQZ
煽りまで自演かよ
- 651 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 18:53:17.69 ID:mde2xpnr.net]
- 思ったんですけどchar文字なんてあるんでしょうか?
intの-127〜127を割り当てればいいだけでは? わざわざchar型を実装する意味がイマイチ分かりません。
- 652 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 18:55:57.53 ID:Elm3Zapl.net]
- >>641
昔は今みたいに膨大な主記憶装置は無かったからね
- 653 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:00:26.47 ID:mde2xpnr.net]
- >>642
??どういうことですか?
- 654 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:01:52.09 ID:mde2xpnr.net]
- 後疑問ですが
strcpy関数とかって返り値が0じゃないときは0以外の数ってなるじゃないですか? 何でずばり1って断定しないんですかねぇ…全然わかりません。 何で0のときは0(一致しないとき)、一致するときは0以外って曖昧だと思いません?
- 655 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:03:48.96 ID:wx8JTHvZ.net]
- 1と比較するアフォを排除する為
- 656 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:09:24.05 ID:mde2xpnr.net]
- そもそも実装はどうなってるのって話ですよ
単純にreturn 1;って書けばいいのに 曖昧にするってことは return rand()/%00; みたいな感じなんですかね?
- 657 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:11:14.26 ID:B2+ONIF1.net]
- charって文字コードの型ってよりは、最小単位のバイト数である、が重要だと思ってるんだけど違う?
大量のデータをとりあえずchar型の配列とかポインタで格納し、unsigned charでキャストして、unsigned charひとつ分のバイトデータに分割し、加工してまたくっつけるてlong型返すとか。
- 658 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:12:04.13 ID:80WFJcEW.net]
- strcpyは第1引数返すだけだろ?
strcmpの事言ってるなら高速化のために単純に文字コードの引き算の結果返す実装があるから
- 659 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:12:44.32 ID:ntINu6aK.net]
- >>644
思わない。0と比較すればいいだけ
- 660 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:15:24.14 ID:ntINu6aK.net]
- >>647
charは文字のための型。最小かどうかは重要じゃない
- 661 名前:647 mailto:sage [2015/07/09(木) 19:19:34.86 ID:b3vJbeQ5.net]
- >>650
でもこう書いてあるよ? q.hatena.ne.jp/1381762366
- 662 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:19:52.03 ID:OqiP450p.net]
- 漢字は入らないでしょ
- 663 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:01:31.51 ID:yvZx6GXv.net]
- メモリは沢山あるんだからcharなんか使わなくてint使えば良いだろ。俺は滅多にcharは使わない。
- 664 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:03:16.30 ID:mVlTl5rr.net]
- >643
・バイトという単位があって、それに合った型がchar型。 ・C言語はアセンブラと相性がいい言語。アセンブラで出来ることがC言語でも出来た方が都合がいいと判断した結果。 ・C言語が出来た時代は搭載メモリが1Mも無いハードが主流の時代。1バイトでも使用容量を減らすのが当たり前の時代。 ・専門家が必要と判断した結果。お前みたいなヒヨッコには経験不足で理解できないだけだ。黙っとけ。
- 665 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:23:52.40 ID:QKowWqJV.net]
- アセンブラと相性がいいのはJavaでは?
だってjavaはメモリ操作関数Cより多いじゃん
- 666 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:27:10.54 ID:ditZL0Yg.net]
- C言語出来たときにJavaが存在してたと?
C言語の他にアセンブラと相性のいい言語があったら、他に相性がいい言語は存在しちゃいけないの?
- 667 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:34:37.12 ID:Mmd8OX6L.net]
- JavaはJava仮想マシン上で動くことが前提の言語。
- 668 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:55:12.40 ID:QKowWqJV.net]
- C言語のコンパイラをjavaで作った場合、C言語もJVMで動くってことになるんですか?
そこらへん分かってません。 コンパイラって結局なんですか?
- 669 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:57:31.74 ID:nD2SHEs8.net]
- 「C言語の仕様はxxxと成ってますがxxxxの方がいいと思います。
なぜそのようになっていないのですか?」 ・2chユーザーに聞くな!仕様決めたやつに聞け! ・理由が全く思いつかない?それはお前の経験不足のせいだ。もっと他人のソース読んだり、他の言語も勉強しろ!!ついでに国語を小学校からやりなおせ! ・面倒?そう思うやつはプログラマー向いてないから止めちまえ!!
- 670 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:58:56.44 ID:QKowWqJV.net]
- コンパイラの意味が分からないです
だってコンパイラだって何らかの言語で作られてるわけでしょ Cだからアセンブラと相性がいいっていうのは何故?
- 671 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:00:57.85 ID:deXGtrLg.net]
- そもそもアセンブラが何かわかってなさげ
- 672 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:03:38.82 ID:i/qBMKbM.net]
- >658
とりあえずコレ読んどけ ttps://ja.wikipedia.org/wiki/コンパイラ >C言語のコンパイラをjavaで作った場合、C言語もJVMで動くってことになるんですか? そのコンパイラがJVMで動くコードを吐くように作られてるならそうなる。 Windows用コードを吐くように作られてるならJVMでは動かない。そういうのをクロスコンパイラという。
- 673 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:15:06.10 ID:QKowWqJV.net]
- >>661
アセンブラは INDEX MAX MIN MOVEF とかでしょ?分かってますよ で疑問なのがCのコンパイラ作れ作れみたいな本って 全部CでCのコンパイラ作ってるんですよね?意味なくないですか?w 何でCのコンパイラを作らないとダメなのにCを介しているんだと… 遅くなるじゃないですか… アセンブラで作るからCは高速なんだからアセンブラでコンパイラ作るべき だと思うんですが、それは企業秘密なんですかね
- 674 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:16:48.88 ID:QKowWqJV.net]
- 後思うんですけ
- 675 名前:どjavaって遅い遅いって言われてるじゃないですか?
ならCをjava化すればいいだけでは? java=遅いけど機能豊富 C=早いけど機能が単細胞アメーバ なら単にCでjavaの機能実装すればいいだけでは? 単純にそう思います [] - [ここ壊れてます]
- 676 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:21:43.77 ID:L3wwq7kt.net]
- >>655
>アセンブラと相性がいいのはJavaでは? 下に根拠らしきものが書いてあるが、こういう知識が どうして訂正もされずに頭の中にあるのか不思議。
- 677 名前:デフォルトの名無しさん [2015/07/09(木) 21:22:38.79 ID:JgLS8zBl.net]
- >>664
お前が作ってくれ。 知らないが、LLVMアセンブラと、javaのアセンブラ相当の部分の橋渡しを作ったらいいのでは。
- 678 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:25:00.03 ID:OqiP450p.net]
- Javaがネイティブに動くcpuを作れば良いのでは
- 679 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:25:39.32 ID:QKowWqJV.net]
- もっと思うんだけど
プログラミング言語が一番高速なのはアセンブラでしょ? ならアセンブラで開発すればいいと思います アセンブラにもクラスみたいな機能あったはず なのに何で組み込み系ってC言語なんですか? 組み込みってリアルタイムシステムじゃないですか? なら 中途半端に早いC言語より超高速のアセンブラで作ればいいのではないかと 単純にそう思うんですがね
- 680 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:26:13.44 ID:deXGtrLg.net]
- >>663
それはニーモニック CコンパイラをC言語で書くのは 拡張性やメンテナンスをしやすくするためで意味がある
- 681 名前:デフォルトの名無しさん [2015/07/09(木) 21:26:33.56 ID:JgLS8zBl.net]
- Javaバイトコード - Wikipedia
Javaバイトコードは、Java仮想マシンが実行する命令形式である。 命令 各バイトは潜在的な256個の値を持つが、256個の使用可能なオペコードを持つ。これらのうち、0x00から0xca、0xfe、そして0xffは割り当てられた値である。 命令は幅広い数に分類される: ?ロードおよびストア(例 aload_0,istore) ?算術および論理(例 ladd,fcmpl) ?型変換(例 i2b,d2i) ?オブジェクト作成および操作(new,putfield) ?オペランドスタック管理(例 swap,dup2) ?移動管理(例 ifeq,goto) ?メソッド呼び出しおよび復帰(例 invokespecial,areturn) LLVM - Wikipedia LLVM は、JavaとJava VMの関係のように、まず仮想機械をターゲットとした中間コード(ビットコード)を生成し、その仮想機械向けコードを特定のマシンの機械語に変換する。 この時言語やプラットフォームとは独立した最適化を行う。この方法によってLLVM は言語からもアーキテクチャからも独立しており、それぞれに特化した、 プログラミング言語固有のモジュールと、マシン向けコード生成部を用意することにより様々な言語アーキテクチャーに対応する。
- 682 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:32:17.80 ID:VxETAF0f.net]
- >>668
アセンブラでクラスとかお前は一体何を言ってるんだ?
- 683 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:40:38.93 ID:ZBdPMQSU.net]
- >>671
おい釣られるなよ
- 684 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:50:46.43 ID:QKowWqJV.net]
- javaの参照もメモリを制御してるのに
何でCは早くて、javaは遅いの?
- 685 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:54:23.72 ID:syH16MxP.net]
- それを説明するにはID:QKowWqJVの知識が低すぎるし、
その知識にあわせて説明すると解説本1冊作れるぐらいの情報が必要。 つまりそういう本を帰ってことだ。 とりあえずこれ読んでこい。 https://eb.store.nikkei.com/asp/ShowItemDetailStart.do?itemId=D2-00P83150B0 プログラムはなぜ動くのか
- 686 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:59:02.87 ID:QKowWqJV.net]
- >>674
分厚いなぁww 何故動くかくらいは分かりますよ 機械語の組み合わせを一つの文字にまとめる まとめたのをまとめる、結局それの繰り返しでしょ?
- 687 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:05:39.24 ID:AjjL7yX9.net]
- >675
全くダメ!そんなイメージだからみんなの説明が全く理解できないんだよ。 読めと言ったらとにかく読め!それが出来ないなら来るな!
- 688 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:09:22.41 ID:QKowWqJV.net]
- >>676
書店で読んでみますわ
- 689 名前:デフォルトの名無しさん [2015/07/09(木) 22:13:00.09 ID:JgLS8zBl.net]
- CやJavaが言語として速度が遅いという根拠はない。
最適化と動作環境がマトモならアセンブラと並ぶ。
- 690 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:15:31.80 ID:OqiP450p.net]
- メモリ使用量くらいかな、違うのは
- 691 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:15:41.15 ID:QRivXUtQ.net]
- × 機械語の組み合わせを一つの文字にまとめる
根本的に間違ってる。どこをどう間違ってるか説明不能なぐらい間違ってる。
- 692 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:16:29.17 ID:QRivXUtQ.net]
- >677
書店に迷惑だ!買うか図書館行け!
- 693 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:27:36.35 ID:G8eHbxF5.net]
- またADHDの人が暴れてるのか。。。
- 694 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:33:51.62 ID:Elm3Zapl.net]
- >>680
あながち間違いではないのでは? 視覚的に分かりやすいように機械語の命令
- 695 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:35:19.65 ID:Elm3Zapl.net]
- >>680
あながち間違いではないのでは? 視覚的に分かりやすいように機械語の命令セットを割当いるのだし
- 696 名前:デフォルトの名無しさん [2015/07/09(木) 22:37:43.13 ID:1/aylVmX.net]
- 平日昼間から自演とは笑わせる
- 697 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:52:22.30 ID:B2+ONIF1.net]
- はぁ、でたよ
あなたこそ、荒らすだけで何にも有益な情報だしませんよね。消えてください
- 698 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:53:13.19 ID:QRivXUtQ.net]
- あいつはあいまいな部分を自分に都合のいいように超拡大解釈させるから
例外排除、厳密主義で説明しないとむちゃくちゃなことになる。
- 699 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 01:03:59.34 ID:6ULcnTjH.net]
- あいつは何も創り出さないから、
パクリ屋の片山の方が少しだけマシ しかし、あいつら重箱の隅をつついたり残飯あさりみたいなことして楽しいのかね?
- 700 名前:デフォルトの名無しさん [2015/07/10(金) 01:27:13.99 ID:9OV4RYzP.net]
- QZ怒りの煽ってフルボッコにされるの巻き
- 701 名前:デフォルトの名無しさん [2015/07/10(金) 01:46:59.57 ID:BbUNOMqp.net]
- ID出るようになってから本当にまともな情報出てこなくなったな。
にわかや間違った知識の初心者がただ暴れるだけのスレになってしまった。 まともな情報を提供できる人が減り、まともな情報を得られる人が減り、負のスパイラル。 このスレの存在価値って暇なときにそういう奴らをヲチれるってだけでしょ。
- 702 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 02:23:27.56 ID:WL3Gd+eK.net]
- >>690
ID は関係ない,むしろ有益 どちらかというと専用ブラウザを排除したことの罪が重い
- 703 名前:デフォルトの名無しさん [2015/07/10(金) 02:30:20.46 ID:9OV4RYzP.net]
- さすが公開オナニーを正当化したいQZのいうことは違う
- 704 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 05:31:28.35 ID:Jvm9pak2.net]
- >>673
これはガベージコレクションが関係してるからじゃないんですか? C系はRAII等でプログラマがメモリを自由に管理できるし、それも早さに繋がっているのでは?
- 705 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 06:35:18.95 ID:XAIUcdu4.net]
- >>641
大昔は、文字コードは8bitしか無かった。 最近出来の言語ではcharは文字用になって、多バイト文字も扱える物も有る。(新たに byte型が出来てる)
- 706 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 07:46:38.37 ID:+KcTu61v.net]
- C言語が速い(と思われる)のは引数の安全確認を省かれてる関数が多いから。
また、型が違う時のキャストも最小限にしかしないから。
- 707 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 07:55:52.36 ID:bM2M5Hwn.net]
- クラッシュした時にデフォルトで呼び出しダンプが吐かれるのを見て
何でこんな無駄なことやってるんだ!? と呆れるのがCグラマ
- 708 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 12:54:35.54 ID:xr+IAg9x.net]
- ある程度以上複雑な処理を、特定のCPUに特化したオプティマイザを持った
Cコンパイラが吐くようなコードをアセンブリ言語で書くなんて無理ゲーだろ。 もちろん諸般の事情で、どうしてもこの命令を使いたいなんてときには 書くこともあるがな。
- 709 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 13:10:49.66 ID:yh0xw8Sd.net]
- Cより遅くなる要因はランタイムの有無だろ。
- 710 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 13:37:30.71 ID:bM2M5Hwn.net]
- 配列や構造体をスタックに置かない
例外やトレース情報など関数呼び出し時の無駄な処理 ライブラリの隅々にまで及ぶ徹底したオーバーヘッド撲滅の不足 みんな大好きガベージコレクション
- 711 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 13:41:38.65 ID:+KcTu61v.net]
- ペンティアム1ぐらいの時代まではアセンブラ=>C言語だった。
- 712 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 14:20:51.40 ID:uxjenI25.net]
- >>700
今でもアセンブラ 〉 C言語 これからもずっとアセンブラ 〉 C言語
- 713 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 18:41:42.06 ID:M5h7ZwqO.net]
- 初心者です。どなたか助けて下さい。
マイコンのROMに書き込むプログラムについてです。 ソースファイルをビルドして書き込み形式ファイルに変換したときに、 ROM上の所望のアドレスに所望の値(ビットパターン)が書き込まれるように ソースコードで制御することはできるのでしょうか? ポインタ(?)を使えばできるのでしょうか?
- 714 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 18:48:03.90 ID:ZMvCzyvK.net]
- ROMライター側で (通信で)渡ってきたビットパターンを 特定のアドレスに書き込む
んだけど、なんか別の方法もあったようななkったような 忘れた 少なくとも ROM上のプログラムが ROM上の記憶領域に対して書き込み方向のアクセスしても、書けないぞ
- 715 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 19:00:18.44 ID:Z2TbeI0I.net]
- >>702
答えになっているか分からないが 参考になるかな www.ertl.jp/~takayuki/readings/c/no09.html
- 716 名前:デフォルトの名無しさん [2015/07/10(金) 19:59:07.41 ID:9OV4RYzP.net]
- 初心者ながらQZの自虐無知識自慢とか意味不すぎる
- 717 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 20:09:33.91 ID:6ULcnTjH.net]
- >>704
ていうか、その前の開発ターゲットと開発環境を質問すべきだろ シッタカが過ぎて墓穴掘ってんじゃねーぞ
- 718 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 20:34:42.91 ID:86aMQ0Tc.net]
- そんなの開発環境とか関係ない。
普通のROMライタならモトローラSフォーマットかインテルHEXフォーマットで書ける。 そんなのうけつけ無い、手作りのROMライタつかってるなら、こんな所に質問にこない。
- 719 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:14:28.60 ID:cETlnxs2.net]
- >>680
どう間違ってるんですか? ビット操作を文字列で置き換えたのがプログラミング言語なだけでは? ビット操作をアセンブラにまとめて アセンブラを言語でまとめる それだけでは?
- 720 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/10(金) 21:17:42.37 ID:DCa/3nZ3.net]
- >>708
条件分岐などの制御構造を持たないと、プログラム言語とは言えない
- 721 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:19:49.53 ID:9IScuLdJ.net]
- アホがソースコードで制御って質問してるだろーが
ちゃんと質問読めよシッタカめ
- 722 名前:710 mailto:sage [2015/07/10(金) 21:21:39.03 ID:9IScuLdJ.net]
- >>707
- 723 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:34:16.91 ID:BKxBIosQ.net]
- >>708
マイコンキット買ってきて、機械語プログラムを体験してみたら?
- 724 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:47:49.28 ID:bM62bRJM.net]
- >>702
環境が分からないから概要だけかいつまむと… 所望のアドレスでsectionを作る。 そのsectionにマッピングするように指定したコンストのグローバル変数を定義して、初期値に所望のビットパターンをセットする。 コンパイルする。 焼く。 以上。
- 725 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:54:23.17 ID:mihfK1KR.net]
- >>694
> 大昔は、文字コードは8bitしか無かった。 大昔なら 7bit だろ 通信とかだと大文字限定にして 6bit もなかったっけ? > 最近出来の言語ではcharは文字用になって、多バイト文字も扱える物も有る。(新たに byte型が出来てる) Byte 型なんて VB6 の時代からあるし、Pascal で 0..255 範囲型定義すればバイトを扱えたと思う(こっちは処理系によるかも、もう記憶が曖昧)
- 726 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:55:41.81 ID:zONaO8sT.net]
- >708 電子回路理論は別の板です。ここではありません。
- 727 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 22:09:15.13 ID:Q4vtffLq.net]
- もしかしてコイツCPUかパソコン内にC言語ソースを解読する回路を持っていると思っているのではないかと本気で危惧。
- 728 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 22:35:53.64 ID:V5qL2Bce.net]
- そういやぁ昔モニタにもPC同様のOSが入っててPCからモニタを制御して映像を出してると思ってたやつがいたな。
同一人物か?
- 729 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 23:08:56.72 ID:4ayEXXFA.net]
- 説明省いた所に勘違いの根源がありそうだけど…そこまで矯正してやる理由も利点も無いよなぁ。
- 730 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 23:23:33.71 ID:p4eBJ6uf.net]
- >>702
できるよ 組み込みのファームアップで良くやるし
- 731 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 23:39:11.26 ID:ykzgorl/.net]
- 環境によってはこんなのもあったり、リンカスクリプト自分で書くとか
infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491bj/BABGJHDC.html
- 732 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 00:09:42.18 ID:yb9b9uYv.net]
- 一方私はhexファイルを加工するスクリプトを作った。
- 733 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 12:59:55.02 ID:2/75tmG3.net]
- >>643
昔のPCはメインメモリ16Kとかでメモリ制限多かったのと 当時8bitCPUのレジスタサイズと相性良い 今残ってるのはファーム系や通信系、その他互換性かな まだまだ使われてるとこが多い
- 734 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 14:11:53.54 ID:EetLUFfU.net]
- 8bitハードでC言語はやりたくないなぁ・・・。オールアセンブラが王道。
- 735 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 16:27:10.55 ID:JsXMIkKG.net]
- うちは8bitのpicでもcで書いてるけどね。
- 736 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 20:15:30.31 ID:N+MxSKL/.net]
- グズで役立たず程ネガティブ発言が多い
- 737 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:44:07.25 ID:s2rxtCK9.net]
- 皆さんは標準ライブラリは覚えておく派?
それとも必要に応じて引用する派?
- 738 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:55:07.98 ID:pd57RWsF.net]
- 必要に応じて調べている内に覚えちゃう派
- 739 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 14:27:14.74 ID:o+m4gL9U.net]
- ラッパー化して自分専用ライブラリに。
- 740 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 15:30:24.74 ID:NWI6O2xz.net]
- このスレでman見ろ言われてからman見る派
- 741 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 15:49:19.24 ID:BKAToTl0.net]
- manって女性差別だろ。
呼び方変えるベキ
- 742 名前:テスト ◆QZaw55cn4c [2015/07/12(日) 16:04:50.67 ID:MzVYHQ6B.net]
- manがだめなら、chinがあるさ
- 743 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 16:19:47.96 ID:NWI6O2xz.net]
- ねーよ
- 744 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 19:37:07.12 ID:/ikWn7Z2.net]
- man
- 745 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 19:37:41.14 ID:/ikWn7Z2.net]
- コマンド
- 746 名前: ◆QZaw55cn4c mailto:sage [2015/07/12(日) 20:25:06.10 ID:fGWqKhxR.net]
- >>731
おもしろいと思ったのか?厨には早いから初心者スレにでも
- 747 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 17:33:39.59 ID:wlq5ajTC.net]
- >>703,704,713,719
レス本当にありがとうございます。 ご教示頂いた情報とリンクから、おそらくリンカスクリプトのSECTIONブロックに .rodataのLMAを指定するのではないかなと理解しました。 まだ、具体的なところが分からないのですが、例えば、ROMの0xABCDEEと0xABCDEFに、 それぞれ11111111と00000000を書き込みたい場合、.rodataのLMAの指定方法(AT属性?)と、 LMA以降のアドレスにおける定数値とのマッピングはどのように指定すれば良いのでしょうか? >そのsectionにマッピングするように指定したコンストのグローバル変数を定義して と、思ったのですが、そもそも.rodataではなくて、個々のグローバル変数のLMAを SECTIONブロックで定義できるのでしょうか?
- 748 名前:デフォルトの名無しさん [2015/07/13(月) 22:35:42.72 ID:2DWcmP+D.net]
- QZF欄時代の糞課題
i.imgur.com/hbOo1dK.jpg?1 i.imgur.com/bCG68SN.jpg?1 i.imgur.com/zf9wrJ5.jpg?1 i.imgur.com/ZGD61Ml.jpg?1 i.imgur.com/Keoih8o.jpg?1 i.imgur.com/KDVwkUn.jpg i.imgur.com/GsOscHJ.jpg i.imgur.com/hMCBnbN.jpg
- 749 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 21:43:26.21 ID:YTQkbKn/.net]
- こんな感じじゃダメ?
. = 0x01ABCDEE; .MySct1 : { BYTE(0xFF);BYTE(0x00); }
- 750 名前:デフォルトの名無しさん [2015/07/14(火) 22:36:42.79 ID:rB0J2LcB.net]
- QZは出入り禁止
- 751 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 02:52:47.11 ID:4s2DsMfA.net]
- 初歩的な質問させてください
同じ構造体の中のメンバーの値を比較して最大値を返すプログラムを作りたく、 max=data[0].a for(i=1;i<=n;++i){ if(max<data[i].a) max=data[i].a } と書きました 本来ならiが2の時の値が最大値になるのですが、nの値が出てしまいます プログラムの間違いや構造体の比較の上で何か注意があれば教えてくださいm(_ _)m
- 752 名前:デフォルトの名無しさん [2015/07/15(水) 03:09:21.85 ID:rDPbITG6.net]
- n個しかないのにn+1個目を呼んでるとか
- 753 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 10:37:53.35 ID:D5SeDEqJ.net]
- >>738
ありがとうございます!ありがとうございます! まだ思うように動かないのですが、 教えて頂いたコードはリンカスクリプトのどの部分(.rodata?)に書けば良いのでしょうか? それと>>713さんからsectionにグローバル定数をからめられることを教えて頂いたのですが、 「BYTE(0xFF);BYTE(0x00)」の指定をグローバル定数で指定することはできるのでしょうか?
- 754 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 12:13:31.73 ID:4Gs4+rfn.net]
- >>740
1) 「同じ構造多の中の」を比較するのに構造体自体が配列になっててそれを比較してるのはいいの? 2) data の配列はきちんと初期化してる? 3) max と data:a の型はなに? signed だったりしない? 4) for ループの n はどっから出てきたの?
- 755 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 12:22:13.28 ID:nYMDh+es.net]
- 配列は 宣言が type array[個数] で
array[0] 〜 array[個数-1] までしか使えない
- 756 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 12:29:03.53 ID:cCeHMBdr.net]
- max=0;
for(i=0;i<n;++i){ if(max<data[i].a) max=data[i].a; } 普通こう書くな
- 757 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 12:44:08.91 ID:AuuzzMz2.net]
- >>745
新人に書かせると、毎年結構な割合でそう書くんだが、学校で教えてるのかねえ?
- 758 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 12:51:04.75 ID:2t4VwR8U.net]
- >>745
値が全て負の時に結果が 0 になっちゃうからダメ
- 759 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 13:27:43.35 ID:s74LivYF.net]
- アンパサンド使えばいいじゃない!
- 760 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 13:46:16.64 ID:cCeHMBdr.net]
- >>747
負数は条件に入ってないでしょ そう書いてあったらlimit.hから持ってくるだけだ
- 761 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 13:46:50.73 ID:cCeHMBdr.net]
- 問題はそこじゃなくて添字の使い方
- 762 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 13:48:35.13 ID:j8XNr1jp.net]
- 初期値を[0]から持ってくるのも、0件の時使えないしな。
- 763 名前:デフォルトの名無しさん [2015/07/15(水) 18:11:26.12 ID:m0HrC+H+.net]
- >>740
その構造体の型とデータを、ここに貼ってみて欲しい。 本当に、i=2が最大なのか?
- 764 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 18:50:46.02 ID:fokCzg42.net]
- ・data[n]の初期化忘れ。
・for(i=1;i<=n;++i){ が for(i=1;i<n;++i){ の間違い。 ・dataに予定と違うデータが入っている。 さぁどれだ?
- 765 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 19:20:52.98 ID:ekVQGYCu.net]
- >>749
え、条件に入ってないの?
- 766 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 20:44:13.64 ID:uItIfLXq.net]
- >>742
リンカスクリプトって環境によってかなり違うからどこに書くかといわれても。 SECTIONS { } の中のどこかとしか。 俺はMinGWでld -verboseでスクリプト吐いて、 SECTIONS { }の一番下に . = 0x01ABCDEE; .MySct1 : { BYTE(0xFF);BYTE(0x00); LONG(0xAA55CC33); } ↑こう書いて、gcc -T hoge.x foo.cでコンパイルリンクして、 当然実行できないから objcopy -F ihex a.exe a.ihex ↑した後にa.ihex見たらそれっぽくできてたんで>>738と書いただけ。 後、↓見たいに一行で書かないとエラーになるリンカが昔あった。 .MySct1 0x01ABCDEE : { BYTE(0xFF);BYTE(0x00); LONG(0xAA55CC33); } > ローバル定数で指定することはできるのでしょうか? . = 0x01ABCDEE; .MySct1 : { *(.MySct1) } ↑こう書いて、ソース中で↓こんな感じ。 char gHoge __attribute__ ((section (".MySct1")));
- 767 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 21:13:12.09 ID:2t4VwR8U.net]
- >>749
> 負数は条件に入ってないでしょ わざわざ元の奴より改悪してどうするよ w >>751 n = 0 の時は最小値自体が存在しないからループにはいる前にテストすべき
- 768 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 22:49:11.41 ID:D5SeDEqJ.net]
- >>755
レス本当にありがとうございます!! ゴールに近づいてきた気がします! 頂いたレスのグローバル定数のところなのですが、 >. = 0x01ABCDEE; >.MySct1 : { *(.MySct1) } >↑こう書いて、ソース中で↓こんな感じ。 >char gHoge __attribute__ ((section (".MySct1"))); ソース中でconstで定義したMySct1を上(char〜)のように指定するということで合っていますでしょうか? おそらくあまりの無知に驚かれていると思いますが何卒お導きをお願いします!
- 769 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 01:01:14.23 ID:RYdqwZWN.net]
- >>757
const char gHoge[2] __attribute__ ((section (".MySct1"))) = {0xFF,0x00}; > ソース中でconstで定義したMySct1を上(char〜)のように指定するということで合っていますでしょうか? ソース中でconstで定義したgHogeを.MySct1セクションに配置。
- 770 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 19:35:19.57 ID:/5WSEGYs.net]
- >>758
できました! 758さんのおかげです!本当にありがとうございました!
- 771 名前:デフォルトの名無しさん [2015/07/17(金) 22:13:40.88 ID:oJCZp1Jy.net]
- 文字列をパターンと比較してテキスト文字からそのパターンを見つけるっていう
プログラムで mがパターンの文字列で T()がテキスト文字の配列 P()がパターン文字の配列 照合するためのループが 台形括弧 j>m or T(i+j-1)≠P(j) j=j+1 という事ですが、このループ条件って正しいでしょうか? だってjがm以上になれば延々とループすることになりますよね これ11年度のAP試験の問題ですが、解答見ても分かりません。 何で一致しない限りjを進めるんでしょうか? 一致しない時点でjではなくiを増やすのが普通だと思うのですが、どういう 勘違いをしてるのか自分でもわかりません。
- 772 名前:デフォルトの名無しさん [2015/07/17(金) 22:17:38.93 ID:oJCZp1Jy.net]
- 台形=C言語のfor文の()
っていう理解でいいでしょうか? もう少しプログラムを丁寧に書きます。 i→1 穴埋め→last 0→found 始点移動ループ台形括弧内[found≠0 or i>last] 1→j 照合ループ台形括弧内[j>m or T(i+j-1)≠P(j)] 穴埋め 照合ループ台形括弧閉じる 穴埋め この穴埋めが>なら1→found この穴埋め≦ならi+1→i 始点移動ループかっこ閉じる プログラム終了
- 773 名前:デフォルトの名無しさん [2015/07/17(金) 22:19:41.86 ID:oJCZp1Jy.net]
- 2番目の穴埋めでjをインクリメントしてるのです。
一致しないのにインクリメントって意味があるんでしょうか? テキスト文字列のindexを進めるのだからiをインクリメントするのは 分かるのですが、一致しないことがわかって何故パターン文字列の jをインクリメントするのか分かりません。まさか誤植じゃないですよね? さすがに僕の勘違いだと思いますが、すっきりしないです。 Cのforとフローチャートのループは仕様が違うんですかね…
- 774 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:20:53.16 ID:hZkEqQnf.net]
- すまんが C で書いてくれ
- 775 名前:d []
- [ここ壊れてます]
- 776 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:22:25.76 ID:62hGZ/Zb.net]
- >>761
はなはだしくスレ違い。
- 777 名前:デフォルトの名無しさん [2015/07/17(金) 22:41:36.43 ID:oJCZp1Jy.net]
- >>763
たぶん i=1 last=?1; found=0; for(found!=0 || i>?1) j=1; for(j>m || T(i+j-1)!=P(j)) {?2;} ?3; if(?3)found=1; else i=i+1; } です。 ?2がj=j+1 ということですがこれが理解不能です。
- 778 名前:デフォルトの名無しさん [2015/07/17(金) 22:43:35.44 ID:oJCZp1Jy.net]
- i=1
last=?1; found=0; for(found!=0 || i>?1) { j=1; for(j>m || T(i+j-1)!=P(j)) {?2;} ?3; if(?3)found=1; else i=i+1; } こうですね、forの後の{忘れていましたので…
- 779 名前:デフォルトの名無しさん [2015/07/17(金) 22:45:08.30 ID:oJCZp1Jy.net]
- jが一旦mを超えたら、永遠にループをしてしまうと思うのです。
自分の目がおかしいのかもしれませんが、何に躓いてるんでしょうか… 1日考えてここまで理解できないプログラムってそうないんですけどね
- 780 名前:デフォルトの名無しさん [2015/07/17(金) 22:52:35.42 ID:oJCZp1Jy.net]
- ?もちゃんと書きます、ごめんなさい。
i=1; last=n-m+1; found=0; for(found!=0 || i>last) { j=1; for(j>m || T(i+j-1)!=P(j)) {j=j+1;} if(j>m)found=1; else if(j≦m) i=i+1; }
- 781 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:12:13.32 ID:4wSKeiNn.net]
- 問題は省略するな全部正確に書き写せ。
それが出来ないなら問題の写真をうpして質問しろ。
- 782 名前:デフォルトの名無しさん [2015/07/18(土) 00:19:26.90 ID:oprjiCWN.net]
- >>769
一応全部ですが、フローチャート?ifをひし形みたいにする表記って何っていう んでしょうか?まぁそれをCに変換したまでです。
- 783 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:35:08.49 ID:4wSKeiNn.net]
- 問題文を正しく書き写しているというのなら、問題がおかしい。
そもそも、n-m+1ってなに? mがパターンの文字列なんでしょう?nからパターンの文字列を引いて1足すってどういうことだよ。
- 784 名前:デフォルトの名無しさん [2015/07/18(土) 01:24:25.18 ID:VyGMEck6.net]
- >>768
まずは日本語から覚えよう
- 785 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 01:54:50.50 ID:Qj7RPCLj.net]
- 擬似言語わかってないだけでしょ
- 786 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:09:23.66 ID:zVnebLmb.net]
- たぶんこう.
https://ideone.com/xSZoob
- 787 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:12:30.32 ID:zVnebLmb.net]
- そして照合失敗時の判定し忘れたわ
- 788 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:29:45.91 ID:zVnebLmb.net]
- ごめん,デバッグせずにおかしそうなとこだけ変えてコードはったわ.
ちゃんとデバッグしたやつ https://ideone.com/cIsFa5
- 789 名前:デフォルトの名無しさん [2015/07/18(土) 08:25:27.89 ID:oprjiCWN.net]
- >>771
疑似言語だと思います。配列が1始まりなんで その関係でn-m+1っぽいそうです。 >>776 本当にありがとうございます。 未だに分かりません。何故一致しないのに、j++するんでしょうか…
- 790 名前:デフォルトの名無しさん [2015/07/18(土) 08:29:23.23 ID:oprjiCWN.net]
- えええええ何で&&なんだ…
参考書の方は疑似言語だけどorになってました。 両方のループもorでした。疑似言語ってor=&&なんですか?
- 791 名前:デフォルトの名無しさん [2015/07/18(土) 08:48:06.38 ID:oprjiCWN.net]
- i.imgur.com/BBHdpQN.jpg
これです。orになっています。
- 792 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 08:54:08.55 ID:5OYZKZ4e.net]
- それループの脱出条件だろ
- 793 名前:デフォルトの名無しさん [2015/07/18(土) 09:01:16.48 ID:oprjiCWN.net]
- >>780
Cとつまり逆ってことですか
- 794 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 09:16:32.55 ID:42lL/E8Y.net]
- なぜiの方には疑問をいだかないのか
- 795 名前:デフォルトの名無しさん [2015/07/18(土) 09:23:58.90 ID:oprjiCWN.net]
- これ流れ図ですか、流れ図には制御条件が、成立時条件なのか、不成立時条件なのか
明確な規定はないんですか?
- 796 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 09:32:28.07 ID:42lL/E8Y.net]
- まずはググろうね
そもそもこういうのC言語に変換する必要ないし スレチね、うん
- 797 名前:デフォルトの名無しさん [2015/07/18(土) 10:36:12.95 ID:9KsA62Ua.net]
- 条件式の中身を読み間違えてるんだね
j > mは 「jよりmが小さい時」じゃなくて「jがmより大きくなるまでの間」って事だね ≠ も同じで「等しくない時」じゃなくて「等しくなくなるまでの間」だね or は && で間違いないよ うん
- 798 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 10:39:46.48 ID:9KsA62Ua.net]
- 本物のcはそんなのじゃないからややこしいよね
- 799 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 10:49:36.80 ID:9KsA62Ua.net]
- 違うね orは || 「または」だね
ごめん
- 800 名前:デフォルトの名無しさん [2015/07/18(土) 10:56:48.34 ID:oprjiCWN.net]
- for(i=0; i<=10; i++)はiは10以下のとき処理
台形括弧内 A or Bは、AまたはBのときループを抜ける、言い換えれば、 AまたはBになったときループを抜けるですか… 書いてくれないとわかりませんよね…後味が凄い悪いです すっきり感もないですし…
- 801 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 11:12:07.27 ID:5OYZKZ4e.net]
- プログラムのコメントにいちいち言語仕様の解説を書けと?
- 802 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 11:41:12.21 ID:42lL/E8Y.net]
- >>788
お前がCで置き換えて勝手に勘違いしただけでしょ
- 803 名前:デフォルトの名無しさん [2015/07/18(土) 12:10:59.83 ID:9KsA62Ua.net]
- >>788
コードは776さんが書いてくれた奴で納得してくれないかな… キミを混乱させたのはor…だよね これ、条件さえ満たせばどっちでもいいんじないかな? &&でも||でも… ごめんね よく分かってないのに口挟んで
- 804 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:03:00.30 ID:ahU+/wSx.net]
- >>760は、780が言うようにループ脱出条件をループ条件と勘違いしてただけだね
すぐ上に同じ記号の始点移動ループがあるのに、そっちは無視してたんかね
- 805 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:05:09.58 ID:nQU9MOUl.net]
- 歴代の困ったちゃんがもし同一人物だとしたらと考えたら…
- 806 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:16:03.17 ID:GGLH3rbf.net]
- そいつさえ叩いてしまえばみんな幸せ
- 807 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:11:23.82 ID:1dCgaP/A.net]
- 他のスレにも>>788みたいなのいたが同じ奴か
- 808 名前:デフォルトの名無しさん [2015/07/18(土) 14:49:18.66 ID:oprjiCWN.net]
- >>791
混乱させたのはorというより、orがあるために「この条件に至るまでは 脱出しない」ってのが読み取れなかったんですよ。 もし一つの条件だと、Cのforと仕様と違うじゃんって分かったんですけどね… どちらか満たせばいいって事に関してはCと流れ図で変わらない、だってorは そういう意味なんだから、ですけど、まぁそれにしてももう少し仕様くらい 描いてほしかったですね… だって流れ図なんて規格ないじゃないですか…、うーん実際の試験では 書いてあったんですかねー、そこらへん分かりませんが、問題の 愚痴っぽくなってすいません
- 809 名前:デフォルトの名無しさん [2015/07/18(土) 14:50:48.31 ID:oprjiCWN.net]
- >>789
試験ってそういうもんじゃないですか? というかもしかしたら表紙に書いてあるかもしれませんね FE受けたときは最初らへんのページに書いてありましたから
- 810 名前:デフォルトの名無しさん [2015/07/18(土) 14:51:50.75 ID:oprjiCWN.net]
- >>791
いや脱出するための条件なら&&はダメかと…
- 811 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:53:45.90 ID:nQU9MOUl.net]
- やっぱり同一人物だろこいつ。
「俺は理解してないけど間違ってない!!」ってところが毎回同じ。
- 812 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:56:38.69 ID:5OYZKZ4e.net]
- 情報処理試験受けたことがあるのに流れ図のJIS規格の存在知らんとか
- 813 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 19:06:36.82 ID:9ORWa3DX.net]
- 流れ図って大正だろ。昭和の頃には廃れてたぞ。
- 814 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 20:11:14.44 ID:kyfBrlqO.net]
- >>801
お前、幾つだよ w
- 815 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 21:00:52.98 ID:t59zGKRm.net]
- リレーとか真空管でロジック組んでた人かな?
- 816 名前:デフォルトの名無しさん [2015/07/18(土) 21:55:25.96 ID:SEYwYF1P.net]
- 日本の潜水艦はリレーやタイマーがむき出しでついてるよね。
あれは攻撃を受けたときに自力で修理して動き続ける決意の表れだと思います。 実際に乗らない上層部の決意!
- 817 名前:デフォルトの名無しさん [2015/07/18(土) 21:58:23.97 ID:SEYwYF1P.net]
- 日本同様潜水艦運用歴の長いドイツはグラスコクピットだけど、どっちが実戦で強いだろうか。
- 818 名前:デフォルトの名無しさん [2015/07/18(土) 22:00:06.32 ID:SEYwYF1P.net]
- ちなみに電子化が進んでいるとはいえドイツも配管やバルブは剥き出しです。
- 819 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 22:01:53.95 ID:5OYZKZ4e.net]
- リレーだったらラダー図だろう…
- 820 名前:デフォルトの名無しさん [2015/07/18(土) 22:14:10.73 ID:akb2I6pr.net]
- windowsでstdoutで文字を表示するプログラムを作って
別のプログラムでコマンドライン引数を表示するプログラムを作ったんですが パイプでつなぐことができません。 argcの数が1で自身のフルパスしか表示されません。 a1 | a2 ってコマンド打ちました。 a1文字表示プログラム a2引数受け取って表示するプログラム stdin,stdoutの考え方が間違ってる?
- 821 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/18(土) 22:17:47.69 ID:DL93D/kr.net]
- >>808
コマンドライン引数と標準入出力は直接は関係ないよ
- 822 名前:デフォルトの名無しさん [2015/07/18(土) 22:29:39.72 ID:akb2I6pr.net]
- >>809
windowsのコマンドのオプションはコマンドライン引数で受け取ってるっとおもってました。 関係ないものなんですね。スッキリしました。ありがとうございます。
- 823 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 22:46:09.77 ID:pJsO7K4C.net]
- え?
- 824 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/18(土) 23:09:08.42 ID:DL93D/kr.net]
- 標準入出力は勝手に開かれ、勝手に閉じる。
リダイレクションによって標準入出力のターゲットが切り替わる。 コマンドライン引数のファイルを開くのがfopen,freopen。
- 825 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 23:11:38.06 ID:zUetklfC.net]
- コマンドラインでのパイプってのは
プログラム a1 の標準出力(stdout) を プログラム a2 の標準入力(stdin) に連結する操作 手入力するんじゃなく、「プログラムa1の出力結果」を入力にしちゃうわけ
- 826 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 23:16:07.64 ID:zUetklfC.net]
- 補足
パイプの動作は a1 の出力を a2 起動時の引数に並べるわけじゃないよ
- 827 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 23:21:54.07 ID:Oy2k4qUz.net]
- 本当は理解してて痛い質問者を装ってるようにしか見えんわ。
- 828 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 23:26:27.90 ID:oDsD2wef.net]
- com1 | com2
Winは知らないけど、Linuxではパイプラインでつないだ、 コマンド1・2は別のプロセスで、 標準入出力を使って、データを受け渡しているだけ PowerShellの関数なら、 関数名 param1 param2 のようにすれば引数となり、 シェル変数 $args[0] などで参照できる $ary = ls -File c:\scripts\*.* -include *.txt,*.log 一方、コマンドではこのように、 特定のディレクトリ内のファイルで、特定の拡張子のもの、 のようにオプション指定をするので、引数は使わない
- 829 名前:デフォルトの名無しさん [2015/07/19(日) 00:12:11.51 ID:eFeTA1Y7.net]
- id変わってると思いますが>>808です。
みなさん色々説明して下さってありがとうございます。 痛い質問者装ってるわけではありません。 本当に勉強中の者です。 >>814さんの補足のようにa1の出力をa2の引数にできると思ってました。 ここが根本の勘違いのようでした。 お騒がせしてすみません。
- 830 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 00:24:43.98 ID:5PwANh2+.net]
- >>815
なにが楽しくてんなことやってんだろな 死ねばいいのに
- 831 名前:デフォルトの名無しさん [2015/07/19(日) 00:31:48.87 ID:5PwANh2+.net]
- >>817
痛い質問者ってのは頭も性格も悪い >>796のこと
- 832 名前:デフォルトの名無しさん [2015/07/19(日) 00:36:32.15 ID:eFeTA1Y7.net]
- >>819
自分の質問の間に書かれてたので自分の事かと思いました。 わざわざありがとうございます。
- 833 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 16:54:58.11 ID:+63DwPcF.net]
- C言語で配列は0から始まりますが、実際に扱うデータの番号は1からが多いので
そういう場合配列も1から始めたほうが良いんでしょうか? ずれてしまうのはやはり厄介だと思います。それでも0から始めたほうがいいなら そのメリットなど教えてください。
- 834 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 17:26:04.90 ID:egOXVksg.net]
- 言いたいことが分からん
a[0]を未使用のまま 1個分無駄にしてメモリ使用したいというのならそうすればいい ただし変なおぼえ方をして「ボクはC言語使えます」とか言ってたら蹴飛ばされる メリットがわからないなら「そもそもCを使うべきかどうか」から疑った方がいい
- 835 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 17:28:54.54 ID:egOXVksg.net]
- おっと大事なことをいい忘れていた
Cの隠れた前提として コンピュータに楽をさせるために人間様が苦労を厭わない というのがある。イヤなら他を探すべき
- 836 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 20:19:42.77 ID:SgxJVovQ.net]
- >>821
どうぞご自由に。 いずれ自分でわかるときがくると思う。
- 837 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 20:44:13.20 ID:wG1rbxp8.net]
- データの番号(というのが何物かわからんが)と配列のインデックスは、同じ整数同士であっても
意味が違うんだということを明確にしていればどっちでもかまわんだろう。
- 838 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 21:17:13.15 ID:AxVShlkv.net]
- CはOS(Unix)を書くために設計された言語なので、
データに(数学の慣例に従い)1で始まる序数を付けるという概念的な美しさよりも アドレス+オフセットでデータをポイントする(もしくはアドレスそのもの=ポインタで直接ポイントする) という計算機のアーキテクチャが透けて見えるメリットを優先したということだと思う
- 839 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 22:10:06.74 ID:gF+ri5Ym.net]
- どうしても1から始めたい、無駄なコードやメモリは使いたくないのであれば
他の言語あたったほうがよろしいかと
- 840 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:47:44.97 ID:joK6s3J+.net]
- 自然数が0から始まらなかったら、集合論がやりにくいだろうが
- 841 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:22:51.94 ID:P/gUAIjL.net]
- >>828
ちょっ集合論の公理から1+1=2を証明する人でつか
- 842 名前:デフォルトの名無しさん [2015/07/20(月) 03:26:56.43 ID:LmmOYuiW.net]
- 自然数は1から
- 843 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:30:37.33 ID:ERLwMp/J.net]
- 自然数を 0 からとする流儀もあるんだよ
- 844 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 06:11:54.78 ID:/eaXeO3L.net]
- どう見ても釣りやろ...
- 845 名前:デフォルトの名無しさん [2015/07/20(月) 08:03:33.48 ID:DyR30667.net]
- よんよんよよん。
- 846 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:56:33.69 ID:Vtqi9X2t.net]
- ヨーロッパでは日本で2階と言ってる階を1階というらしい。
- 847 名前:デフォルトの名無しさん [2015/07/20(月) 20:28:02.59 ID:C1R2wVAq.net]
- >>834
そんなのイギリス英語の基本だろ。
- 848 名前:デフォルトの名無しさん [2015/07/20(月) 20:41:14.80 ID:n95qMHkT.net]
- 何で二階が一階なんですか?
じゃあ一回は二階なんですか?
- 849 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 21:15:51.15 ID:UhiBY71r.net]
- GF 地面と同じ床 −1階
1F 地面から1個上の床 −2階 2F 地面から2個上の床 −3階
- 850 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 21:18:21.00 ID:gdO7FQR/.net]
- GroundFather
- 851 名前:デフォルトの名無しさん [2015/07/20(月) 21:41:43.70 ID:n95qMHkT.net]
- なんだイギリス人は頭悪いのか。
- 852 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 21:48:49.32 ID:4CXi8vOi.net]
- ガールフレンド
- 853 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 21:57:34.42 ID:TvySEdcJ.net]
- 地面が0階じゃないのはおかしいとつねづね思っていた
- 854 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 22:03:37.15 ID:qFejjwvs.net]
- ヨーロッパのエレベータは、地上階が0とかgroud floorのGのボタン表記になってるな
- 855 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 22:28:54.40 ID:AGKnnOa8.net]
- くおえうえーーーるえうおおお(^q^)
- 856 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 22:38:05.03 ID:4CXi8vOi.net]
- >>842
そこはGスポットだから押しちゃダメ
- 857 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 08:45:12.18 ID:0FycKRkr.net]
- >>841
スレが1からスタートしていることに対しても疑問を思うクチですか?
- 858 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 08:56:17.65 ID:F8CwWRVR.net]
- そういや時刻も 0 始まりだな
- 859 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 12:22:44.82 ID:MswFwDh+.net]
- 地上1階と地下1階の間に0階と言えるものは何かありませんか?
- 860 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 13:10:51.08 ID:LE8EkOwN.net]
- それがあるかないかわかったところで、それとcと何の関係があるの?w
- 861 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 13:24:18.33 ID:rxIs9lXh.net]
- 夏休みが始まったと思ったららこれか・・・
- 862 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/21(火) 17:56:41.81 ID:wZ08wKQK.net]
- vec (vector for C language)
https://github.com/katahiromz/vec アンパンマン、新しい顔ができたよ!!!
- 863 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 18:10:44.86 ID:rxIs9lXh.net]
- まともな作品紹介もできない時点でアウト、小学生の方がまだマシだな。
夏休みに入った新入学生に尊敬してもらいたいのかな? 犯罪者君
- 864 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 19:53:00.02 ID:Irntfcjb.net]
- 配列からの流れで。
xy平面的な2次元配列の場合普通はどう? D[x][y] or D[y][x] という意味で。 状況によるというのが回答だと思うけど、 俺は今まで全てD[y][x]で書いてきた。
- 865 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 20:19:22.98 ID:Lp0T2eYV.net]
- >>852
状況ってどんな状況だよ 自分ルールは自分で閉じた世界だけにしとけよ
- 866 名前:デフォルトの名無しさん [2015/07/21(火) 22:17:58.94 ID:lFhEB+KC.net]
- 昔、どこかで読んだ本に
「1から始めるのが自然なのに0から始めるのはけしからん」 的なことが書いてあって、可哀想な人だなと思ったことを思い出した。 今なら解る。 多分、「無い」を「0個」と表現するのが許せない人なんだろう。
- 867 名前:デフォルトの名無しさん [2015/07/21(火) 22:40:35.31 ID:ZFydeI54.net]
- 自然界にゼロが存在しないことを証明できたら世界が変わる。
でもゼロが無いことくらい誰でも感覚的にわかってるよね。
- 868 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 23:29:45.43 ID:tYidWCQl.net]
- ゼロという概念は有るじゃん。
- 869 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 23:34:00.23 ID:ykIrCRFz.net]
- >>855
無いっていう言葉使っている時点でゼロの概念を持っているだろ。
- 870 名前:デフォルトの名無しさん [2015/07/21(火) 23:43:07.17 ID:LWWHwaoy.net]
- >>855
1と足し算で、2=1+1がつくれるが。 1と引き算でつくれる1-1が0だ。
- 871 名前:デフォルトの名無しさん [2015/07/22(水) 00:48:02.54 ID:1bYFtsNS.net]
- いや、ちょっと待って。「自然界に」って言ってるんだよ。
いったいどういう意味かなあ。 物質とか現象としてということかなあ。 0は存在しなくても1や2は存在するのだろうか。
- 872 名前:デフォルトの名無しさん [2015/07/22(水) 01:03:30.69 ID:r7y5Ju2f.net]
- 基数交換法で再帰呼び出しを除去することがクイックソートほど重要ではないのはなぜか?
お願いします
- 873 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 01:11:50.52 ID:M/n0+BzS.net]
- >>859
0も1も2も人間が作り出した概念。
- 874 名前:デフォルトの名無しさん [2015/07/22(水) 01:19:33.86 ID:1bYFtsNS.net]
- >>861
そう書いても良かったんだけど当人がどういうつもりだったかを知りたい。
- 875 名前:デフォルトの名無しさん [2015/07/22(水) 03:46:38.65 ID:npJxtfpG.net]
- 0から始まるのは文字コードで0を先に持ってきたせいじゃない?
- 876 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 04:30:31.09 ID:Lt27C2H/.net]
- なんだそりゃ
- 877 名前:デフォルトの名無しさん [2015/07/22(水) 04:36:42.98 ID:npJxtfpG.net]
- まあ基準から+1、+2、+3だからね。
- 878 名前:デフォルトの名無しさん [2015/07/22(水) 05:03:01.96 ID:npJxtfpG.net]
- >>864
コンパイラのこと考えたことないの?
- 879 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 05:13:57.35 ID:GNp+ziID.net]
- またお前か
- 880 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 11:59:40.81 ID:kIeW59ou.net]
- 文字コードは関係ないだろ
- 881 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 17:52:32.56 ID:QdTviyYV.net]
- 宣言以外のa[2]は*(a+2)の別の表現ってだけだから、
配列が0から始まるって言葉自体に違和感がある。 配列の先頭アドレスがaであって、 その先頭アドレスには当然最初の
- 882 名前:要素が入っていて、
次のアドレスには次の要素が入っているというごく自然な表現という感覚しかない。 [] - [ここ壊れてます]
- 883 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 17:59:13.21 ID:yxlux+WS.net]
- 配列の先頭アドレスをポインタに入れた時、常に要素が1から始まるようにしてあると
ポインタも+1してから使わないとバグる そういう目に遭いたいらしいわ
- 884 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 18:11:45.18 ID:8TpaOP4G.net]
- まだ0、1論争かよ。
迷ってんならVbaでも使えよ。 -100でも何でも行けるぞ
- 885 名前:デフォルトの名無しさん [2015/07/22(水) 21:09:43.08 ID:kfPxwJJV.net]
- だからさ、ソースコードと実装は違うから。
- 886 名前:デフォルトの名無しさん [2015/07/23(木) 01:19:55.01 ID:65Ur3bjf.net]
- QZは毎日が人生の夏休み
- 887 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 21:33:06.04 ID:+NRG6mWL.net]
- ぶっちゃけ慣れの問題
どっちでも構わん ただperlみたいに選択できるのは勘弁
- 888 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 23:34:14.60 ID:168Aqn4V.net]
- >>855
言葉遊びに過ぎないし、パラドックスの研究の古いテーマじゃん。 その理屈だと、1や2も「存在」はしない。
- 889 名前:デフォルトの名無しさん [2015/07/24(金) 00:30:41.05 ID:waPr5lt7.net]
- >>874
配列とコレクションの違いが分からないようではダメ。
- 890 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 01:52:04.39 ID:IyIFnxBR.net]
- >>876
何言ってるんだ?
- 891 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 06:50:29.62 ID:26mYiG3x.net]
- 配列は、単にメモリ上に連続で確保された変数の集まり。
配列それ自体は、自分自身の要素数の情報を持たず、アドレス(ポインタ or 添え字)を経由しないと任意の要素にアクセスできない。 ましてや、先頭番地の情報など持っているはずもない。配列名は先頭要素の別名に過ぎない。 ここまで言えば、コレクションとの違いもわかるだろ。
- 892 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 08:51:49.66 ID:U7biJhIK.net]
- そんな事はわかってるんだが…
何を言っているのかわからないっていうのは、>>874に対して>>876と言う、的外れとしか思えないレスをしていることに対してなんだけど… あれ?もしかして触っちゃいけない人なのかな?
- 893 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/07/25(土) 12:27:26.19 ID:Uks06VJa.net]
- アンパンマン、新しい顔が二つできたよ!!!
lis (singly linked list for C language) https://github.com/katahiromz/lis lst (doubly linked list for C language) https://github.com/katahiromz/lst
- 894 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 15:04:27.61 ID:wTwAcdhU.net]
- 配列名は先頭要素の別名って言い回しはどうかと思う
それだとまるで配列名には最初のデーターが詰まってるみたいじゃないのよさ 配列名にはアドレスしか入ってないのに
- 895 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 17:41:25.81 ID:GU4GIGEf.net]
- 片山博文MZって何者? QZと同じにおいがする
- 896 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 17:44:56.04 ID:bLirGUmg.net]
- >>882
片山先生を知らないなんて完全に潜りだろw
- 897 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 18:44:06.12 ID:6zkZTkly.net]
- 罵倒合戦があったし,片山センセと QZ を一緒にしちゃセンセが迷惑する
ところで camellia はオリジナルのソースから手を加えたの?
- 898 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 21:20:02.61 ID:GU4GIGEf.net]
- >>883
モグリでごめんね? >>884 camelliaは仕様書を読んで一から自分で実装しましたよ。 手直しして今はだいぶ速くなったよ。
- 899 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 14:28:04.79 ID:d9clz1q1.net]
- >>874
なんかバージョン5のいくつあたりかから local $[=1; とかやると怒られるようになっとる 言語仕様がある日突然変わるのがスクリプト言語の醍醐味
- 900 名前:デフォルトの名無しさん mailto:sage [2015/07/27(月) 02:11:37.78 ID:cbxH7i7j.net]
- QZただいま名無し潜伏中
- 901 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/28(火) 16:53:34.62 ID:QJSjRtNV.net]
- アンパンマン、新しい顔ができたよ。
vec2 (fixed block vector for C language) https://github.com/katahiromz/vec2
- 902 名前:デフォルトの名無しさん [2015/07/28(火) 21:07:16.02 ID:vblF84RR.net]
- >>886
怒られるというか、deprecated だね。使えなくなったわけじゃないけど そういうことをしたければ tie しなさいということだね。
- 903 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 23:08:06.27 ID:PqGJhZis.net]
- プログラミングをするなら、Windowsとmacはどちらがいいですか?
- 904 名前:デフォルトの名無しさん [2015/07/31(金) 23:11:51.42 ID:aMEtXk8u.net]
- Windows
- 905 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 23:56:20.21 ID:y5XWVYV7.net]
- >>890
どっちでもいいだろ。 好きな方を選べ。
- 906 名前:デフォルトの名無しさん [2015/08/01(土) 21:25:51.86 ID:jIqrjnfJ.net]
- mallocでメモリ確保する時はサイズの指定をするのに
freeでメモリを解放する時はサイズの指定をしなくてもいいのは何故なんでしょうか?
- 907 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 21:41:16.47 ID:QePJH2WN.net]
- 返されたポインタの前にサイズ他の管理情報を置いているメモリーアロケーターが多い。
こんな感じ struct mem { size_t size; ... char data[]; <==== mallocはこのアドレスを返す };
- 908 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:13:36.30 ID:AlahCyHh.net]
- 扱いなれてる方。
- 909 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:20:16.52 ID:jIqrjnfJ.net]
- >>894
ありがとうございました。 参考書とかには標準関数の使い方の説明はあっても 内部の実装の仕方の説明まではなかなかないので勉強になりました。
- 910 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:32:59.39 ID:mMrs3R6A.net]
- void free(const void *,...);
という実装で二番目の引数を見るという こともありえる鴨。規格外になるかも しれないし、ソースレベルでの互換性が 失われるかもしれないが。 char *p=malloc(1024); free(p); //普通の意味での解放 free(p,256);// pの先頭から256バイト目以降1023バイト目 までを解放
- 911 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:35:23.69 ID:mMrs3R6A.net]
- そういう場合実際には
void _free(const void*,...); #define free(x) _free(x,0) とかしてるんだろね
- 912 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:36:26.78 ID:qeAWL2lY.net]
- >>897
規格外どうのこうのの前に、二番目の引数の有無をどうやって判断するんだよ...
- 913 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:36:50.00 ID:mMrs3R6A.net]
- free(p,256)
ぢゃなくて_free(p,256) だた。スマソ
- 914 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:25:35.49 ID:CYsajC4S.net]
- 例えば、mallocで、サイズを200と指定すると、
アドレス100〜300番地を確保する。 それをプログラムは覚えている 次に、free 100番地と、 先頭アドレスだけを指定しても、 プログラムはサイズも覚えているので、 自動的に、100〜300番地を解放する
- 915 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:27:05.42 ID:oGwoY1R1.net]
- 覚えてるならgetする方法も提供しろよ常識的に考えて
- 916 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:41:09.84 ID:oGwoY1R1.net]
- C/C++はオワコン
ソフトウェアエンジニアリングの仕事ではない Javaやれ
- 917 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 01:01:31.96 ID:7iVchM+h.net]
- え、今更 Java やるの?
- 918 名前:デフォルトの名無しさん [2015/08/02(日) 02:07:49.29 ID:wwgo3D7Q.net]
- >>896
実装なんて分からない。 妄想レスもあるので注意。
- 919 名前:デフォルトの名無しさん [2015/08/02(日) 03:28:18.62 ID:sfcp/621.net]
- >>903
と言ってると、ますます日本のソフトウェア産業が土木工事になります。
- 920 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 08:15:52.14 ID:8TunHJN8.net]
- >>906
実装屋はどこまで行っても実装屋でしかない。
- 921 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:00:03.54 ID:YdYZAVrS.net]
- ユーザーの誤った書き込み操作が行われやすい
場所に重要な情報を置くのは汎用mallocでは あまりやりたくない実装方法 隔離保護された場所にビットマップとかを 置いて(malloc領域を)管理。
- 922 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:04:25.44 ID:SLv/z
]
- [ここ壊れてます]
- 923 名前:Rdd.net mailto: >>908
たかだかユーザーのプログラムにリンクされたライブラリの分際で 「確保保護された」領域を入手できるのか? [] - [ここ壊れてます]
- 924 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:39:58.33 ID:8sAzrEqX.net]
- >>908はそのようなライブラリを自作して使ってるんだろうな。
あの偏屈王DJBでさえ、mallocは自作してなかったのにスゲー。日本の宝。 是非公開して欲しい。 >>909 ページを書込み保護すれば出来る。きっと>>908はそうやっている。 超絶テクニックで、malloc/freeの都度発生する書き込みモードの変更による性能低下は軽く克服してるんだろう。 是非是非公開して欲しい。
- 925 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:49:40.21 ID:SLv/zRdd.net]
- >>910
>ページを書込み保護すれば出来る。 たかだかユーザーモードあるいはユーザーに提供された領域を 書き込み保護をかけるとか,バンバン使われる malloc()/free() ルーチンが重くならないかね?
- 926 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:51:52.46 ID:QpxppfHz.net]
- 実装はOS依存の場合も。
- 927 名前:デフォルトの名無しさん [2015/08/02(日) 10:08:57.20 ID:8sAzrEqX.net]
- >>911,912
そこは偏屈王DJBを楽勝で凌駕する>>908の事だから、凡人には思いつかない超絶テクニックで回避してるに決まっている。
- 928 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:36:02.95 ID:4+/pksin.net]
- >>896
ちょっそれK&R本に実装例の1つが詳細に書かれていた希ガス…
- 929 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:48:48.65 ID:4+/pksin.net]
- ていうかネットに転がってた、
ttp://radlon.github.io/blog/2014/08/25/krmalloc/ K&R malloc!!!!!!!!!!!!!!!11!!!!!!!!1111
- 930 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 15:01:15.98 ID:q/ikqjRA.net]
- しょっぱなからコードのスペルミスかましてたので見るのやめた
- 931 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:33:28.15 ID:q4wUyYJ7.net]
- p[-1]なんかはバグでうっかり破壊しがちだが、
64ビットとアドレス空間のどこかにある ビットマップをうっかり破壊する確率は 比較的低いって話だろ。 ってか >>894 みたいな実装は、古いシステムと組み込み系でしかもう使われていないのでは。
- 932 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:42:19.52 ID:4+/pksin.net]
- >>917
VCでは現役 メモリブロックの管理情報(リンクチェーン)が実データ領域と隣接して存在するからこそ _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); とかでリンクチェーンの破壊を検出できすぐる、 ていうか>>894みたいな実装の代表例がK&R本に書いてあるやつなのであって、 マジK&R本は不磨の大典
- 933 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:44:57.53 ID:4+/pksin.net]
- メモリ破壊系のバグは破壊が起きたタイミングで即検出しないとデバッグがやっかい極まりない話になるので
データ領域でメモリ破壊が起きても動いてしまうビットマップ方式はちょっと…
- 934 名前:918 mailto:sage [2015/08/02(日) 20:51:55.93 ID:4+/pksin.net]
- スマン訂正、ヒープの整合性確認は_CrtCheckMemory()呼び出しでやるんだった;
(もしくは_CrtSetDbgFlag(_CRTDBG_CHECK_ALWAYS_DF)でmalloc()/free()毎に自動チェック) 実データ領域でのメモリ破壊がこれで高い率で検出できる _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); というのはプログラム実行時のリークチェックのやつ
- 935 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/08/02(日) 21:45:05.24 ID:/jG0U/Tz.net]
- C11 gccでインライン関数を分割コンパイルすると、シンボル重複エラーがでるんだが、
どうすればいいか。C++は簡単だった。
- 936 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/02(日) 22:01:40.19 ID:/jG0U/Tz.net]
- やっぱりCでインライン化はやめた方がよかったか
- 937 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 22:33:38.49 ID:fK6YlTvs.net]
- ヘッダファイルにインライン関数を書いて、各ソースから参照するって話ではなくて?
- 938 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 07:14:10.73 ID:PHSALL0j.net]
- 質問です。
printf("Aを入力して下さい >"); scanf("%x",&n); printf("%d",n); このように書いたときに、最後に10が表示されるのですが、なぜでしょうか。 Aが入力されると16進数としてnに格納されると思いますが、 最後にはそれを10進数で出力するので65になるのではないでしょうか?
- 939 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 07:25:47.50 ID:qre9PyEM.net]
- %xなんだから、入力した文字列自体を16進とみなす
A=10, B=11, C=12,,, 例えば、1A とか入力出来るが、どう考える?
- 940 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:03:40.66 ID:PHSALL0j.net]
- >>925
ありがとうございました。納得しました。 「16進数のA」と書いてあったのですがそういうことだったのですね。
- 941 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 21:51:45.27 ID:sGt3KLZv.net]
- C/C++はオワコン
何も新しいソフトウェア技術を取り入れてない オブジェクト指向止まりの化石言語 こんなのにしがみついてたら未来ないよ
- 942 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:26:04.26 ID:0GTb8PhE.net]
- >>927
未来の有る言語を具体的に挙げてみよ
- 943 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:55:02.33 ID:sGt3KLZv.net]
- javascript最強
- 944 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:56:09.34 ID:B7i1Mk8j.net]
- うわぁ・・・
- 945 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 23:19:33.87 ID:8xO+ORV8.net]
- visual basic 最強
- 946 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 23:31:28.33 ID:0GTb8PhE.net]
- >>929
もうちょっと面白い展開を期待した。
- 947 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 01:51:10.39 ID:NqgUCWy0.net]
- >>928
アセンブラ、 無限の可能性を秘めている。
- 948 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 07:15:20.34 ID:RTmVcCCe.net]
- お前らDIもAOPもわかんねえだろ
完全に時代遅れなんだよ
- 949 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 07:17:21.98 ID:Pymojyae.net]
- 0000: JP 0000
- 950 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 07:45:43.98 ID:LuqeIwCC.net]
- HALT
- 951 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 08:18:27.03 ID:s6JmbTZM.net]
- >>931
俺も俺も>>932
- 952 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 13:43:24.15 ID:uyJvzdpF.net]
- >>934
ああ知ってるよ 確か COBOL/2005 がいきなり名前を変えたやつだろ
- 953 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 21:48:55.89 ID:RTmVcCCe.net]
- 大学はWEB系のプログラミングを教えるべき
大学教授が古い人間しかいないから時代遅れの化石言語しか教えられない WEB業界では新しいソフトウェア技術がどんどん出て来てるのに完全に日本は置いていかれている C言語なんて糞言語やる前にもっと危機感を持つべき
- 954 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 21:54:31.44 ID:TJyjY+1J.net]
- そんなことやるのは専門学校だけで十分
- 955 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 21:56:09.13 ID:RTmVcCCe.net]
- 日本のソフトウェア技術が世界と比べて劣っているのは
既得権益にしがみついている時代遅れの大学関係者のせいなのは間違いないね
- 956 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 01:24:04.78 ID:LsDzIRl9.net]
- こんな会社ばっかだから。
ttp://www.geocities.co.jp/Playtown-Dice/3834/KAGE-OL12.jpg
- 957 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 06:48:13.81 ID:D0x4pWwH.net]
- 大学では計算機科学の一般教養としてはSICPをみっちりやればおk
- 958 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 06:53:47.83 ID:D0x4pWwH.net]
- ていうか今ググったらSICPが何かタダで読めるようになっているっぽい
ttp://d.hatena.ne.jp/minghai/20140402/p1 あと副読本として『翻訳系構成論序論』とか、 内容もさることながら翻訳がたいへん味わい深い
- 959 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 07:31:28.76 ID:Ud96BClW.net]
- 和田先生訳の方も公開されてるし、原著も公開されてる。
あと、h抜きは素人っぽいからやめろ。
- 960 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:24:02.24 ID:cYx2D4V+.net]
- >>945
> あと、h抜きは素人っぽいからやめろ。 自称玄人カッケーっす
- 961 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 09:11:04.96 ID:D0x4pWwH.net]
- (ノーコメント)
- 962 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 09:31:28.19 ID:D0x4pWwH.net]
- ていうか素人丸出しの質問のですが、
strtol()の第1引数はconst char*でconst付きなのに、 第2引数はchar**であってconst無しになるなのは何でですか??
- 963 名前:デフォルトの名無しさん [2015/08/08(土) 11:23:27.11 ID:Ud96BClW.net]
- >>946
素人の補集合は玄人じゃない。 補集合は高校数学で学ぶから、中学生はROMってろ。
- 964 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 12:03:47.08 ID:cYx2D4V+.net]
- >>949
> あと、h抜きは素人っぽいからやめろ。 上から目線でアホなこと言ってるから自称玄人って言われてるだけ 最近覚えて使いたかったんだろうけど補集合は関係ない
- 965 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 12:27:31.84 ID:y5hyBra1.net]
- 保守烏合
- 966 名前:デフォルトの名無しさん [2015/08/08(土) 12:44:06.05 ID:Ud96BClW.net]
- >>950
hを抜くバカに対して上から目線は当然。 繰り返すが、中学生は補集合習ってから出直しなさい。
- 967 名前:デフォルトの名無しさん [2015/08/08(土) 12:47:15.24 ID:Ud96BClW.net]
- バカとは、思考能力が欠除してる障害者の総称な。念のため。
- 968 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 13:27:04.14 ID:HVhVW7oy.net]
- >>953
自己紹介乙
- 969 名前:デフォルトの名無しさん [2015/08/08(土) 13:43:02.67 ID:Ud96BClW.net]
- >>954
こりゃまた、h抜きに負けるとも劣らない古参煽り。 ニワカ乙 って、返すんだっけ? 頭悪そう。
- 970 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 13:51:25.58 ID:cYx2D4V+.net]
- かわいそうな奴...
さすが、にちゃん玄人ですね!
- 971 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:04:41.69 ID:1hj8NI9z.net]
- まあなぜhを抜いてるのかを知っている時点でそれなりの年齢のはずなんだけどね
もっと大人にならなきゃいけないよね
- 972 名前:デフォルトの名無しさん [2015/08/08(土) 14:16:31.72 ID:Ud96BClW.net]
- >>956
補集合習ってから出直せと言ったはずだぞ。中学生。
- 973 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:43:13.18 ID:cYx2D4V+.net]
- >>958
で、どれとどれが補集合じゃないって言ってるんだ? 書いてみ w
- 974 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:48:59.02 ID:1hj8NI9z.net]
- 素人の補集合≠玄人
って書いてあるじゃん なんか低レベルすぎる争いが楽しそうなので混ぜて
- 975 名前:デフォルトの名無しさん [2015/08/08(土) 14:56:08.54 ID:Ud96BClW.net]
- >>959
まだ、習ってないことを無理して理解しなくても良い。
- 976 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 15:17:48.69 ID:cYx2D4V+.net]
- >>960
h抜きしない奴は玄人って言ってるわけじゃないぞ 低レベルの話にもついてこれないなら割り込んでくるなよ... >>961 はい、逃げた w
- 977 名前:デフォルトの名無しさん [2015/08/08(土) 15:34:58.60 ID:Ud96BClW.net]
- >>962
補集合を知らないことを、そんなに必死でアピールしなくて良いよ。中学生。
- 978 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 17:48:46.64 ID:cYx2D4V+.net]
- >>963
>>959 にレスできないチキン w
- 979 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 17:55:19.32 ID:Gxm0vaAV.net]
- プログラマー目指してる大学生なんですけど、優秀な趣味プログラマーでも
長年仕事でプログラミングしてる平凡なプログラマーに負ける事っていったら 何ですか? どんだけプログラミングしてても実務で培われるものってあるじゃないですか そういうのが知りたいです。ちなみに僕は優秀でもなんでもない趣味プログラマですw
- 980 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:03:00.86 ID:1qUf1CZr.net]
- このままいつもの人まで出てきてスレを
使いきる気かよ
- 981 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:08:16.54 ID:D0x4pWwH.net]
- >>965
ようわからんが仕様と検証と納期に対してどんだけシビアになれるかの違いじゃないの
- 982 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:13:42.89 ID:D0x4pWwH.net]
- >>965
併せて工数は予算内に、 ていうか>>948の回答も誰かよろしくなのデス… パーサを作るときにstrtol()の第1、第2引数のインターフェースを真似た関数をしばしば作るのですが、 第2引数をconst付きにしなくていいのか今も悩み中、 あと>>944の結びは「翻訳もカッケーぃ☆」としとけば完璧だったorz
- 983 名前:デフォルトの名無しさん [2015/08/08(土) 19:04:38.81 ID:Ud96BClW.net]
- >>964
心配すんな中学生。クラスの平均以上の学力あって、補集合習えばわかるようになるから。 >>968 中学生弄ってて回答した気になってたわ。第2引数がconstじゃないのは、const char **にはchar **も渡せる。 すなわちhoge(const int); 以下の意味しかないが、それでもconstつけたいならつければよい。
- 984 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 19:50:59.65 ID:D0x4pWwH.net]
- >>969
ちょっ>>948のは、現実のstrtol()の第2引数はchar**でconst char**を「渡せない」んだけど何か理由有り? という質問のですが… ぶっちゃけ説明不足だったかもしれないので今から説明すると、strtol()の第2引数がchar**である結果、 次のコードの変数endをconst付きにできず、万が一[A]の行が紛れ込んでもコンパイル時にwarningにならないという、 long foo(const char* str) { /*const*/ char* end; /* ←左のconstのコメントアウトを外すとエラー*/ long val = strtol(str, &end, 10); *(end - 1) = '*'; /* [A] 上の結果、strを書き換えるコードが合法に… */ return val; } このような事故は、strtol()の第2引数がconst char**でありさえすれば防げるのですが、そうなっていないのは何故…!?という疑問 あと引数の型const char**に対し、char**型変数を渡せるというのは真実としていかがなものかと…(VCだとエラーになる
- 985 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:17:04.90 ID:Ud96BClW.net]
- >>970
それをstrtolのプロトタイプで防止しようとするのが間違い。 第2引数がconstであっても、 char *endptr; strtol("123x", &endptr); はエラーではない。 > あと引数の型const char**に対し、char**型変数を渡せるというのは真実としていかがなものかと…(VCだとエラーになる ここはCのスレだよ。C++ならエラーだろうね。
- 986 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:27:38.50 ID:D0x4pWwH.net]
- >ここはCのスレだよ。C++ならエラーだろうね。
ほんまや(゜д゜)!Cだとconst char** end;でエラーにならない はずかC〜(*ノノ
- 987 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:43:42.60 ID:cYx2D4V+.net]
- >>969
補集合でどや顔してるけど、補集合関係ないことは理解できないんだな 関係あるならちゃんと説明できるよね? w
- 988 名前:デフォルトの名無しさん [2015/08/08(土) 20:45:16.30 ID:Ud96BClW.net]
- >>973
高校で習うまで我慢してなさい。中学生。
- 989 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:58:55.89 ID:1hj8NI9z.net]
- 結局const char**じゃないのはなぜなのかは解答ないのね
- 990 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:05:28.11 ID:Ud96BClW.net]
- constにする事に意味が無いからと答えたが。
- 991 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:15:13.37 ID:cYx2D4V+.net]
- >>974
もう逃げきりを図ろうとしてるのはみえみえ >> あと、h抜きしない方が玄人っぽいよ > 自称玄人カッケーっす ってなってたらこいつどう言うんだろうな w
- 992 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:21:07.53 ID:1hj8NI9z.net]
- const char**にしてもchar**が渡せるから意味がないってのか
じゃあconst char*にしてもchar*が渡せるからそれも意味がないんですね じゃあ引数につけるconstなんて全て意味がないんですねわかります
- 993 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:37:14.26 ID:D0x4pWwH.net]
- >>978
const char*にキャスト無しでchar*を代入することはC言語でも非合法だからその噛み付き方は無いわ〜
- 994 名前:979 mailto:sage [2015/08/08(土) 21:39:27.65 ID:D0x4pWwH.net]
- 反対だったorz、
char*にconst char*を代入するのはC/C++ともにNG char**にconst char**を代入するのはCだとOK、C++ではNG
- 995 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:44:06.68 ID:Ud96BClW.net]
- >>977
補集合習えばそれもわかるようになるよ。
- 996 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 22:04:53.22 ID:Ud96BClW.net]
- >>978
意味ないだろ。 void hoge(const char **p) { static const char s[]
- 997 名前: = "alb";
*p = s; } void hage(void) { char *p; hoge(&p); *p = 0; } [] - [ここ壊れてます]
- 998 名前:!rebuild:age mailto:sage [2015/08/08(土) 22:13:50.40 ID:9YQ92kuf.net]
-
- 999 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 22:21:53.19 ID:1hj8NI9z.net]
- strtolの第2引数にconstが無いのはあってもなくても意味がないからなんかじゃなく
strtolがconstをつけるかどうかを判断する箇所ではないから制約にしていないだけ 第1引数につくconstはstrtolの内部ではポインタ先の実態を変更しないということを示す strtolの中の操作を制限するという意味になるのでそう実装していることを使用者に示している 第2引数の先頭にconstをつけるかどうかに対応するのは 第1引数に渡される文字列自身がconstなのかどうか そしてそれはstrtolの関与する部分ではない >>970のようにconst文字列を渡す前提ならconstがあっても問題ないが constじゃない文字列を渡して変換できなかった箇所を起点に文字列を変更することも考えられる するともし第2引数にconstがついていると(やらなくてもコンパイルできるかどうかは置いておいて)constからconstなしへのキャストをすることになる
- 1000 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 00:33:45.74 ID:ofrSttk1.net]
- 次スレおね
- 1001 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 04:54:16.32 ID:ofrSttk1.net]
- まだーー
- 1002 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 05:52:26.39 ID:h6XvpjyR.net]
- >>978
あっても無くても意味が無いなんていう事じゃ無い。 constは呼び出し先での制約であり、呼び出し側を制約する事はできない。 ので、意味が無い。
- 1003 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 06:48:44.91 ID:TarQJqGz.net]
- >>981
もうその返ししかできないんだな恥ずかしすぎるわ w
- 1004 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 07:09:46.99 ID:TarQJqGz.net]
- 次スレ
C言語なら俺に聞け(入門編)Part 130 peace.2ch.net/test/read.cgi/tech/1439071526/
- 1005 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 08:32:59.69 ID:i0YjHh3P.net]
- const ついてれば、(その関数内で参照先を)書き換えするつもりはないよ とわかるけど
ついてない場合はどっちともとれるから中途半端よねぇ
- 1006 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 08:44:02.42 ID:uP4RKIW6.net]
- >>989
乙乙乙
- 1007 名前:デフォルトの名無しさん [2015/08/09(日) 09:09:30.47 ID:Mf04DnbC.net]
- >>988
補集合理解してれば >> あと、h抜きしない方が玄人っぽいよ こんな発言はしないから。キミの妄想は実現しない。 頑張って補集合勉強しろよ。
- 1008 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:07:05.43 ID:UBu5K04W.net]
- 高校レベルで学ぶ集合論は集合論のうちに入らぬ、
前提命題 XはURLをh抜きで書く→Xは素人である ( = ¬((XはURLをh抜きで書く)∧¬(Xは素人) ) から XはURLをhを抜かずに書く→Xは玄人である ( = ¬(¬(XはURLをh抜きで書く)∧¬(Xは玄人) ) という命題を導くためには、 { 素人 } ∩ { 玄人 } = φ (排中立) が成立せねばならないぬが、{ 素人 } ∩ { 玄人 }が無限集合である以上、 演繹系を無限集合の排中律を認めるやつに固定せねば妥当な演繹にならない
- 1009 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:10:28.22 ID:TarQJqGz.net]
- >>992
>>988 ループつまんね
- 1010 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:16:29.21 ID:QKRToHAT.net]
- out引数の型のconstが意味ないとかいう人の設計はすごい言語に依存しまくったものになってそう
- 1011 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:18:03.07 ID:UBu5K04W.net]
- >>995
C言語でおk
- 1012 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:22:58.14 ID:QKRToHAT.net]
- そのうちx86では呼び出し規約が○○だから××という前提
とかアーキテクチャにまで依存し出したりするからそういう考え方は根絶やしにしたい
- 1013 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:18:15.91 ID:9Ej9Po2R.net]
- >>993
>>(排中立)→「排中律」 『広辞苑』には、「排中原理」と書いてある。この方がもっと分かりやすいかも
- 1014 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:31:16.30 ID:QKRToHAT.net]
- >{ 素人 } ∩ { 玄人 }が無限集合である以上
これは自明なの?
- 1015 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:41:47.48 ID:855SMF2a.net]
- >>995
> out引数 ようやくそこに言及する人が出てきたか
- 1016 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
- 1017 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|