18/03/13 19:35:09.64 WMMjj2eHM.net
聞く耳持たんらC
449:デフォルトの名無しさん
18/03/13 20:04:26.12 /ChP+Vc3M.net
突っ込まれて遁走だろ w
450:デフォルトの名無しさん
18/03/14 02:09:35.30 IiyiuIPr0.net
ここで幾ら議論してもC言語は変わらない。
Cから派生した言語を新たに作るというのであれば議論することには意味があるだろうが、そうでないならそれはただの愚痴だ。
451:デフォルトの名無しさん
18/03/14 06:44:38.33 4nqAllCK0.net
おまえさあCの例外処理が言語のビルトインとか思っているわけ?
Cは変わらないとか言っちゃってるけど、
その現状のCがわかってないのに変わったかどうか気付けるのか?
452:デフォルトの名無しさん
18/03/14 07:02:59.95 M7iHvccR0.net
一応errnoだったかっていう、失敗理由を示す変数がある事はある。忘れられてるけど。
C言語で唯一トラブルシューティングに使える変数。
453:デフォルトの名無しさん
18/03/14 08:03:51.30 ylQhqnt4M.net
>>436
> その現状のCがわかってないのに
お前だけだろ w
>>437
ライブラリレベルの話を入れるかどうかは悩ましいな
普通の言語なら入れなくてもいいと思うがC言語にはsetjmp/longjmpなんて言うとんでもないものもあるからなぁ
454:デフォルトの名無しさん
18/03/14 08:15:23.77 4nqAllCK0.net
errnoだってwww あれが例外処理なのか
setjmpがどうとんでもないのか具体的には言えないんだろうな
だから聞かない
455:デフォルトの名無しさん
18/03/14 08:25:02.15 M7iHvccR0.net
>>439
大域ジャンプするとエラー処理したところが戻ったりして変数グチャグチャになることがあるからな。
まぁ、C++の例外も大域ジャンプだし。個人的には使わないな。
古き良き-1やら_boolであきらめる方が精神的には良い。
んで、趣味位のケースなら正常系だけ書いておけば大体問題ない。
エラー系は大体ロジックエラーだからデバッグで落とす。
456:デフォルトの名無しさん
18/03/14 08:29:46.90 ylQhqnt4M.net
>>439
> setjmpがどうとんでもないのか具体的には言えないんだろうな
他の言語でライブラリレベルで実装してる例はないから
まともな頭があれば理解できるはず
457:デフォルトの名無しさん
18/03/14 08:31:33.24 6wuH32OAd.net
高級アセンブラの名前は伊達ではないよね。
458:デフォルトの名無しさん
18/03/14 08:32:17.72 M7iHvccR0.net
あれジャンプじゃなくて、スタックロールバックだからな。どっちかっていうとリセットの類。
他の言語でこれは実装できない。というかやりたくはないだろう。
459:デフォルトの名無しさん
18/03/14 08:35:45.72 M7iHvccR0.net
大域ジャンプ+動的メモリアローケート。あぁおそろしい。
なので、大域ジャンプはやめましょう。
460:デフォルトの名無しさん
18/03/14 08:37:30.11 ylQhqnt4M.net
>>440
> 大域ジャンプするとエラー処理したところが戻ったりして変数グチャグチャになることがあるからな。
それはお前の能力が足りないだけの話だろ w
> まぁ、C++の例外も大域ジャンプだし。
C++はデストラクタとかの処理も要るからライブラリレベルでは実現できない
そう言う処理を全てプログラマに押し付けられるC言語だからできるってことでもある
461:デフォルトの名無しさん
18/03/14 08:41:34.04 M7iHvccR0.net
>>445
あーすげー。この人、他人がいじった変数全部把握してるんだな。すげー。
メモリ確保したのなかったことになっても正常系に戻せるんだな。
超人か!!
462:デフォルトの名無しさん
18/03/14 08:45:22.60 M7iHvccR0.net
C++のクラス機構をライブラリで実装するときは、構文糖入れたりとか、イベントモデル入れたりとか。
エネルギーばかりかかって収穫がない。
463:デフォルトの名無しさん
18/03/14 09:25:24
464:.96 ID:ZphqLecba.net
465:デフォルトの名無しさん
18/03/14 09:28:14.80 ooB4nY3v0.net
Cにだって例外処理はある。
でもそれって、CPUの例外割り込みの事だけどね。
あー結局言語仕様じゃ無いじゃんw
466:デフォルトの名無しさん
18/03/14 09:29:50.23 ZphqLecba.net
>>449
ほら。ないよな?
467:デフォルトの名無しさん
18/03/14 09:32:49.61 ZphqLecba.net
割り込みっていうならシグナルがあるがしかしOSの問題だよな?
てか標準じゃないか。それにシグナルのために特別な言語仕様が作られてもいない。
468:デフォルトの名無しさん
18/03/14 09:35:13.20 ooB4nY3v0.net
所詮Cは高級アセンブラだからなぁ
469:デフォルトの名無しさん
18/03/14 10:19:21.23 4nqAllCK0.net
>>441
現状のCの話じゃなかったのか?
なんで他の言語が出てくるんだ
俺はてっきりsetjmpの仕様がとんでもないと言っているのかと思ったが
実装方法がとんでもないと言っているのか?
あれか動作保証のないマイクロ診断命令でも使っていると言いたいの?
470:デフォルトの名無しさん
18/03/14 10:20:28.21 4nqAllCK0.net
>>448
言語を定義する規格票が定義しているライブラリのことだよ
まさか知らんのか?
471:デフォルトの名無しさん
18/03/14 11:44:11.11 jowRUKsS0.net
何やら雰囲気が悪くなってるように感じるけど、カレンダー絡みかな。
472:デフォルトの名無しさん
18/03/14 12:08:39.92 L/3+Hz1H0.net
やたら突っかかってくるやつを構ってやっているだけだが
473:デフォルトの名無しさん
18/03/14 12:22:56.52 e7inwI4na.net
>>454
知らんなあ。Cの例外処理ってなんなの?
474:デフォルトの名無しさん
18/03/14 12:24:13.25 y6ADsCAy0.net
ここは遊び場ではありません
475:デフォルトの名無しさん
18/03/14 12:52:15.53 L/3+Hz1H0.net
>>457
そうか、知らんのか
じゃあ話にならんな
476:デフォルトの名無しさん
18/03/14 12:53:42.74 e7inwI4na.net
>>459
何のことなのかぜひ書いてくれ。
477:デフォルトの名無しさん
18/03/14 12:53:55.90 L/3+Hz1H0.net
人の話の腰を折ることに専念せざるを得ない防戦一方なつまらんやつ
478:デフォルトの名無しさん
18/03/14 12:55:02.45 L/3+Hz1H0.net
>>460
おまえ、そこで3回まわってワンといえ
書いてやるかも知んねーからw
479:デフォルトの名無しさん
18/03/14 12:55:16.50 x85VLsABM.net
>>446
むしろそう言うのを把握せずにどうやってプログラム組んでるんだよ?
動けばラッキーってか? w
480:デフォルトの名無しさん
18/03/14 12:58:38.88 x85VLsABM.net
>>453
> 現状のCの話じゃなかったのか?
> なんで他の言語が出てくるんだ
どんだけ理解力がないんだよ...
> 俺はてっきりsetjmpの仕様がとんでもないと言っているのかと思ったが
> 実装方法がとんでもないと言っているのか?
だから他の言語ではライブラリでは実装しづらい機能って話な
> あれか動作保証のないマイクロ診断命令でも使っていると言いたいの?
背伸びしてマイクロ診断命令とか言い出すとか w
481:デフォルトの名無しさん
18/03/14 13:00:11.52 e7inwI4na.net
もしやこんなやつの事を言ってるのか?
URLリンク(d.hatena.ne.jp)
482:デフォルトの名無しさん
18/03/14 13:02:30.29 e7inwI4na.net
自作関数からのlongjmp()利用するなら似たようなものは作れるが、それは言語レベルで例外処理をサポートしている状態とは違う。
483:デフォルトの名無しさん
18/03/14 13:02:58.32 e7inwI4na.net
>>462
言ったぞ。早く書け。
484:デフォルトの名無しさん
18/03/14 13:04:49.57 e7inwI4na.net
あ、関係ないけどホーキング博士が死んだという速報が入った。
485:デフォルトの名無しさん
18/03/14 13:35:20.49 M7iHvccR0.net
>>463
大域ジャンプなんぞつかわんので。GOTOくらいは使うけど。
戻った変数と戻ってない変数把握するの無駄すぎる。
んで、どうやってって関数かくときにifで入力要件位書くだろ。無駄な引数減らしたりとか。
486:デフォルトの名無しさん
18/03/14 13:43:20.07 Ul+PcfeA0.net
HDLCの状態遷移を大域jump無しで書くのは大変だろうなぁ
487:デフォルトの名無しさん
18/03/14 13:48:42.43 M7iHvccR0.net
さぁ、未経験だからね。
488:
18/03/14 14:09:18.81 J4jCJ0kF0.net
>>468
うん、確認した
489:デフォルトの名無しさん
18/03/14 14:51:40.09 L/3+Hz1H0.net
>>467
そんな約束してねえぞゲーハー
490:デフォルトの名無しさん
18/03/14 14:54:07.64 L/3+Hz1H0.net
>>469
gotoじゃなくGOTOね
491: Cに限らない一般論ということだな しかしlongjmpやthrowなんか大域ジャンプだろ おまえさんはそう思わないのか?
492:デフォルトの名無しさん
18/03/14 15:26:30.92 2cAisCwCF.net
>>452
それな
Cのソース書きながらアセンブラのソースが思い浮かぶ
493:デフォルトの名無しさん
18/03/14 17:04:58.74 buZ+p9lOa.net
>>473
早く書けよ。こっちゃあ昼からずっと回ってワンワン言いっぱなしなんだからよ。もう千回ぐらい回ったぞ。
494:デフォルトの名無しさん
18/03/14 17:08:34.94 L/3+Hz1H0.net
>>476
よかったな
ほら、もう1000回
# アホ
495:デフォルトの名無しさん
18/03/14 17:14:31.52 buZ+p9lOa.net
他の人でこいつの言うことわかってるやつ居るのか?
496:デフォルトの名無しさん
18/03/14 17:24:39.97 L/3+Hz1H0.net
犬に邪魔されて説明どころではない状態だからなあ
497:デフォルトの名無しさん
18/03/14 18:08:46.89 m9sKyebjH.net
情報持ってるふりして出し惜しみするのがマウンティングの基本
498:デフォルトの名無しさん
18/03/14 18:24:47.12 2cAisCwCF.net
朝日新聞ですねわかります
499:デフォルトの名無しさん
18/03/14 18:29:37.08 L/3+Hz1H0.net
煽れば出ると本気で思っているならやってみな
この程度の話、マジこの程度にも付いて来れないアホの泣き声は物笑いの種だぜ
500:デフォルトの名無しさん
18/03/14 18:30:37.68 uMO7yRavM.net
>>469
無駄じゃねーよ、把握しろ
把握しやすく設計するのも能力のうち
501:デフォルトの名無しさん
18/03/14 18:32:36.61 uMO7yRavM.net
>>480
持ってるふりすらできてないだが...
どうみてもいっぱいいっぱいやん w
502:デフォルトの名無しさん
18/03/14 18:41:41.61 buZ+p9lOa.net
ま、どうでもいいから>>436で書いたC言語の例外処理についてどういうものなのか書けよ。
503:デフォルトの名無しさん
18/03/14 18:52:07.48 L/3+Hz1H0.net
>>485
それよりあと1000回だぞ
急がないと日付が変わっちまうぞw
504:デフォルトの名無しさん
18/03/14 19:21:46.36 buZ+p9lOa.net
わかったわかった。もう書かなくていいよ。かわいそうなやつだな。合掌。
505:デフォルトの名無しさん
18/03/14 19:45:37.85 IogLKo4e6.net
ID:L/3+Hz1H0に構うな
506:デフォルトの名無しさん
18/03/14 21:53:59.94 L/3+Hz1H0.net
収穫ゼロで引き下がる、みじめなヤツw
507:デフォルトの名無しさん
18/03/15 06:38:35.49 z1/gBAj5d.net
Cでエクセルの指定シートだけテキスト化できます?
508:デフォルトの名無しさん
18/03/15 07:11:47.68 .net
>>490
できますん
Excelがインストールされている環境で動かす前提であれば
COMコンポーネント (Microsoft Excel Object Library) を使えばいいが
C++じゃないとダメかも
自前でExcelフォーマットを解析して変換することも
膨大な工数を費やせば理論的にはできるだろうが
現実的には選択肢に入らないな
xlsx限定ならまだ楽かも知れんが
Excelを扱う部分は他の言語で開発してCからはそれを呼び出すのが普通かな
509:デフォルトの名無しさん
18/03/15 07:16:10.04 BwZLx9bwM.net
>>490
できるけど結構面倒だよ
ところでなんでC縛りなの?
なんかの苦行とか?
510:デフォルトの名無しさん
18/03/15 07:53:33.32 /GlmcHqY0.net
Cにあっていると思う
バイナリを呼んでキャストして
キャスト後も分岐ルートが色々あって
構造体はほとんど可変長
細かいものを組み上げるのは、たぶん Cが最適
511:デフォルトの名無しさん
18/03/15 09:54:54.80 W95zVRhkp.net
FIFO(名前付きパイプ)で、大量データを分割して送受信したいです。
送信側
---------------------------
buff=malloc(datalen);
len=512;
pos=0;
do{
w=write(fifo,buff+pos,len);
pos+=w
datalen-=w
len=datalen < 512 ?
512: datalen : 512 }while(0<datalen) --------------------- こんなんでok?
513:デフォルトの名無しさん
18/03/15 10:35:33.07 v5sVsR9k0.net
・最初に飛び込んでくる段階で datalen が 分割サイズ(512) より小さい時の考慮
(ループ中と同じ記述で良いのでは?)
・書けなかった時(w=0 だったとき) の脱出をケアする
ぐらいでしょうか
514:デフォルトの名無しさん
18/03/15 10:45:14.98 lf1N2aO70.net
SIGPIPEで死ぬぽ。
515:デフォルトの名無しさん
18/03/15 10:49:38.59 c+umNtGLp.net
マジックナンバー使うな。
516:デフォルトの名無しさん
18/03/15 11:01:51.80 OczprsBK0.net
>>496
シグナルは悪い文明! 粉砕する!
517:デフォルトの名無しさん
18/03/15 12:00:46.26 .net
>>494
実用的にするなら非同期送受信でいろいろケアしたほうがいいけど
学習用とか数人で使うテストツールとかならいいんじゃね?
518:デフォルトの名無しさん
18/03/15 12:19:33.36 KGbgKLI3a.net
>>494
エラー処理が抜けてる。
519:デフォルトの名無しさん
18/03/15 12:21:39.25 KGbgKLI3a.net
>>496
そうそう。しかしその辺はOSや接続先によって違うかも。
520:デフォルトの名無しさん
18/03/15 16:10:59.70 CR6uT/FI0.net
>>494
これの受信側read()のコードを求むm(__)m
521:デフォルトの名無しさん
18/03/15 16:16:36.38 umqIWKjV0.net
【守銭奴】 株・FX・トレーダー <キリスト"再臨″> 史上初テレパシー演説 【救世主】
スレリンク(liveplus板)
522:デフォルトの名無しさん
18/03/15 17:42:18.79 v5sVsR9k0.net
プロトコルなんか無しに来たものを読みきるだけの話なら
allocsz = blocksz = 512
buff = malloc(allocsz);
use = 0;
for (;;) {
w = read(FIFO, buff+use, allocsz-use);
if (w == 0) { /* もう来ない */
break;
} else if (w > 0) {
use += w:
if (use >= allocsz) {
// 器が尽きた
allocsz += blocksz;
buff = realloc(buff, allocsz); // 手抜きで realloc
}
} else { /* エラーケアしてね */ }
}
buff に use バイトだけ収まってる
523:デフォルトの名無しさん
18/03/15 17:56:13.79 lf1N2aO70.net
>buff = realloc(buff, allocsz)
リークするからやめなよ。
524:デフォルトの名無しさん
18/03/15 18:05:35.40 c+umNtGLp.net
ヒープなんか使わずに配列にして自己管理せい。
525:デフォルトの名無しさん
18/03/15 18:12:47.89 yyzFA25Ma.net
ヒープに配列用のメモリを確保しているわけで・・・
526:
18/03/15 18:18:50.14 xYxZI4zx0.net
>>505
ん?realloc() はリークするのか?
527:片山博文MZ
18/03/15 18:24:18.46 mTrAuuczd.net
>>508
割り当てに失敗したらリークするよ。
528:
18/03/15 18:34:07.27 xYxZI4zx0.net
>>509
確認した
buff = realloc(buff, allocsz) という書き方は、たしかに realloc() に失敗すると buff が null で上書きされてしまうのでまずいね
529:デフォルトの名無しさん
18/03/15 18:43:54.61 T5+tR1ew0.net
戻りを別の変数で受けて確認してから代入
530:片山博文MZ
18/03/15 18:51:29.92 mTrAuuczd.net
前、ANSI準拠のreallocは、mallocとfreeの代わりになるって話をしたよな。
だから、最初のmallocは、NULLに対するreallocで置き換えできるんだよ。
531:片山博文MZ
18/03/15 18:52:49.68 mTrAuuczd.net
それから、この場合はintよりもsize_tを使った方がいい。
532:デフォルトの名無しさん
18/03/15 20:39:48.98 yyzFA25Ma.net
>>512
最初だけ、な。
533:デフォルトの名無しさん
18/03/15 23:54:08.20 NmT4VXxza.net
素朴な疑問なんですが、Cでメンバ関数を関数ポインタで定義して、そのメンバ関数から引数なしにメンバ変数を参照
534:することってできませんか?
535:デフォルトの名無しさん
18/03/16 00:14:09.63 LkWvbaD00.net
>>515
メンバ関数ってなんですか?
536:デフォルトの名無しさん
18/03/16 01:02:32.36 w3tL3lE3M.net
>>516
C++でいうところのメンバ関数を構造体の関数ポインタのメンバで実装したいという意味だろ。読解しろ。
>>515
むり。C++で見かけ上引数がなくても内部で引数で渡してる。
537:
18/03/16 01:37:32.81 GsmhGHn70.net
>>515
スレリンク(tech板:39番)
メンバ関数 h() を返す メンバ関数 g() を定義
メンバ関数へのポインタ f を定義
メンバ関数へのポインタ f にメンバ関数 g() の返り値を代入
ここでメンバ関数へのポインタ f にはメンバ関数 h() が格納されている
->* 演算子を使用してメンバ関数へのポインタ f が指すメンバ関数 h() を実行、 h() ではメンバ変数 C::a を出力する
538:デフォルトの名無しさん
18/03/16 02:08:17.17 w3tL3lE3M.net
>>518
スレタイ見ろ
539:デフォルトの名無しさん
18/03/16 04:14:48.79 3pmuZEr10.net
ポインタ構造体変数をポインタ変数で扱いたい時って
&p(ポインタ変数構造体変数)-> member(メンバ名)
みたいにわざわざ一回通常変数に直してからアドレスになおさないかんの?
540:デフォルトの名無しさん
18/03/16 05:57:40.20 PrpOQ5WH0.net
(&p)->memberなんてまずやらん
p.memberで同じことができる
541:デフォルトの名無しさん
18/03/16 06:50:12.92 3pmuZEr10.net
>>521
それやったらコンパイラにそんな構造体変数ないぞって言われた
542:デフォルトの名無しさん
18/03/16 08:05:49.18 w3tL3lE3M.net
>>522
質問するときは変数の宣言も使う文脈も省略せずに書け
543:デフォルトの名無しさん
18/03/16 08:16:43.56 6+mGA4RRM.net
>>522
&p->membar
(&p)->membar
544:デフォルトの名無しさん
18/03/16 10:27:00.36 DfshN/+jp.net
型教えないと何やっても無理だろ。
あと。下手に型変換させると、奇数バイトからワード処理とかさせてしまい、石によっては例外処理が走るか暴走するよな。
545:デフォルトの名無しさん
18/03/16 11:29:31.94 07ayGtU0a.net
cのコンパイラ作るのにアセンブラの知識は必要?
546:デフォルトの名無しさん
18/03/16 11:38:22.80 ObjPIdw20.net
今なら、LLVMがあるからコード生成はそちらに任せるという
選択肢があるね。
547:
18/03/16 11:59:50.08 GsmhGHn70.net
>>526
コンパイルというくらいだから、最後に機械語に落とし込むのにアセンブラの知識は必要になるのではないか?
548:デフォルトの名無しさん
18/03/16 12:01:10.57 rupS10t30.net
C++ to C コンパイラとか 生成物が機械語で無いのもあるんじゃね?
(昔そういうの欲しかった)
549:デフォルトの名無しさん
18/03/16 12:19:28.27 56A/2jiga.net
>>517
Cには無理なんですね
ありがとうございます
550:
18/03/16 12:33:16.00 GsmhGHn70.net
>>530
>>515 でメンバ関数という言葉を使うのだから C++ を仮定している、というのならば C++ では >>518 で可能
C で可能かどうかを問題にしているのであれば、>>515 のメンバ関数という言葉が自己矛盾
551:デフォルトの名無しさん
18/03/16 12:43:32.01 rupS10t30.net
C言語の範囲では 構造体のメンバ中に関数のポインタをもつまで
C++言語のメンバ関数の機構(暗に this ポインタが渡ってくる) のを
C言語でやりたけりゃ自前で引数に渡すしかない&その関数はポインタを引数で受けなきゃいけない
552:デフォルトの名無しさん
18/03/16 12:47:14.28 0ILmeguTa.net
>>529
C++の初期のコンパイラはそういうやつだった。つまり、Cへのコンバータだった。
553:デフォルトの名無しさん
18/03/16 13:59:12.95 DfshN/+jp.net
ああ、各ファイルの先頭に構造体の領域宣言とか関数にいちいち構造体のポインタが追加されるんだよな。
554:デフォルトの名無しさん
18/03/16 14:00:33.86 ITdJ1YV3a.net
そういや昔々のX68000のBASICにもCへのコンバータがあったな。
555:デフォルトの名無しさん
18/03/16 14:26:36.05 DfshN/+jp.net
俺は、6502アセンブラコードをCに変えるコンバータ作ったけどな。
556:デフォルトの名無しさん
18/03/16 15:25:35.34 relEB8IL0.net
アセンブリをprintfにパースするのって大変なのかな。
557:デフォルトの名無しさん
18/03/16 15:57:57.02 ScqC3AYEa.net
>>531
ではどういう言葉なら齟齬なく伝わりましたか?
558:デフォルトの名無しさん
18/03/16 16:00:12.76 HNnsk+Eya.net
>>538
「関数へのポインタ」では?
それが構造体のメンバとしてあるわけだし。
559:
18/03/16 16:12:40.83 GsmhGHn70.net
>>538
コード断片で示すのもよい、誰かがコードを補完してくれるだろう
560:デフォルトの名無しさん
18/03/16 16:25:31.83 3ma6aQHvF.net
アスペとの会話ってつかれるよな
561:デフォルトの名無しさん
18/03/16 16:57:51.61 PrpOQ5WH0.net
Cスレで「メンバ関数」だぜ?
それをアスペとか、どんだけボキャ貧なんだよ
562:デフォルトの名無しさん
18/03/16 16:59:08.32 3ma6aQHvF.net
>> 542
おまえがアスペか
563:デフォルトの名無しさん
18/03/16 20:29:17.66 56A/2jiga.net
>>539
> Cでメンバ関数を関数ポインタで定義して
一応そのつもりで書いたんだけどなあ
アスペ基準に合わせようとした俺が悪かったのか
564:
18/03/16 21:09:53.74 GsmhGHn70.net
>>544
・関数ポインタとは別に「メンバ関数」というテクニカルタームが C++ にあった
・C/C++ の区別がついていない人の質問も、ここではよくみかける
という背景があって小さな誤解が発生したまでのこと、気にするでない、苦しゅうないぞ
565:デフォルトの名無しさん
18/03/16 21:13:51.61 nemrSVupM.net
>>526
どうやってコード生成部分を作るつもりなんだよ...
566:デフォルトの名無しさん
18/03/16 21:59:39.71 PPQOkRTja.net
マシン語があれば充分のんじょのいこの
567:デフォルトの名無しさん
18/03/16 22:33:58.96 .net
Cコンパイラがマシン語を出力しなきゃいけないって誰が決めたの?🙄
568:デフォルトの名無しさん
18/03/16 22:51:53.37 SxfrRBUw0.net
ラノベ出力してくれるコンパイラってステキ
569:デフォルトの名無しさん
18/03/16 22:53:03.55 d0lIgzUw0.net
誰も決めてないしマシン語じゃなくてアセンブラのソース出すコンパイラはいくらでもあるし
570:デフォルトの名無しさん
18/03/16 23:46:17.13 ObjPIdw20.net
VHDL出してもいいよね~
571:デフォルトの名無しさん
18/03/17 00:28:10.69 .net
シェルスクリプトとまでは言わないからPerlスクリプトを出力して欲しい
572:デフォルトの名無しさん
18/03/17 03:07:05.34 ZFtG2t0c0.net
C++の非仮想関数 == Cの普通の関数
C++の仮想関数 == structの項(vtbl)の項
573:デフォルトの名無しさん
18/03/17 04:35:29.26 YYJgzE2Qa.net
>>553
違うね
574:デフォルトの名無しさん
18/03/17 07:17:45.03 qzfhHg+K0.net
>>553
上の方の関数。普通の関数pointerで保持出来るの?
575:デフォルトの名無しさん
18/03/17 07:35:06.72 zYYcg2u/0.net
C++のextern "C"関数 == Cの関数
Cに普通じゃない関数ってあるんだっけ
576:デフォルトの名無しさん
18/03/17 07:51:22.83 .net
>>555
そんなの当たり前じゃん
まさかできないと思った?
577:デフォルトの名無しさん
18/03/17 08:58:53.90 qzfhHg+K0.net
>>557
先生、非仮想なメンバー関数をcの構文では保持出来ません。
例をご教示願います
578:デフォルトの名無しさん
18/03/17 09:00:39.42 .net
>>558
「上の方の関数」すなわち「Cの普通の関数」を
「普通の関数pointerで保持出来るの?」
→Cの普通の関数は、普通の関数ポインタで保持できます
質問文に忠実に答えただけだが、何か問題でも?
579:デフォルトの名無しさん
18/03/17 13:08:05.54 8xjJdoU40.net
Cにゃメンバーって言語レベルの概念は無いから、そういうのはコーディング時に人様がメンバーのつもりになる書き方を明示的にやらないとならないんだよな。
580:デフォルトの名無しさん
18/03/17 13:47:23.11 8tKqJ0BR0.net
namespace のことを脇においとけば
非仮想関数って FILE 構造体と その関数だべ
581:デフォルトの名無しさん
18/03/17 13:51:13.91 V9AqDEvW0.net
LLVMはまずパースレイヤーが中間言語出力して中間言語を解釈するレイヤーが各種コードに吐き分けるということができる。
3段階のコード最適化ができるはずだったが、ち
582:ょっと迷走してる。
583:デフォルトの名無しさん
18/03/17 16:56:54.32 x+XAbvy+0.net
>>557
struct A
{
void func() {} //C++の非仮想関数
};
void (*ptr)(); //普通の関数pointer
ptr = &A::func; //まさかできると思った?
584:
18/03/17 18:20:57.82 qqOQsVrX0.net
>>555
できませんね
URLリンク(ideone.com)
585:片山博文MZ
18/03/17 18:25:10.24 6umCop+Md.net
クラス内部の関数をstaticにすると、、、
586:片山博文MZ
18/03/17 18:26:02.67 6umCop+Md.net
普通の関数みたいに参照できる。
587:デフォルトの名無しさん
18/03/17 20:05:40.42 x+XAbvy+0.net
ここはCスレということをお忘れなく
588:デフォルトの名無しさん
18/03/18 08:12:11.88 5MZOkfmV0.net
URLリンク(ideone.com)
上のコードを見てください。
sprintfを続けて使うと文字が一つも出力されません
なぜですか?
589:デフォルトの名無しさん
18/03/18 08:14:12.57 5MZOkfmV0.net
ちょっと間違えました。
上の投稿は無視してください
590:デフォルトの名無しさん
18/03/21 22:30:20.44 Pk5+CKOYa.net
ニキ
配列で array[i] と i[array] て同じナンスカ?
後者の違和感すげーあるんスけどこういう風に書くことのメリットってかどっちが普通なんでしょうか
591:デフォルトの名無しさん
18/03/21 22:33:57.97 MsjTjvgF0.net
ポインターはINTに変換できる事もある。
んで、arrayはhogeっていうアドレス値を持ってる。
iはhageていう数字を持ってる。
生の数字でhoge+hage=i+arrayである。
まぁ、後者の書き方は普通しない。
592:デフォルトの名無しさん
18/03/21 22:34:54.75 DQv7yGEy0.net
アセンブラではオフセット[レジスタ]が普通
どっちが普通なんてくだらねえことだ
593:デフォルトの名無しさん
18/03/21 22:36:13.14 D2465Z9CM.net
offsetofマクロの実装を見て見なされ
オフセット値の算出にポインタ使っているでしょ
594:デフォルトの名無しさん
18/03/22 00:04:45.10 dLiR/Xt3M.net
a[b] は *(a+b) のシンタックスシュガー
595:
18/03/22 00:19:52.50 2FEQ/Wa30.net
>>435
そうともいえない
一見目的のない議論が、将来の偉材を今育てているのかもしれない
596:
18/03/22 00:23:55.20 2FEQ/Wa30.net
>>441
知らないのか?
setjmp/longjmp は、かつては例外(exception) の標準的な実装方法だったんだよ
OS に構造化例外機能がなかったときは sjlj が主流だったんだ
597:デフォルトの名無しさん
18/03/22 04:56:30.90 0SzB6c710.net
>>576
お前のご託はどうでもいいから
> 他の言語でライブラリレベルで実装してる例
をだしてみろよ
598:デフォルトの名無しさん
18/03/22 09:40:57.08 Q2/ylW7bF.net
BDS-Cとかあったな
599:デフォルトの名無しさん
18/03/22 10:22:59.95 lT3wziJ7p.net
>>570みたいなのは、キャストしないと使えねーだし。
600:デフォルトの名無しさん
18/03/22 13:44:55.99 suw09sJq0.net
>>579
え?使えるよ。単に *(i + array) になるだけだし。
601:
18/03/22 13:56:04.06 2FEQ/Wa30.net
>>577
mingw/gcc-3 あたりまでは SEH ではなく sjlj だったと記憶している
ググってみるとちらほら出てくる
602:デフォルトの名無しさん
18/03/22 14:36:34.98 tPQcb8ora.net
SEHって何かと思ったらMS独自のやつか
603:デフォルトの名無しさん
18/03/22 19:43:32.85 qO2s+USWM.net
>>581
他の言語って書いてあるのに
話そらそうと必死だな w
604:
18/03/22 20:58:32.18 2FEQ/Wa30.net
>>583
C と C++ は違う言語だろう?(棒読み)
605:デフォルトの名無しさん
18/03/22 21:06:38.53 qO2s+USWM.net
>>584
そんなものまで持ち出さないと自我が壊れちゃうのか? w
606:デフォルトの名無しさん
18/03/24 19:49:48.79 wXlHUBLAa.net
ニキやっぱFEぐらいのC過去問なら余裕の満点すか?
607:デフォルトの名無しさん
18/03/24 22:33:50.23 glVyz9hR0.net
>>573 >オフセット値の算出にポインタ使っているでしょ そうか? offsetofの結果は整定数式になる必要があるが、 ポインタ演算を使った式が整定数になる保証がないので別の手段を使っている場合がある。
609:デフォルトの名無しさん
18/03/24 22:37:51.52 M0MLze13M.net
>>587
具体的に
610:デフォルトの名無しさん
18/03/25 00:05:52.92 r2Id4T4+0.net
>>586
例えばどんなの?
611:デフォルトの名無しさん
18/03/25 07:25:18.09 S7OmeNGW0.net
Visual Studio 2017
#define offsetof(s,m) ((size_t)&(((s*)0)->m))
gcc 7.2.0
#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
clang 6.0.0
#define offsetof(t, d) __builtin_offsetof(t, d)
borland 5.5.1
#define offsetof( s_name, m_name ) (_SIZE_T)&(((s_name _FAR *)0)->m_name)
612:デフォルトの名無しさん
18/03/25 15:04:40.75 9t80sXyiM.net
>>587
>ポインタ演算を使った式が整定数になる保証がないので別の手段を
ポインタ演算の結果が浮動小数点とか変数になる例早よう出しなされ
613:デフォルトの名無しさん
18/03/25 15:25:31.63 wNhLkN4j0.net
メモリーの仕切り壁に落書きするポインタ
9と3/4番線ホームから出発する列車を指し示すポインタ
あれば便利かも知れないが(何がだ)
614:デフォルトの名無しさん
18/03/25 17:42:21.62 S7OmeNGW0.net
鉄道に例えるならポイント(線路の分岐)を制御するデコーダに与える信号がCのポインタだ
615:デフォルトの名無しさん
18/03/25 18:06:41.94 qleen6XJF.net
それじゃ型が考慮されてない
616:デフォルトの名無しさん
18/03/25 18:24:31.28 EKcNWVxa0.net
>>591
その前に、まずはポインタ演算を使った結果が整定数になることが保証されている例を出してくれ。
当然規格は読んでいるよね。6.6p6より
> An integer constant expression shall have integer type and shall only have operands
> that are integer constants, enumeration constants, character constants,
> sizeof expressions whose results are integer constants, and floating constants that are the
> immediate operands of casts.
617:デフォルトの名無しさん
18/03/25 18:28:29.51 S7OmeNGW0.net
汎整数型定数をポインタにキャストまたは暗黙に変換した式は定数式(たとえば空ポインタ定数は定数式)
その定数式を整数にキャストし直した式が定数式でなくなる根拠はない
618:デフォルトの名無しさん
18/03/25 18:29:11.25 .net
>>595
先生!
>>587で 「ポインタ演算を使った式が整定数になる保証がないので別の手段を使っている場合がある。」
って言い切ってるんだから、その「場合」とやらを僕も知りたいです!
619:デフォルトの名無しさん
18/03/25 18:53:41.81 EKcNWVxa0.net
>>596
>その定数式を整数にキャストし直した式が定数式でなくなる根拠はない
でもそれは整定数式ではないよね。
規格にはキャスト前の型が算術型でなければならないとある。
> Cast operators in an integer constant expression shall only convert arithmetic types to integer types, except as part of an operand to the
> sizeof operator.
620:デフォルトの名無しさん
18/03/25 19:02:02.77 z318xA/90.net
(配列等で)連続が保障されてるときには要素数が求まるようにはなってるけど
連続性のないポインタの差分は鼻から悪魔だったような
規格? みてない
621:デフォルトの名無しさん
18/03/25 19:05:21.84 S7OmeNGW0.net
>>598
俺は根拠がないと言ったんだが
それをすっ飛ばして整定数式ではないと言われてもねえ
622:デフォルトの名無しさん
18/03/26 07:31:09.27 Sl5sXtlN0.net
で、587は逃げたのか
623:デフォルトの名無しさん
18/03/26 09:52:06.25 5fqWa8qC0.net
今日からC言語を始めたのでよろしくです
624:デフォルトの名無しさん
18/03/26 10:39:34.46 9cQp/9Bmp.net
ご愁傷様
625:デフォルトの名無しさん
18/03/26 11:35:27.48 0ihjlnG/0.net
a[b*c];
のようにしてもassemblyコードがアドレッシングモードじゃなくて
掛け算してしまうんですけどどうしたらアドレッシングモードで計算するように
なりますか?
626:デフォルトの名無しさん
18/03/26 11:54:06.58 dvRuSlEv0.net
>>604
b と c とを使って何をしたいのでしょうか?
627:デフォルトの名無しさん
18/03/26 12:03:06.83 EmWkiz+YM.net
>>604
何がしたいのかよくわからないけど、エスパーすると
Cソースで変数のセクションを指定して、リンカでそのセクションの配置を
期待するアドレスに配置すればいいんじゃないかな。
628:デフォルトの名無しさん
18/03/26 12:09:23.11 0ihjlnG/0.net
struct a{
int a;
int b;
};
struct a x[100];
void *v=x;
void *h(int n, int s){
return ((char *)v+n*s);
}
struct a *i(int n){
return &x[n];
}
同じことをしているのにhは掛け算するのにiは掛け算をアドレッシングモードでしているので
処理速度の差が生まれてしまいます。
629:デフォルトの名無しさん
18/03/26 12:12:26.75 0ihjlnG/0.net
自己解決しました。
630:デフォルトの名無しさん
18/03/26 12:12:50.68 EmWkiz+YM.net
struct aにキャストしてから計算すればいいという話ではなくて?
631:デフォルトの名無しさん
18/03/26 12:18:06.83 0ihjlnG/0.net
nかsは定数じゃないと駄目みたいでした。
632:デフォルトの名無しさん
18/03/26 12:31:41.16 k+G5ovIGM.net
sがなんだかわからないけど
void *h(int n, int s){
return ((struct a *)v+n*s);
}
じゃだめなん?
s=1ならi()と同じだと思うけど。
633:デフォルトの名無しさん
18/03/26 12:37:07.82 0ihjlnG/0.net
struct a *は8バイトなので8を入れればよいのです。
634:デフォルトの名無しさん
18/03/26 12:40:49.01 v3bCx+j3M.net
ブロックサイズみたいなイメージかな。
だったらsizeof(struct a)にしたほうがよいかと。
635:デフォルトの名無しさん
18/03/26 13:35:11.46 ioIbXl47a.net
>>612
それは違う環境に持っていってコンパイルしたら破綻するかも知れない。
やはりsizeof使うかそのまんまポインタ計算させた方が良いのでは?
636:デフォルトの名無しさん
18/03/26 14:37:40.54 g7RAb+fM0.net
最適化されたらおんなじじゃね?
637:片山博文MZ
18/03/26 14:44:36.91 42MV7MT1d.net
struct a*のサイズは32-bit 環境だと4だよな。64ビットだと8バイト。
638:片山博文MZ
18/03/26 14:47:59.15 42MV7MT1d.net
ポインタを操作するなら、size_tとかptrdiff_t使った方がいいな。
639:デフォルトの名無しさん
18/03/26 15:00:59.23 +d/fyZgca.net
>>616
ここでは構造体の実体の配列だからsizeof(struct a)で大丈夫。
int1つのサイズは典型的には4byteだけど、IP64だのあまり見ない
データモデルでは8byteのこともあるから、構造体のサイズを使うときは
sizeofがよい(MAY)、ではなくてsizeofにすべき(ほぼMUSTのSHOULD)。
640:デフォルトの名無しさん
18/03/26 17:51:14.16 wby0cWXW0.net
>>598
おまえさんが言いたいのは、これのことか?
URLリンク(ideone.com)
641:デフォルトの名無しさん
18/03/26 17:52:53.38 5fqWa8qC0.net
本買うならどれがいい?
本より優れたサイトがあるならそれでもいいぞ
642:デフォルトの名無しさん
18/03/26 19:16:37.53 b1dSvJWqM.net
>>620
きつねさんとおぼえる clang
きつねさんとおぼえる clang おかわり
643:デフォルトの名無しさん
18/03/27 07:05:39.20 VOv2iUaR0.net
struct a{
bool a:1;
uint32_t b:31;
uint16_t c;
};
struct a{
uint32_t b;
uint16_t c;
bool a;
};
上の構造体が12バイツでしたが8バイツの理由がわかりません、上を8バイツにしたいです。
644:デフォルトの名無しさん
18/03/27 07:14:25.16 6oSpwfuc0.net
C言語のboolって何バイト?
C++だとINTと等価なことがそれなりにあるんだけど。
645:デフォルトの名無しさん
18/03/27 07:32:57.91 .net
>>622
よく分からないんだけど、2つ構造体を書いてるのは何を意図してるの?
646:デフォルトの名無しさん
18/03/27 07:57:42.10 tnecWY6M0.net
>>622
俺の環境ではどっちのsizeofの値も8バイツを返したから環境依存だろう。
#pragma か
647:__attribute__ で詰め込めるかも知れんけど、 ビットフィールドを狙って使える指定方法があるかどうか。 詰めたら詰めたで6バイツや7バイツになっちゃう危険もあるし。 >>623 <stdbool.h> にどう書いてあるかだろうな。 これも試したら sizeof(bool) に1を返した。 <stdbool.h> の実体を思しきファイルを覗いたら #define _Bool signed char #define bool _Bool の連鎖になってた。typedefでないのが少々意外。 #ifdef で定義済か未定義かを判定できるようにするためだろうか。
648:デフォルトの名無しさん
18/03/27 08:47:18.29 /RdC4ccn0.net
>622
uint32_t b; がバイト境界にひっかかったせいじゃね?
649:デフォルトの名無しさん
18/03/27 08:57:59.42 9ekvYNlc0.net
コレナンデ境界
650:デフォルトの名無しさん
18/03/27 09:51:51.20 GW1/xmrB0.net
アライメント
651:デフォルトの名無しさん
18/03/27 10:02:58.62 i2YWXGc+0.net
alignment
Емельяненко
なんで日本人は「ん」を飛ばすかねえ
652:デフォルトの名無しさん
18/03/27 10:04:40.74 /RdC4ccn0.net
間抜けな回答してるな>オレ
||
||
∧||∧
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
-━-
653:デフォルトの名無しさん
18/03/27 10:37:30.96 UpIjn8oG0.net
>629
>なんで日本人は「ん」を飛ばすかねえ
「全て」の日本人が「ン」を飛ばすわけではありません。
「或る」日本人が「ン」を飛ばすだけです。
ところで、ロシア語の
Емельяненко(エメリャネンコ)
とはどういう意味ですか。手元の「ロ日辞典」をひいても
でていないので
654:デフォルトの名無しさん
18/03/27 11:17:02.05 VOv2iUaR0.net
struct a{
bool x:1;
uint32_t y:31;
};
しらべたらこれの大きさが8バイツでした
sizeof(struct a)とやったらそうなったのでアラインメントのもんだいではありません。
どうしても4バイツにしたいです
655:デフォルトの名無しさん
18/03/27 11:20:50.14 949beg24p.net
型を揃えるか、ブラグマ指定する、
656:デフォルトの名無しさん
18/03/27 11:22:01.11 6oSpwfuc0.net
もしかして変数を分解しようとしてる?
Unionってしってるかー?
657:デフォルトの名無しさん
18/03/27 11:24:10.52 949beg24p.net
構造体宣言に
__attribute__((packed))
を挟む
658:デフォルトの名無しさん
18/03/27 11:26:05.22 6oSpwfuc0.net
C++なら、無名うにおんとかつかえて楽なんだけど、Cは一々名前がつくので面倒。
659:デフォルトの名無しさん
18/03/27 11:26:08.96 949beg24p.net
両方uint32_tにすりゃいいだろ。
660:デフォルトの名無しさん
18/03/27 11:26:51.67 VOv2iUaR0.net
struct a{
uint32_t a:1;
uint32_t y:31;
};
こうやったらできました
ビットフィールドを勘違いしていたのが原因みたいです。
661:デフォルトの名無しさん
18/03/27 11:27:20.90 6oSpwfuc0.net
あら、そっちか。
662:デフォルトの名無しさん
18/03/27 11:36:24.22 VOv2iUaR0.net
struct a{
union{
bool a:1;
struct{
uint32_t x:1;
uint32_t y:31;
};
};
};
つまりこうしたらよいのですね。
勉強になりました。ありがとうございます。
663:デフォルトの名無しさん
18/03/27 12:00:48.00 .net
>>640
これ、bool aとuint32_t xが同じ値であることがどの環境下でも保証されてるの?
教えてエロい人
664:デフォルトの名無しさん
18/03/27 12:36:27.71 NeN1yqDWa.net
>>622
ビットフィールドって同じ型が並んでないとまとめてくれないのでは?
なので、
bool a:1;
uint32_t b:31;
ではなくて
uint32_t a:1;
uint32_t b:31;
にしたらできないか?
665:デフォルトの名無しさん
18/03/27 12:39:07.90 NeN1yqDWa.net
既に答えが出て解決していた
||
||
∧||∧
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
-━-
666:デフォルトの名無しさん
18/03/27 12:44:29.48 i2YWXGc+0.net
>>631
姓だよ、とある有名人の
国内ではエメリヤエンコということになっている
667:デフォルトの名無しさん
18/03/27 13:11:29.05 VOv2iUaR0.net
URLリンク(ideone.com)
上のコードみてください。
なぜか上の構造体を使って初期化すると値がただしくなりません。
なぜですか?
668:デフォルトの名無しさん
18/03/27 13:53:29.94 KACb5w790.net
>>645
どこが正しくないのか説明してもらわないとたぶん
669:誰も分からない
670:デフォルトの名無しさん
18/03/27 15:15:12.36 VOv2iUaR0.net
URLリンク(ideone.com)
なにものかにコードが書き換えられたみたいです
正しくは上のコードを見てください。
671:片山博文MZ
18/03/27 15:32:49.24 eCLpRZm+d.net
unionにビットフィールドは使えないっしょ。
672:デフォルトの名無しさん
18/03/27 15:42:37.68 jWaORT7c0.net
>>647
struct a a={.y=1, .a=true};
ここを
struct a a={.a=true, .y=1,};
こう書き換えると動作が変わる。
何故変わるか考えてみよう。
673:デフォルトの名無しさん
18/03/27 15:45:46.56 jMKP3TFv0.net
struct になってない単変数でのビットフィールドって
結局支持された型の空間をめいっぱい使って書いてるんでないの
674:デフォルトの名無しさん
18/03/27 16:45:45.41 VOv2iUaR0.net
>>648
直しました
>>649
考えてもわかりませんでした
675:デフォルトの名無しさん
18/03/27 17:22:21.42 tnecWY6M0.net
>>637-638 >>642
ビットフィールドの詰め込み方だけど、
「同じ型の並びならまとめる、異なる型同士はまとめない」、
「型に関係なくまとめる」、(他にもパターンあるかも…)、
どれになるかは環境依存だからアテにしてると移植性の問題にハマるよ。
ビットフィールドは内部的な配置を気にしない場合だけ使うのが鉄則。
>>622 の流れからすると、ビットフィールドを含む構造体は
sizeof が返すバイト数も気にしちゃいけないね。
676:デフォルトの名無しさん
18/03/27 17:46:09.15 .net
>>647
unionの中にもう一つstruct
uint32_t b0:1; ~ uint32_t b31:1;
を入れてみて、b0~b31をオール0、その次はオール1にして
aやyに代入するたびにb0~b31がどう変化するかを確かめればいいと思うよ。
677:デフォルトの名無しさん
18/03/27 18:48:56.23 lphBpvplM.net
gotoは要らない子?
678:デフォルトの名無しさん
18/03/27 19:18:17.87 NeN1yqDWa.net
>>652
コンパイラによっては型に関係なく並べるのもあるのか。知らなかった。
679:デフォルトの名無しさん
18/03/28 09:16:12.84 UsIzsSLh0.net
unionで共用関係作っても、詰め込み順が統一されてる保証は無いからなぁ。
んなトリッキーな処理は、移植ん時死ねるぞ。
680:デフォルトの名無しさん
18/03/28 09:21:05.87 hD+ZgK6z0.net
ビットフィールドの順番がコンパイラによって違うのには参った
681:デフォルトの名無しさん
18/03/28 09:27:44.69 txGSPNwpa.net
>>657
エンディアンの違いで逆順になるのは昔からあるな。
コンパイルオプションでなんとかなるといいんだけどな。
682:デフォルトの名無しさん
18/03/28 15:08:36.90 NO5LUaew0.net
いやあ、そんなドジ踏んだことないし
踏んだやつも見かけないなあ
unionなんか使うときはそういう危険性には
真っ向から対峙しているのでうっかり考え落とす
なんてことは起こりえない
ポインタをキャストするときのほうが危ないぞ
unionよりも遙かに使用頻度が高くて油断しがち
683:デフォルトの名無しさん
18/03/28 16:15:36.83 zOM5QtYn0.net
>>659
たしかに
684:デフォルトの名無しさん
18/03/28 20:45:19.82 inZxrYqzp.net
普段からアライメント気にしない石使ってると死ぬるw
685:デフォルトの名無しさん
18/03/29 00:01:16.65 ySkkjEPJa.net
野積み
686:デフォルトの名無しさん
18/03/29 00:09:03.12 X8gSQriyM.net
SIG11
687:デフォルトの名無しさん
18/03/29 00:30:03.68 HYrXjV+u0.net
>>654
出来の悪い子ほど可愛いものさ
688:デフォルトの名無しさん
18/03/29 02:58:45.40 Ng8O1HeK0.net
GOTOはその場所より基本上流に流しちゃいけない。
�
689:サれだけ守ってればいいと思う。
690:デフォルトの名無しさん
18/03/29 03:06:08.42 .net
if文とかfor文の中に飛ばすのもダメだろ
関数末尾以外に飛ばすのは基本アカンと思う
691:デフォルトの名無しさん
18/03/29 07:24:44.79 +dX3Weor0.net
gotoとswitchの組み合わせはよくやる。
692:デフォルトの名無しさん
18/03/29 22:57:50.45 HYrXjV+u0.net
>>667
switch と goto と聞いて、はっもしやこんなこともできるのでは、と思ってやってみたら、できてしまったよ。どうしよう。
#include <stdio.h>
int main()
{
int i;
for (i = 0; i < 10; i++) {
if (i == 5)
goto hoge;
switch (i) {
case 1:
puts("いち");
break;
hoge:
puts("ご");
break;
}
}
return 0;
}
693:デフォルトの名無しさん
18/03/30 13:01:35.10 fkO+Wt7Ma.net
情報処理用にC頑張り始めたンスけど、初心者本は2冊くらい終えて、簡単なプログラムならあるていど作れるようにもなったんスけど、FEの過去問には全く歯がたたないっすw
694:デフォルトの名無しさん
18/03/30 13:03:50.38 fkO+Wt7Ma.net
初見の歯抜けプログラムみて選択肢与えられてもなんだかさっぱり読み切れん…
中級本の内容の方がまだ簡単なんスけどニキこれなんなんすか
695:デフォルトの名無しさん
18/03/30 13:04:58.91 n1WKWzHR0.net
Duff's deviceっていうスイッチの中にループがあるのもある
696:デフォルトの名無しさん
18/03/30 16:19:34.10 zQBQo8b30.net
>>668
おめ
はげめ
697:デフォルトの名無しさん
18/03/30 16:22:11.93 bDuRGN0f0.net
>>668
goto default;
698:デフォルトの名無しさん
18/03/30 16:55:37.88 InC0asnz0.net
あれにはそういう名前があったのか。ありがとう。
699:デフォルトの名無しさん
18/03/30 17:55:35.60 6y8tfNRe0.net
同じく
名前は知らんかった
700:デフォルトの名無しさん
18/03/30 19:36:36.57 FHOFausT0.net
値の入れ替え処理ってどう描けばいいんや
701:片山博文MZ
18/03/30 19:38:47.12 9udtptfNd.net
>>676
int tmp = a;
a = b;
b = tmp;
もしくは
std::swap(a, b);
702:デフォルトの名無しさん
18/03/30 19:42:57.58 TqB3XhjJM.net
a = a ^ b;
b = a ^ b;
a = a ^ b;
703:デフォルトの名無しさん
18/03/30 19:46:21.82 FHOFausT0.net
>>677
mainから分離させると
void Swap()
{
std::swap(a,b);
}
こうなるってこと??
704:片山博文MZ
18/03/30 19:47:24.27 9udtptfNd.net
a ^= b;
b ^= a;
a ^= b;
705:デフォルトの名無しさん
18/03/30 19:49:14.07 sxHgkaP90.net
>>678
b の実体が a だと a = 0 になってしまう、とは頻繁に指摘されるところ
706:片山博文MZ
18/03/30 19:49:30.92 9udtptfNd.net
void myswap(int *pa, int *pb)
{
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
707:デフォルトの名無しさん
18/03/30 20:19:58.73 x2Z4e+RCa.net
>>677
それC++だよね。
708:デフォルトの名無しさん
18/03/30 20:29:07.56 zSEpPQDd0.net
ワザとだと思います
709:デフォルトの名無しさん
18/03/30 20:32:46.73 3ziE5qsO0.net
値の入れ替えってどういう局面で使うの?
710:片山博文MZ
18/03/30 20:35:46.51 9udtptfNd.net
>>685
ソートとか、順番を変えるときとか、データの入れ替えなど。
711:デフォルトの名無しさん
18/03/30 20:37:07.43 N/erQ4tDM.net
ソート
他では見かけない
712:片山博文MZ
18/03/30 20:42:10.63 9udtptfNd.net
音楽のシャッフルなんかもswap使っている。
713:デフォルトの名無しさん
18/03/30 20:49:54.40 3ziE5qsO0.net
ああ、int aとかじゃなくて配列要素に使うのね
納得ありがとう
714:片山博文MZ
18/03/30 20:53:18.14 9udtptfNd.net
配列要素やポインタにも使える。この入れ替えアルゴリズムを抽象化するとC++のstd::swapになる。
715:デフォルトの名無しさん
18/03/30 23:15:31.22 sWH8jgUv0.net
goto LABEL0;
{
int i = 1; /* 初期化 */
int j;
j = 1; /* 代入 */
LABEL0:
printf("%d %d\n", i, j);
}
716:デフォルトの名無しさん
18/03/31 01:54:40.82 OnKsCXxga.net
Mapみたいな連想配列使いたいんだが何使えばええんや
717:デフォルトの名無しさん
18/03/31 03:57:34.23 2Z4gCLvWa.net
switchのラベルって違うswitch(){}の中なら重複してても使えるやん?
それで goto HOGE; したらどっちに飛ぶ?
718:デフォルトの名無しさん
18/03/31 03:58:50.47 2Z4gCLvWa.net
>>681
ならねーよΩ
719:デフォルトの名無しさん
18/03/31 07:10:32.62 1xZcLHDp0.net
>>694
>>678 のアルゴリズムには重大な欠陥がある、という点は頻繁に指摘されることですよ、知らないの?
URLリンク(ideone.com)
720:デフォルトの名無しさん
18/03/31 07:17:07.25 .net
if (a != b) {
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
721:デフォルトの名無しさん
18/03/31 07:19:42.34 1xZcLHDp0.net
>>696
それは対策になっていない
722:デフォルトの名無しさん
18/03/31 08:13:17.33 .net
>>697
なんで?
723:デフォルトの名無しさん
18/03/31 08:15:52.05 NJrC8qbaM.net
>>695
ポインタ使って無いアルゴリズムをポインタ付きに移植して
欠陥とはこれ如何に。
只の移植失敗だろ。池沼か
724:デフォルトの名無しさん
18/03/31 08:22:07.33 1xZcLHDp0.net
>>699
xor スワップがどこまで有効か、どうなると不適になるかをはっきりさせておかないと、嵌る、>>678 にはその指摘がない
C なんだからポインタの話は不可欠だ、それを指摘したのが >>681
725:デフォルトの名無しさん
18/03/31 08:47:25.82 EbDGZ0yc0.net
wikiより
void xorSwap(int *x, int *y)
{
if (x != y) {
*x ^= *y;
*y ^= *x;
*x ^= *y;
}
}
726:デフォルトの名無しさん
18/03/31 08:59:46.96 15qJIIAA0.net
bの実体がaなんてことが参照のないCで起こりうるのか?
#define b aなんてアホなことぬかすなよ
727:デフォルトの名無しさん
18/03/31 09:06:42.53 8va89mAu0.net
ヒューマンエラーは果てしないのじゃー。
728:マクロでーとか言いそう w
18/03/31 09:12:11.67 OaeapR1O0.net
>>700
ごたくはいいから
a ^= b;
b ^= a;
a ^= b;
のコードでaとbの実体が同じになる例をあげろよ
もちろんC言語の範疇でな
729:デフォルトの名無しさん
18/03/31 09:13:01.96 1xZcLHDp0.net
>>702
その #define マクロでうっかり、xor スワップを書いてしまう、とかは、可能性としてあり得りますね
あと、C++ テンプレートで書いてしまったり、とかね
URLリンク(ideone.com)
730:デフォルトの名無しさん
18/03/31 09:13:25.89 1xZcLHDp0.net
>>704
>>705
731:デフォルトの名無しさん
18/03/31 09:57:17.92 V7rzy3dc0.net
マクロで xor の入れ替えを書く
配列の操作で同じ要素の入れ替えも、都合上そのまま交換する方向で記述する
(配列を逆順に入れ替える時、要素数が奇数だと発生
732:デフォルトの名無しさん
18/03/31 10:03:16.74 OaeapR1O0.net
>>705
> あと、C++ テンプレートで書いてしまったり、とかね
スレタイ100回音読してこい
733:デフォルトの名無しさん
18/03/31 10:08:47.90 1xZcLHDp0.net
>>708
今どんな気持ち?どんな気持ち?AA略
734:デフォルトの名無しさん
18/03/31 10:17:56.15 EbDGZ0yc0.net
マウント合戦うぜぇ。
735:デフォルトの名無しさん
18/03/31 10:24:01.94 1xZcLHDp0.net
>>710
まあ、こういうのでは考えが足りずに負けることもあるし
>>709 は権利ですよ
マウント合戦、勝てば飯がうまいですなあ
736:デフォルトの名無しさん
18/03/31 10:29:40.14 OaeapR1O0.net
名前欄ぐらい見とけよ w
737:デフォルトの名無しさん
18/03/31 10:32:21.69 15qJIIAA0.net
>>709
そのまま返す
738:デフォルトの名無しさん
18/03/31 10:34:30.68 NJrC8qbaM.net
678のメール欄もなw
739:デフォルトの名無しさん
18/03/31 10:40:28.44 OaeapR1O0.net
>>714
いや、さすがあれはメアド欄なんて見なくてもネタってわかるだろ w
740:デフォルトの名無しさん
18/03/31 10:43:37.64 15qJIIAA0.net
>>705
templateにする必要ないのに無理しちゃって
void aho(int& a, int& b)
{
if(&a == &b) throw sys
741:tem_error{error_code{1xZcLHDp0_category(), 709}, R"( ハァ・・・ ハァ・・・ ハァ・・・ : ∧ ∧ : : / ヽ / ヽ : : / >__/∴ ヽ : : / ;;# ,∴∵; ヽ ∴\ : : / -==、 ' 、==-∴∵丶 : き、きょうはこれくらいで勘弁してやるニダ… : / "" _┃_ "" * ∵∴\ : : \ #;∴ l/ニニ| ∵ / ∴∵/ : : ヽ∵//;;.;`ー‐' # ∴#∵ノ : >;;;: _ _ ;, _ ;_< : / # ;∴ ∴ # \ : )"}; }
742:デフォルトの名無しさん
18/03/31 10:44:13.72 1xZcLHDp0.net
>>678 メール欄
あれ、まあ?!‥‥‥自分<今どんな気持ち?どんな気持ち?
まあ鎬を削るのであれば、こっちが楽しいのではありまする
スレリンク(tech板)
743:デフォルトの名無しさん
18/03/31 11:07:01.32 c97ae/y4F.net
>>695
それ xor を使ってることによる欠陥じゃなくて
同じポインタを渡してることが欠陥だろ
744:デフォルトの名無しさん
18/03/31 16:34:53.19 4s7VNOk80.net
>>695
18行目がこうなっているわけだが
myswap(&a, &a);
これでは参考にならんよな。
a, b を同じ値にしてから &a, &b で呼び出さないと。
まあでも myswap() 側で調べて同じなら何もしないように作っとけばいいだけではあるが。
745:デフォルトの名無しさん
18/03/31 17:23:06.22 EbDGZ0yc0.net
つまりswap関数に必ず同じ変数orポインタアドレスを渡さないよう確認する人と
渡しても大丈夫な仕様にする人とが同じチームに居るとこうなると。
746:デフォルトの名無しさん
18/03/31 17:38:31.63 c97ae/y4F.net
速度の問題あるから関数側でいちいち判定コード書くのは避けたいところ
747:デフォルトの名無しさん
18/03/31 17:53:31.86 OaeapR1O0.net
そのネタいつまで続けるの?
748:デフォルトの名無しさん
18/03/31 18:24:11.53 wolthb3Z0.net
ちょっと聞きたいんだけど
char c = '5';
c -= '0';
int a = c*16;
こうゆうやり方ありなの?
749:デフォルトの名無しさん
18/03/31 18:27:06.54 gYRRCVdX0.net
ある
750:デフォルトの名無しさん
18/03/31 18:27:10.52 c97ae/y4F.net
ありじゃね
unsigned char じゃいかんとか
unsigned char の方がいいとか
どうせ int になるんだしとか
ebcdic は?とか
↓
751:デフォルトの名無しさん
18/03/31 18:49:12.37 1xZcLHDp0.net
>>718
xor スワップは、xor: ^ が
a^(a^b) == b
b^(a^b) == a
で、つまるところ、a, b, a^b の三種類の値のうち一種類が欠けても、残りの二つから欠けた一つを再生できる(RAID5と同じ)ところに着目しているわけで、
xor や同様に exclusive-nor だからできること
ちゃんと二種類の値をずっとキープできておればスワップは成功するが、
そうでない場合は失敗する
上記のことを考えると① xor/xnor であることと、②現れるオブジェクトが別であることを保証することの両方が必要だと思うよ
>>719
まあ値が等しいときは①オブジェクトが同じ可能性がある②そもそもスワップする必要がない
から値が同じかどうかのチェックをかませば OK ではあるね、それは同意するよ
752:デフォルトの名無しさん
18/03/31 20:38:17.63 xg3JkNB30.net
これなら安全じゃろ。
void xorSwap(int * restrict x, int * restrict y)
{ *x ^= *y;
*y ^= *x;
*x ^= *y;
}
無責任極まりないやり口だけどな。
753:727
18/03/31 20:42:41.15 xg3JkNB30.net
改行乱れちゃった、てへ。
Cはフリーフォーマットだから…。
754:デフォルトの名無しさん
18/03/31 20:45:
755:59.73 ID:p4zumO6q0.net
756:デフォルトの名無しさん
18/03/31 20:48:52.36 D1vbg0pQ0.net
自己解決しました。
std::swapでいけました。
757:デフォルトの名無しさん
18/03/31 22:01:45.45 qrmwmyS1a.net
C++だったのか
758:デフォルトの名無しさん
18/03/31 23:33:07.89 .net
CもC++も似たようなもんじゃろ
平気平気
759:デフォルトの名無しさん
18/04/01 07:51:13.57 lL1ejtJI0.net
>>727
安全じゃない
restrictはコンパイラに対してx != yを前提とする最適化を許可するだけで
constのように違反を摘発する機能はない
int *a, *b;
scanf("%p%p", &a, &b); //実行してみなきゃわからんものを
xorSwap(a, b); //翻訳時に摘発できるわけねえだろ
760:デフォルトの名無しさん
18/04/01 08:04:57.85 WPbk7cUz0.net
「そういう仕様だから呼ぶ側は正しく使えよ」ってことだろ
761:デフォルトの名無しさん
18/04/01 09:55:10.10 9jhZxGTr0.net
「トラブルの原因になるものは絶対に使ってはいけない団 登場!!
scanfソード!!GOTO砲発射!!!」
762:デフォルトの名無しさん
18/04/01 09:59:07.54 gIH0xNQX0.net
ネタにまじれ...
763:デフォルトの名無しさん
18/04/01 10:19:28.40 vuzriXcqd.net
>>733
これほんとくそ
せめてFortran のfcheckみたいな実行時診断機能をコンパイラにつければ良いのに
764:デフォルトの名無しさん
18/04/01 10:26:27.50 lL1ejtJI0.net
hell fuck no!!
絶対いらん
765:デフォルトの名無しさん
18/04/01 10:28:45.90 GlQ4MmqmF.net
>>735
C使うなって話になるわな
766:デフォルトの名無しさん
18/04/01 10:52:33.52 .net
>>737
つ assert
767:デフォルトの名無しさん
18/04/01 14:22:10.86 QnlJ7EAH0.net
指導者は、ある程度育った選手に対して解決策を提示しない。
選手が自ら考えるように導く。
考える力に重点を置く。
選手が考えた解決策に、(少しでも)可能性がある場合、次のように対応する。
1.状況を整理する
2.挑戦してもらう
指導者の解決策を、押しつける・誘導するのは愚の骨頂。
選手の思考力の成長を阻害する。
言葉の上だけ、コーチング技法を使用する指導者は不要。
意識・無意識にかかわらず、非言語で指導者自身の方向に誘導するようであれば、指導者は迷惑な存在。
選手は指導者の気持ちを敏感に読み取り、指導者の思う解決策に乗っていく。
指導者が無自覚に自分の気持ち・感情を表出しているのであれば、指導者は害毒でしかない。
(但し、指導者としての方向を持っていなければダメ。)
768:デフォルトの名無しさん
18/04/01 14:30:49.47 QnlJ7EAH0.net
*“オレは知っている。選手は判っていない。”と思い込んでいる。
→「私が中心」(選手は不在)
→選手の変化が見えない。
*“あれもこれも伝えたい”と思っている。
→指導者の自己の存在証明をしたいだけ。
→選手の依存過多を喜んでいる。
→指導者の中身の無さを補償している。
→自分の目標と選手の目標がズレていることに気がつかない。
→成長のゴール設定が不明確。あるいは勝つことだけに目標を設定している。
(勝負までに何をやりきったらよいのか/何を発揮したら勝利か/勝った後どうするか、指導者ならば明確にもっておきたい。)
→優先順序が整理できていない。
→現状の把握すらできなくなっている。
*“言わないと相手のためにならない。”と信じている。
→根本的に選手を信頼していない。
→“指導”という名の自己�
769:梠ォ。 *“今、言わないといけない。”という焦り →指導計画の無さが露呈しただけ。 →日頃の怠慢のツケ。 (直ちに言わないければいけないことはあるが、そう頻発しない。) *“自分の経験なら、具体的に伝えることができる”という自分の過去へのこだわり →指導者自身の学習がストップしている。 →偏狭さの表出 →選手より、常に自分が上。 →自分のコピー以外のモデルがない。 →指導者自身の目標が低い。(悪い意味で、すぐに満足する。) →自分の小ささに築かない哀れさ 解決策を提示する悪癖からの脱却は、選手を信頼することがキー。選手を信頼できるかどうかは、選手の問題ではなく、指導者自身の課題。
770:デフォルトの名無しさん
18/04/01 14:31:46.69 QnlJ7EAH0.net
選手がある程度育っているにもかかわらず、解決策ばかりを提示してしまうとしたら……
指導者のサービス精神が、少々裏目に出ただけ。
やり方を、知らなかっただけ。
視線が、近い所に留まり過ぎただけ。
選手の考えと主体性に賭ければ良い。
「質問するだけ」「聞くだけ」で十分。他愛ない会話で済むかもしれない。
指導者としてのやり方を、ちょっと広げるだけ。
選手と一緒に成長すればよい。
771:デフォルトの名無しさん
18/04/01 15:09:50.39 EJgAiXSoa.net
長い3行で
772:デフォルトの名無しさん
18/04/01 20:22:49.32 FPe02iov0.net
c疲れる高級言語が良いよぉ
773:デフォルトの名無しさん
18/04/01 22:01:04.55 Xs8rW8os0.net
破門
774:デフォルトの名無しさん
18/04/01 22:02:31.16 kjSWJmola.net
C++よりは65536倍マシ
775:デフォルトの名無しさん
18/04/02 02:42:44.32 335Cb1sP0.net
C++の方が全然マシ。
C++で要求されるのは記憶力だが、Cはマジで実力が試される。
776:デフォルトの名無しさん
18/04/02 04:26:42.33 3ewhMOuha.net
>>747
ほんそれ
>>748
C++はごちゃごちゃしすぎ
Objective-Cの方が良い
777:デフォルトの名無しさん
18/04/02 09:23:05.49 tz45bHyl0.net
そんな君達に、C#
778:デフォルトの名無しさん
18/04/02 11:32:18.94 IY8Jb2oda.net
C#は何かとっても嫌な予感がするのでパス
779:デフォルトの名無しさん
18/04/02 11:37:34.04 GUMdRf0S0.net
組込みならverilog
780:デフォルトの名無しさん
18/04/02 14:47:00.17 r6uHUG7/0.net
C#はないわ
781:デフォルトの名無しさん
18/04/02 15:09:03.97 +y0jgVYha.net
C, C# はアリ
C++みたいな汚い言語はナシ
782:デフォルトの名無しさん
18/04/02 15:11:32.65 hvd81u+Da.net
Cライクな言語なら何でもこいだわ
(知らないのは新たに勉強せざるを得ないが)
1人で書くのは大抵C++
783:デフォルトの名無しさん
18/04/02 16:32:47.98 gGbBmtO80.net
C、C#、Goが好き
784:デフォルトの名無しさん
18/04/02 17:06:51.28 E1iWIfmB0.net
C++17かなり良くなってきたね
C++98での苦行が嘘のよう
785:デフォルトの名無しさん
18/04/02 17:07:57.92 NgLCsptVp.net
c++はテンプレート辺りから怪しくなって来た。
786:デフォルトの名無しさん
18/04/02 17:35:10.19 Hj+Kq4pv0.net
オールアセンブラで組んでた人が楽になるための言語。
787:デフォルトの名無しさん
18/04/02 17:46:48.43 E1iWIfmB0.net
STLを初めて見た頃は違和感ありありだったけど
それはテンプレートを使うからでも、見た目が悪いからでもなく、中途半端だったから
C++11から以後、そのへんの補完工事が始まったのがありがたい
788:デフォルトの名無しさん
18/04/02 17:52:55.07 NgLCsptVp.net
結局テンプレートって、型をオブジェクト型に統一してしまえばいいだけで、あんまり意味無いよな。
789:デフォルトの名無しさん
18/04/02 18:00:26.75 E1iWIfmB0.net
Smalltalk風の継承モデルねえ
正直、俺も昔は盲信したことがあって今は恥じている
テンプレートならコンパイラがやってくれることを
自前でdynami
790:c_castなんかやだよ nested_exceptionとかは仕方ないけどね
791:デフォルトの名無しさん
18/04/02 19:47:22.47 yiGPtloFa.net
>>761
Javaなんかは内部でそうやって実現してるな。
792:デフォルトの名無しさん
18/04/02 20:33:40.82 EffuLSkeM.net
よそでやれ
793:デフォルトの名無しさん
18/04/02 22:15:26.67 .net
>>761
そこはVariant型やろ
794:デフォルトの名無しさん
18/04/02 22:26:42.69 pVqQLih90.net
printfの出力をマルチスレッドで行うことはできないのでしょうか
素人的には
スレッド1 printf("abcde");
スレッド2 printf("12345");
↓
出力 a1b23c4de5
となることを考えたのですが、WinAPIのCreateThreadやC++のThreadでも、CPU使用率はシングルスレッドのときと変わらず、出力もこのようにはなりませんでした
Windows VS2017
795:片山博文MZ
18/04/02 22:29:05.76 APYGmZJZd.net
>>766
排他制御されていないCRTを探す方が難しい。
796:デフォルトの名無しさん
18/04/02 23:11:46.09 ifLgvYYR0.net
はじめまして。
大学でプログラミング関係の授業を受けるのですが、それの復習、応用などをrpgツクールmvですることは可能でしょうか?
ちょこっと調べた感じプログラミング要素もあるらしいのですが、c言語はあんまり使わないとかなんとかという記事も見られました。
どうせなら楽しく勉強したいので、ゲームを作りながら学習できないもんですかね...。
797:デフォルトの名無しさん
18/04/02 23:22:32.32 k8TtPNR/d.net
>>768
プログラミングを授業で受けるなら、ゲーム制作はツクールMVよりUnityのがいいと思うけど授業内容は進むに連れてむしろツクールMVやUnityのようなのの中身についてになるから復習がてらにはしにくい
モチベ維持にはとても良いと思います
798:デフォルトの名無しさん
18/04/02 23:33:36.58 pVqQLih90.net
>>767
ありがとうございます
799:デフォルトの名無しさん
18/04/02 23:41:50.21 335Cb1sP0.net
バリアント型は何ビットなん?って話になるのがC++。
800:デフォルトの名無しさん
18/04/03 04:15:40.51 j/8PevsK0.net
>>766
目的はどっち??
文字単位で混ぜたい?
高速化したい?
801:デフォルトの名無しさん
18/04/03 08:36:15.92 cWIVDHVHa.net
O_DSYNCって使ったことある?
802:デフォルトの名無しさん
18/04/03 09:03:18.53 Lqpq4yV4a.net
ない
803:デフォルトの名無しさん
18/04/03 17:34:38.59 IRh8xu7sd.net
ないな
804:デフォルトの名無しさん
18/04/03 20:54:03.05 TORpZXhc0.net
ないっす
JFS用?
805:デフォルトの名無しさん
18/04/04 00:52:55.41 Ssb/YhXn0.net
同期I/Oだそうだ
URLリンク(linuxjm.osdn.jp)
806:デフォルトの名無しさん
18/04/04 02:32:43.57 h2UR4/YMa.net
でっていう
807:デフォルトの名無しさん
18/04/04 11:23:02.06 yTnGZmgQp.net
同期ってのは、処理が終わるまで帰って来ないって話だ。
下手すっと何秒も帰って来ないから、そこら中が固まる。
808:デフォルトの名無しさん
18/04/04 15:35:44.60 kI4IT8Vg0.net
同期というより直列だね
809:デフォルトの名無しさん
18/04/04 21:14:25.41 rBWooG9b0.net
動悸I/O
810:デフォルトの名無しさん
18/04/04 21:17:17.94 iV3ol7kd0.net
同期/非同期 ブロッキング/ノンブロッキング
811:デフォルトの名無しさん
18/04/04 22:06:43.40 .net
同期の絆
812:デフォルトの名無しさん
18/04/04 22:10:42.29 tDZB1fULM.net
貴様と俺とは同期のファイル
813:デフォルトの名無しさん
18/04/05 08:17:37.54 zuAyx/JN0.net
数値計算手法の一つである陰解法って陽解法とどう違うんだろう?まったく理解が進まん
陰解法での次ステップの状態を計算するには陽解法と違って次ステップでの値が含まれてる関係で行列の方程式?を解かなければならないらしいけど、その方程式で導く値がどう答えに結びついていくのかがわからない
(最終的にはC言語のプログラムに落とし込みたい。陽解法のプログラムはもう作ってあるんで多少なりとも流用できると楽なんだけどそう簡単にはいかんよね?)
814:デフォルトの名無しさん
18/04/05 12:42:25.18 O2KVno4c0.net
平たく言うと
100秒後の状態を得るのに途中の一つずつを100個全部求めなきゃいけないのが陽解法
10秒ごとの計算を10回、でいいのが陰解法
陰解法はかんたんに未来を得られる分、行列計算が面倒になる
815:デフォルトの名無しさん
18/04/05 23:51:02.65 Un4TbCjZ0.net
これなんですけど、printfのとこの"%2c"で、
" %2c"
" %2c "
など空白を入れることで配列が変わってくるのですが、前に空白と後ろに空白のときの規則性がわかりません。教えて欲しいです。
URLリンク(i.imgur.com)
816:デフォルトの名無しさん
18/04/06 00:10:45.42 alNyslUNM.net
もっと具体的に
817:デフォルトの名無しさん
18/04/06 05:54:14.00 dKA/BnpB0.net
>>787
質問にある“配列”てのは、画面に出力される結果のことかな?
表示される文字やその順番は同じだけど、文字の間の空白の数が違う、と。
プログラミング界隈では“配列”って言葉は特定の意味を持った専門用語だし、
問題のプログラムはその意味での配列を使ってないから軽く混乱を招くかと。
818:デフォルトの名無しさん
18/04/07 07:48:11.30 mjL64jtF0.net
配置とかか?自分の試した結果で理解しろよ
819:デフォルトの名無しさん
18/04/07 13:51:14.96 Bd1xKzd/0.net
表示系の2バイト文字の扱い云々な気がする。
820:デフォルトの名無しさん
18/04/07 15:06:53.28 bMqQKRLP0.net
>>787
%2c の部分は右詰めで幅2文字の指定になるが c なので常に1文字の指定になり
引数の int 型数値は unsigned char に変換されて出力される。つまり %2c の部分
だけでスペース1文字と引数で与えた1文字が出力される。(もちろん端末によっては
引数の値によって1文字の扱いにならないかも知れないが、その辺は説明が長く
なるので省略)。
後はその前後にスペースを付け加えて出すかだけの問題。そのプログラムには
改行がないので全て繋がって出力される。(1回も改行を出力しないままプログラムが
終わるので実行環境によっては出力の後に続けてシェルのプロンプトが出るかも
知れない)。
821:デフォルトの名無しさん
18/04/07 15:19:36.81 vVe4gpjb0.net
判りにくい日本語だな
判るものもかえって判らなくなるくらいひどい
822:デフォルトの名無しさん
18/04/07 16:08:23.10 bMqQKRLP0.net
じゃあ分かり易く書き換えてくれ。
823:デフォルトの名無しさん
18/04/07 19:07:44.77 jn0jIz6fd.net
まず、%2cは必ず「ブランク*」(*は任意の1文字)になる。
その上で整形用のブランクはprintfを分けて、
ブランク以外の文字とかで試してみろ。
824:デフォルトの名無しさん
18/04/07 21:25:17.61 I35+hkP6a.net
>>745
アセンブラからきたわいCの楽さに歓喜
825:デフォルトの名無しさん
18/04/07 21:49:40.43 .net
Visual BasicとかPerlとかから入った自分としては、
Cのほうが簡単に書ける場面もあれば
VBSやVBAがいい場面もあればPerlがいい場面もあって
要はどの言語でも楽しく書ければそれでええやん
826:デフォルトの名無しさん
18/04/08 06:56:45.64 oETTfDn00.net
ワイはbash + sed + cの三点セットや
827:デフォルトの名無しさん
18/04/09 19:49:06.28 bmGQy2qQ
828:0.net
829:デフォルトの名無しさん
18/04/09 20:21:36.79 qxDYyi6TH.net
一切出てこない質問者の相手はいらんだろ
830:デフォルトの名無しさん
18/04/15 15:16:14.29 iG9vZW44M.net
上の写真を見る限りjが増えたタイミングでprintfで改行コード入れてるっぽいけどそれならiのforが終わったタイミングで改行コード入れれば動くんじゃないですか?
なぜiが8までしか回さないのかわからないですが…
831:デフォルトの名無しさん
18/04/15 15:38:09.01 MyboI2lC0.net
しょーもない質問ですいません
vs2017で勉強してるど素人なんですが
コードをミスして修正しようとすると文字が上書きされて
文字を挿入できないん時があるんですが、
なぜでしょうか?
832:デフォルトの名無しさん
18/04/15 15:41:00.10 .net
>>802
URLリンク(ja.wikipedia.org)
833:デフォルトの名無しさん
18/04/15 15:42:04.62 CIuag2/D0.net
>>802
こっちで聞けよ
Visual Studio 2017 Part5
スレリンク(tech板)
834:デフォルトの名無しさん
18/04/15 15:50:05.64 ASLFteC6a.net
上書きモードに誤爆したろ
835:デフォルトの名無しさん
18/04/15 15:54:21.86 0gUBaoqj0.net
>>801
すまんが、どこに改行コードがあるのか、iが8までとは何の事か、
俺にはさっぱり読み取れねぇ
お前とは見えてる世界が違うようだ
836:デフォルトの名無しさん
18/04/15 16:17:29.71 .net
>>806
この程度読み取れないようじゃエスパーに向いてないよ
> どこに改行コードがあるのか
予想回答「int c=‘ ‘;」って改行コードですよね?
iが増えるたびに改行コードをprintしたいんですよね?
> iが8までとは何の事か
予想回答:すみません、jの間違いです!
837:デフォルトの名無しさん
18/04/15 16:20:53.00 LLURRdNlM.net
改行は'¥n'
' 'はスペース
838:デフォルトの名無しさん
18/04/15 16:30:24.50 bKUHpU4ed.net
>>806
大丈夫
おれもさっぱりわからん
839:デフォルトの名無しさん
18/04/15 19:02:55.57 +NxoeMlk0.net
C言語でのステートマシンの設計や、上手なコーディングについて
体系的に学べるお勧めの書籍やサイト教えて下さい。
840:デフォルトの名無しさん
18/04/15 19:08:40.56 +NxoeMlk0.net
連投で申し訳ないけど
この辺の技術ってC++勉強した方が身に付くのかな?
841:デフォルトの名無しさん
18/04/15 19:10:47.07 7zIgNBcs0.net
Cはライブラリが貧弱でほとんど自作しないといけない。
C++はその辺多少マシ。Boostとかあるし。
842:デフォルトの名無しさん
18/04/15 19:14:55.01 7zIgNBcs0.net
至極の名言教えてやるぜ。受け売りだけどな。
コードを効率的にしたり、最強の最適化だったりするそれが一番効くのは書かないことだ。
書くと何らかの負荷になる、コードもグチャグチャになる。
必要なことだけ書いて後は流れに任せるのが上達の道。
843:デフォルトの名無しさん
18/04/15 19:47:03.66 aZbHy3F9d.net
C++って言うほどライブラリ充実してるか?
844:デフォルトの名無しさん
18/04/15 19:59:11.25 +NxoeMlk0.net
うーん・・・人によって考え方が違うから正解なんてないし
2chのこのレスだけでは具体的な提示とか難しいよね
本当に必要な処理だけ書いてたら関数長くなって
見通し悪くなったりメンテし辛くなったりしない?
845:デフォルトの名無しさん
18/04/15 20:03:21.51 IgQGrpHk0.net
>>810
ない。
>>811
関係ない。
君は本質的な「プログラミングの腕前」を上達させる為に、体系的に学べる物を探しているんだろ?
ならそれは言語には全く関係ないことは分かるだろ。
846: そして、そんな物は今はない。なぜならプログラミングは今もまだ発展途上だから。 そもそも歴史が浅い。プログラミングには100年ほどの歴史しかないし、 プログラミング作法が学問として成立してからは50年ほどしか経ってない。 だから現在でも試行錯誤中なんだよ。 それは今更C#/C++/Javaがラムダを採用したことからも分かるだろ。 ラムダ自体はLispの昔からあった。 そしてこれらの言語はそれを知っていて不採用としたわけだが、 今更の方向転換=間違いを認めた、ということなんだよ。 まだそれくらいあやふやなものだって事。 勿論各自が「オレオレ流スーパーハッカー道」を上梓することは出来るのだけど、 実際そういう奴はいないようだ。 とはいえ、結果的に全ての言語が似たり寄ったりになってきているから、 これは成熟してきていることを意味する。 となると、今後は体系化されていくだろうし、そういうサイトや本が現れてきてもおかしくない。 今は>>813みたいな、一言集みたいなのしかないね。 https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/
847:デフォルトの名無しさん
18/04/15 20:18:14.92 CIuag2/D0.net
>>814
C に比べたら...
って話だろ
848:
18/04/15 20:22:19.20 vjxfJMST0.net
>>816
C++/C#/Java のラムダ式ってラムダ式じゃないと表現できない「何か」を表現する、というよりは、シンタックスシュガーとしてのラムダ式であることが不満です
849:デフォルトの名無しさん
18/04/15 20:26:36.28 IgQGrpHk0.net
>>818
> ラムダ式じゃないと表現できない「何か」
とは何?
俺の理解では、これは存在しない。ラムダ無しでもチューリング完全だったろ。
850:
18/04/15 20:31:05.37 vjxfJMST0.net
>>819
Y コンビネーターとか、どうですか?
851:デフォルトの名無しさん
18/04/15 20:33:38.79 8Bp5iafSd.net
>>818
ラムダ式じゃないと表現できない何かって何さ
定義した所の環境を使った第一級オブジェクトなプロシージャではだめなのか?
852:デフォルトの名無しさん
18/04/15 20:35:56.05 IgQGrpHk0.net
>>820
すまんが俺はLisp使いではないから、それについては知らない。
ただ、それが本当に役に立つものなら、C++は数年後に採用するだろうね。
853:デフォルトの名無しさん
18/04/15 21:29:24.63 7zIgNBcs0.net
>>815
一応言っておくと関数分割も必要なら必要なこととして処理されるべき。
ちなみに関数分割したほうが限度はあるけどキャッシュに乗って早くなる。
854:デフォルトの名無しさん
18/04/15 23:30:02.09 sXJBpbWg0.net
この板でチューリング完全て言葉をみるとは思わなかった
855:デフォルトの名無しさん
18/04/15 23:59:29.91 L6Qt+I9Ha.net
だいたい、どう抽象化するのがええのかって話でチューリング完全は関係ないからねえ。
前提としてはそうでないとあかんかも知れんけど。
856:デフォルトの名無しさん
18/04/16 00:40:26.76 qQ0bjYjD0.net
抽象化については「オブジェクト指向」で今のところ決着してるだろ。
これを否定する見解や言語は無いと思うが。
857:デフォルトの名無しさん
18/04/16 04:32:33.72 94linQhp0.net
コンビネータでも実装するか?
858:デフォルトの名無しさん
18/04/16 23:38:04.25 qQ0bjYjD0.net
>>820
>>827
お前ら知ってるのならそのメリットを(出来れば具体的に)書いてみてくれないか?
一応Wiki読んだが、
> 明示的に再帰を書かずに再帰を実現する為に用いる事ができる。
> なお、一般にそういった言語では普通に再帰が使えるので、
> プログラミングにおいてはパズル的なテクニック以上の意味は無い。
> URLリンク(ja.wikipedia.org)
859:D%E3%83%BC%E3%82%BF なら、いらねえし、採用されることはないと思うが。
860:
18/04/17 00:06:31.67 gWiyCqxa0.net
>>828
その wikipedia の解説はちょっと本質からはずれている気がする
「明示的な識別子を含まないで再帰関数が記述できる」くらいか
ラムダ表現を採用している、というのなら不動点コンビネータくらいは記述できないといけないのではないか?
いいかえれば不動点コンビネータを表現できないラムダ表現は「何か大事な部分が欠けている」
ラムダ表現は理論的なモデル(計算可能性を論じるなど)として考案されたもので、実用とか効率とかからは遠く離れている
ラムダ表現を売りにする言語(lisp とか)ならともかく、C#/C++/Java のような実用・効率を求める言語で単に「ラムダ表現ができる」「簡潔だ」くらいの理由で採用されるのは、無目的に言語仕様を拡張しているという理由で個人的には不満
さらにはラムダ表現を老害フィルタがわりに使う者もいたりするが、そういうのには賛同しがたい
861:デフォルトの名無しさん
18/04/17 01:21:31.43 RhwG6Rqia.net
javascriptだとアリって気がするよな。
なぜかは知らんが。まあlisp感あるからか。
862:デフォルトの名無しさん
18/04/17 08:33:39.92 dXM64r3I0.net
javascriptにはなぜかオブジェクト指向が無いからな
コンビネータはC++には早晩実装されそうな気がする
863:デフォルトの名無しさん
18/04/17 09:37:19.33 tZLDyJo/0.net
C++やJavaはクラスベースのオブジェクト指向言語
JavaScriptはプロトタイプベースのオブジェクト指向言語
864:デフォルトの名無しさん
18/04/17 23:42:23.84 Yk52Q7IR0.net
>>829
今の仕様で不動点コンビネータが記述できるのかどうかは俺には分からないが、
焦点はその先で、「記述できたら何がうれしいのだ?」なのだと思うよ。
実用言語で重視されるのは当然「実用性」であって、「学術性」ではない。
逆に、実用性皆無なら、当該部分が削除された状態で採用されるべきだ。
例えばC#は意図的にインラインアセンブラを禁止している。
ヘルスバーグのインタビューがググッても出てこないのだが、心は、
「C#のコードならメンテできます」の為の必要知識量を抑えること、だった。
これは長期的に要員確保の難易度を下げ、結果的にメンテ性を上げる。
これも実用言語では重要だよ。
アメリカでPythonを使うのも、Python自体が良い言語だと思っている奴は皆無で、
「Pythonならみんな読めるし書けるから」だからね。
そのコードが10年以上使われることが分かっているのなら、
10年後に要員確保できない可能性がある言語を選択するのは間違いだし。
Cは、(時代的に無理ではあったが)何でもありの状態で、
文法は極めて簡単だが問題は中で何をやっているかで、読んでみなければ分からない。
「Cのコードならメンテできます」とか、簡単に言うのは無理だろ。
C#はイミフなコード構成(大体はCでも警告が出るもの)も禁止されており、
一応、エンジニアが「C#ならメンテできます」と言えることを目指している。
(上手く行っているとは言い難い部分もあるが)
酷い話だが、Javaは10年間全く進歩しないことによってこれを達成してしまっているし。
だから、話を戻すと、
実用言語においては実用性のある機能は取り入れるべきだが、
実用性がない機能は捨てられるべきなんだよ。
(大は小を兼ねる、多めに採用しとけ、ではない。同様に無駄に構文糖が多いのも問題)
今回ラムダが矮小化されて取り込まれているということなら、
取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。
勿論今後覆る可能性もあるけどね。
865:デフォルトの名無しさん
18/04/17 23:55:44.13 zXGef27d0.net
そういうのは自宅の壁に
866:
18/04/18 00:05:44.11 0XfxQo2f0.net
>>833
>取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。
受動的な態度であればそうなるが、あえて私の感覚を述べるとすれば、
ラムダ式を C++/C#/Java(特にC++)に取り込む価値があったのか?
という点、C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい
シンタックスシュガーを全否定するわけではない
「ラムダ式」という偉大な名前に反して、実際にできることは一般的な「ラムダ式」のカバーする領域よりも狭くなっているのを「不満」と感じているだけなのかもしれない
867:デフォルトの名無しさん
18/04/18 01:03:16.68 fAoQEHU80.net
>>835
> C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい
一応それが禿がラムダをC++に採用するのに反対している理由だったと聞いたが、
結果的には折れたんだろ。
昨今は「出来ること」よりも「ソースコードの見やすさ」が重視されているし、妥当だと思うが。
比較すると、
1. そもそも operator()()(ファンクタ)では関数に見えない。これが最大のガン。
2. C/C++は階層記述能力が無く、関数内関数が出来ない。このため、
局所的に関数ポインタを使いたいだけの場合でも上位階層に関数を記述するしかなく、
結果的にその関数は他からも見える(使える)状態になってしまう。
匿名関数であれば、そこでしか使っていない事を文法的に保証できる。
3. ファンクタだとインスタンス変数は必ずコピーすることになる。
ラムダだとおそらく直接掴める場合もあり、この場合はケチれる。
(ただしこれは実装による)
だから関数内関数(クロージャ付き、最低限その階層の変数は見えるもの=GCC拡張の仕様でいい)があれば、
1,2,3とも達成できるし、要らなかったかな、とも思う。
というか、C/C++とも、関数内関数(階層)は無しで押し切るつもりかよー、とは思う。
ラムダよりこっちの方が必要な気がするのだが。
868:デフォルトの名無しさん
18/04/18 02:30:28.15 vVNlUpo0d.net
Cとシェルスクリプトだけで生きていきたいんですが食べていけますか?
またそういった分野らOSSコミッター以外でありますでしょうか?
869:デフォルトの名無しさん
18/04/18 02:40:14.81 whM0Cl8U0.net
あるとするなら組込系かな
回路図とアセンブラは出来るの?
870:デフォルトの名無しさん
18/04/18 03:38:30.78 5PSc4Ve9d.net
>>838
ありがとうございます
871:デフォルトの名無しさん
18/04/18 06:50:02.81 .net
今どき組み込み系もPythonできなきゃやっていけない時代よ
872:デフォルトの名無しさん
18/04/18 06:58:40.17 JUjvxXNW0.net
組み込みは圧倒的にC言語が多い
873:デフォルトの名無しさん
18/04/18 07:26:37.24 .net
>>841
ツール類は一昔前ならPerl/Ruby/TTL(TeraTerm)/VBA、今はPythonが必須だよ
874:デフォルトの名無しさん
18/04/18 07:55:12.06 JUjvxXNW0.net
ツール類ってなんだよ
組み込みの話をしてるの
機器内部のファームウェア
875:デフォルトの名無しさん
18/04/18 08:03:28.70 .net
>>843
組み込み系開発者がCソースだけいじってればいいと思ってんのか
876:デフォルトの名無しさん
18/04/18 08:06:09.63 JUjvxXNW0.net
大部分の組み込みだとYES
他の言語など使わない
877:デフォルトの名無しさん
18/04/18 08:07:13.14 JUjvxXNW0.net
C言語以外が必要なのは大規模な物だけ
878:デフォルトの名無しさん
18/04/18 08:15:48.27 Acg84ZKa0.net
>>837
そういうことはプログラム板ではなくプログラマ板で聞いてこい
879:デフォルトの名無しさん
18/04/18 08:30:18.84 8g/N/Bw3a.net
>>844
いい。
880:デフォルトの名無しさん
18/04/18 08:59:26.18 whM0Cl8U0.net
最悪、シーケンサ(PC)でラダー図とアセンブラ触ってりゃ
行けるでしょ。
MELSEC-iQ-RとかはC言語で書く(OSはVxWorks)
ま所詮は他人の人生である
881:デフォルトの名無しさん
18/04/18 09:49:03.96 bX/oR0u10.net
Cでさえオーバースペックでアセンブラという場合まである
882:デフォルトの名無しさん
18/04/18 09:57:01.68 8LhMtFC1d.net
アセンブラでさえオーバースペックでバイナリエディタという場合まである
883:デフォルトの名無しさん
18/04/18 10:32:00.37 MgMoBevw0.net
>>851
参考までにアセンブラがオーバースペックなマイコン(SoC)って何処の製品か教えて
884:デフォルトの名無しさん
18/04/18 10:40:41.42 0P72JrSeM.net
あるとすればIMSAIとかだろうけど、流石にネタだろ
885:デフォルトの名無しさん
18/04/18 11:16:51.20 gg2GabAwa.net
プログラムを動かすボードが貧弱でも開発は豪華なPCでやるんだから最低でもアセンブラ使えるようにはするだろう。
作ったばかりのCPUで他のCPUとの互換性が全くなくアセンブラもまだない、なんていう特殊な状況でない限りは。
886:デフォルトの名無しさん
18/04/18 11:45:29.90 8g/N/Bw3a.net
マウンティング頑張れ
887:デフォルトの名無しさん
18/04/18 12:36:20.65 8LhMtFC1d.net
ごめんなさい
ネタです
888:デフォルトの名無しさん
18/04/18 12:57:38.66 gg2GabAwa.net
mount /dev/sda
889:デフォルトの名無しさん
18/04/18 23:26:56.70 1I0zrtwW0.net
組込み屋だけど会社によって状況違うんだなとしみじみ
890:デフォルトの名無しさん
18/04/18 23:58:14.05 BI6oaZDa0.net
この頃は組み込みって言っても Linux が動いちゃうような小さいボードあるしな。
SDメモリに平気で何Gもデータ入れちゃったりもできるし。なんとういか、時代は変わったよな。
昔は2KBと4KBのROMに詰め込むためにビット単位で削っていたもんな。
891:デフォルトの名無しさん
18/04/19 00:35:24.22 q2wFspbLM.net
組み込みって昔から小っちゃいのから馬鹿デッカいものまであるから一括りにするのが間違い
892:850
18/04/19 05:33:01.08 IwtdBTTY0.net
なんかネタレスで返されてるな
とあるLEDアレイの案件では並列に重きを置き
CPUあたりの処理能力は思いっきり低い
なんてのがあったんだが
893:デフォルトの名無しさん
18/04/19 12:39:01.79 oHD1faOFa.net
あまりに面倒ならハードウェアで回路追加して解決
894:デフォルトの名無しさん
18/04/19 22:41:42.50 Uac+F3+Td.net
あんまりそれすると、またハード屋に小言言われるぞ。
895:デフォルトの名無しさん
18/04/19 23:07:31.74 p3OUOmjs0.net
int a[] = {0,1,2,3};
char b =0;
scanf("%d",&b);
printf("%d",a[b]);
知恵袋でこんな質問があって俺も不思議に思って持ってきたんだけど
色んな数字入れても0になるとか書かれてたんだけどこれどうなってるの?
896:デフォルトの名無しさん
18/04/19 23:17:20.36 /9NYPZwG0.net
>>864
自分で試してみた?
897:デフォルトの名無しさん
18/04/19 23:21:55.11 p3OUOmjs0.net
>>865
100入れてみたら3が返ってきたw
898:
18/04/19 23:22:54.38 b+0fRBYw0.net
>>864
>色んな数字入れても0になるとか
ならない
URLリンク(ideone.com)
899:デフォルトの名無しさん
18/04/19 23:23:39.27 XF7JHHHf0.net
エンディアンによるような気もするがー
%d は int の大きさを持った器のポインタを要求してるのに
char の大きさの器を渡してるから どうなろうがしったこっちゃない鼻から悪魔系の動作
900:デフォルトの名無しさん
18/04/19 23:29:53.26 p3OUOmjs0.net
これがエラーにならず動いてしまうという悪魔のCの動作か
901:デフォルトの名無しさん
18/04/19 23:30:32.30 /9NYPZwG0.net
char b[4] = {0};
scanf("%d",&b[0]);
printf("%d %d %d %d\n",b[0],b[1],b[2],b[3]);
これをVCとGCCで試してみた
結果は配列先頭要素に代入され、残りは0のままだった
902:デフォルトの名無しさん
18/04/19 23:31:48.87 x2EYL8xQ0.net
>>867
bの型がcharなのが�
903:フなんだからそこは間違えるなよ
904:デフォルトの名無しさん
18/04/19 23:33:18.23 XF7JHHHf0.net
>>870
入力で負の値を渡すと…
905:デフォルトの名無しさん
18/04/19 23:33:42.76 lwH23MPfa.net
intだからな
906:デフォルトの名無しさん
18/04/19 23:36:41.07 /9NYPZwG0.net
なるほど、入力値が小さいときは、
後ろの配列が変わってないかのように見えるだけって事か
907:
18/04/19 23:38:11.10 b+0fRBYw0.net
>>868
char 配列の大きさを表す変数が int であっても、あるいはそうでなくても、それは関係ないのでは?
908:デフォルトの名無しさん
18/04/19 23:38:53.72 XF7JHHHf0.net
>>874
そそ 0でフィルしてるから問題ないようにみえるけど、
0 以外でフィルしてやると副作用おこしてるのがわかるよ
909:
18/04/19 23:39:18.81 b+0fRBYw0.net
>>871
あ!
910:デフォルトの名無しさん
18/04/19 23:40:18.78 XF7JHHHf0.net
>>875
printf ではなく scanf のフォーマットでの %d 指定に char 変数のポインタを渡してる話よ?
911:
18/04/19 23:46:08.02 b+0fRBYw0.net
>>878
やっと気が付いた…
>>877
912:デフォルトの名無しさん
18/04/20 00:50:00.05 G/kLZxdya.net
警告って出ないもん?
913:デフォルトの名無しさん
18/04/20 01:57:12.33 wjKqEKEv0.net
関数の引数はスタックサイズに丸められるよ
914:デフォルトの名無しさん
18/04/20 02:04:42.67 G/kLZxdya.net
ポインタだしなあ
915:デフォルトの名無しさん
18/04/20 06:13:59.91 EDYH6GYd0.net
>>880
GCC だと -Wall を指定すれば警告が出るね。
書式 %d に対して *char の引数 [-Wformat]
配列の添字が char 型 [-Wchar-subscripts]
916:デフォルトの名無しさん
18/04/20 06:51:33.68 9tWrHk9l0.net
>>881
この1行にアホが詰まってる
会話の内容も実際の動作も用語もわかってないっていう
917:デフォルトの名無しさん
18/04/20 07:58:37.73 eEDtLY6e0.net
アホな点をいくつ見つけられるかで
各自のアホ度を測定できるな
918:デフォルトの名無しさん
18/04/20 09:31:45.52 OLFb+zqBd.net
それがデバッグと言われる行為だろ?
919:デフォルトの名無しさん
18/04/20 10:21:13.71 xd9k5+f1M.net
脳がwormhole だらけなんでしょ
920:デフォルトの名無しさん
18/04/20 14:21:22.42 33OB1hDw0.net
char *line;
scanf("%s", &line);//dogが入る
if(line=="dog")
{
printf("dogですよ");
}
これってなんでdogと合わないん?
921:デフォルトの名無しさん
18/04/20 14:26:31.37 UQRLXIIQ0.net
>>888
scanf で受けとる変数をchar型の配列にしましょう
922:デフォルトの名無しさん
18/04/20 14:30:58.92 OLFb+zqBd.net
>>888
line=="dog" という式は strcmp関数にしましょう