- 1 名前:デフォルトの名無しさん [2017/08/10(木) 20:21:23.44 ID:hEocmkh50.net]
- C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ 前 mevius.2ch.net/test/read.cgi/tech/1500293207/ www.geocities.jp/c_cpp_cs/about_c/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
- 2 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 20:44:11.22 ID:aWUdy/dyM.net]
- だめ意見にはけなしたり煽るんじゃなくて具体的な反論ができるといいね
- 3 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/10(木) 21:39:10.50 ID:Wh1e+mJZM.net]
- 帰ったらお勉強だぜ!!
- 4 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 21:51:00.72 ID:LT6YffV+0.net]
- >>1 乙です
- 5 名前:デフォルトの名無しさん mailto:sage [2017/08/11(金) 01:27:59.65 ID:DcjyhNkl0.net]
- 乙っ乙
- 6 名前:デフォルトの名無しさん [2017/08/11(金) 03:16:23.49 ID:suC9gTdR0.net]
- 乙
- 7 名前:デフォルトの名無しさん [2017/08/11(金) 08:28:05.03 ID:8TW1by1n0.net]
- >>2
煽りコントで笑いをとってたコメディアンのこと?
- 8 名前:デフォルトの名無しさん mailto:sage [2017/08/11(金) 11:41:11.10 ID:JIMcqw5z0.net]
- 最近はPythonやっとけみたいな意見が多いんですが、
今、Cをやるメリットは何かありますか?
- 9 名前:デフォルトの名無しさん mailto:sage [2017/08/11(金) 12:00:57.14 ID:Ca8C76qb0.net]
- 両方やればいい
- 10 名前:デフォルトの名無しさん [2017/08/11(金) 12:14:58.92 ID:8TW1by1n0.net]
- ハード・ソフト両利きになるには絶好の近道
- 11 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 10:34:20.89 ID:mpXbTRP+d.net]
- IYHスレのかほりがするw
- 12 名前:デフォルトの名無しさん [2017/08/12(土) 16:57:37.18 ID:6AXlD0eu0.net]
- >>8
それはあなたが今後何をやりたいかによる。
- 13 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 15:57:24.74 ID:m4Rk+6os0.net]
- >>8
結局のところ C は基本中の基本で、避けて通れない、いずれやらないと仕方ない、という状況に追い込まれる
- 14 名前:デフォルトの名無しさん [2017/08/13(日) 16:07:14.55 ID:2GAXDCvV0.net]
- そういう意味では、あと英語な
マニュアルや規格票といえばまず英語 日本語版はないか、あっても10年遅れとか そればかりか自分のコードのマニュアルやコメントも 英語で書けとだいたい言われる
- 15 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 17:01:50.43 ID:aXXBQeA80.net]
- え?そんな所あるの?外資系とか?
まあ最初から英語できることを前提に雇っているならわかるけど、そうでない会社で それやったらネイティブが忍耐をもってしても解読困難な英語モドキの文書の山に なってしまうのではないか?
- 16 名前:デフォルトの名無しさん [2017/08/13(日) 17:33:10.24 ID:2GAXDCvV0.net]
- 解読困難な英語モドキすっげええ、うんざりするほどあるよ
ずーずー弁しぇからしかこんだらず、なんて次元じゃねえ訛り方 ・・・まあ恥ずかしながら日本人の訛り方はトップグループなんだが
- 17 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 17:59:59.41 ID:aXXBQeA80.net]
- omg
- 18 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 18:13:02.46 ID:WSSr83j30.net]
- >>14
英語の鍛え方として王道はないものか‥ 今構文の教科書(昔の受験用,今の時代には難しすぎるかな‥)をさらっている.https://www.amazon.co.jp/dp/4828501134
- 19 名前:デフォルトの名無しさん [2017/08/13(日) 18:29:50.42 ID:2GAXDCvV0.net]
- 技術英語を憶えるのに一般英語は邪魔
技術英語独特のボキャ貧はマニュアルや論文でしか学べない
- 20 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 18:34:17.87 ID:8MgVlazH0.net]
- brother と sister は習っても、sibling を学校で習った覚えは無いな
- 21 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 18:39:03.83 ID:o1ygPh5l0.net]
- >>18
自分がある程度詳しい分野のちゃんとした英語のドキュメントを読んでると、ここはこういう意味か、こんな時はこんな表現するのか、と言うのがある程度身についてくると思う。
- 22 名前:デフォルトの名無しさん [2017/08/13(日) 18:54:33.40 ID:2GAXDCvV0.net]
- >>20
- 23 名前:デフォルトの名無しさん mailto:sage [2017/08/14(月) 00:49:40.57 ID:FXoIQaW20.net]
- RFC読んだ後は、プログラム関係の文書だけは、英語でも何となくわかるようになったなぁ
人の和訳みながらよんだだけだけど
- 24 名前:デフォルトの名無しさん mailto:sage [2017/08/14(月) 23:14:42.24 ID:G751meAI0.net]
- 苦手意識がなくなるだけでもかなりの前進かと
- 25 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 03:13:15.44 ID:J8ft/v5zd.net]
- C言語の勉強をするためのおすすめのIDEを教えてください
- 26 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 06:06:58.39 ID:g+tkU2cqd.net]
- Visual Studio
- 27 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 08:20:25.87 ID:0Vt0rye20.net]
- Vim Emacs
- 28 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 09:23:43.88 ID:zAUipZYH0.net]
- 猫こそ至高
- 29 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 10:15:56.42 ID:xWmu06fM0.net]
- VisualStudioに一票
- 30 名前:デフォルトの名無しさん [2017/08/16(水) 11:07:32.90 ID:J2krMHFz0.net]
- エディタで充分
IDEいらね
- 31 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 11:12:04.39 ID:79/XacN36.net]
- Cの文法だけ知りたいんならIDEで身につくと思うけど、CのUNIX的な使い方とかMakefileの作り方まで含むならやっぱりターミナルでVimかEmacsが一番身につくと思うな
- 32 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 11:17:42.10 ID:Xm1ENLXg0.net]
- ほんのさわりだけの話なら >>1 の
https://paiza.io/ https://ideone.com/ codepad.org/ で
- 33 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 11:42:34.56 ID:CBEVrlMza.net]
- 覚えるだけとか編集するにはPlumaで良かった
- 34 名前:デフォルトの名無しさん [2017/08/16(水) 12:30:21.85 ID:J2krMHFz0.net]
- IDEであろうがなかろうが
複数の環境を使ったほうがいい 1つの環境だけ使っていると 間違った知識をたっぷり吹き込まれる その環境が悪いわけじゃなく Cには処理系定義だの未規定だのがたくさんあるからだ
- 35 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 12:58:54.66 ID:MtMWIb12M.net]
- 汎用機でトライグラフとワードアドレッシングな奴をやっておけば完璧だね
- 36 名前:デフォルトの名無しさん [2017/08/16(水) 17:14:38.09 ID:J2krMHFz0.net]
- 関数を呼び出すたびごとにいちいちGETMAINするのかと思ったら違った
- 37 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 18:42:31.13 ID:eXMOwWIc0.net]
- 実際のところトライグラフの環境ってあるのかね
汎用機のEBCDIC(英字)も記号は一通りあるよね
- 38 名前:デフォルトの名無しさん [2017/08/16(水) 21:24:11.17 ID:J2krMHFz0.net]
- カード穿孔機くらいかな
トライグラフの必要性を感じたデバイスは
- 39 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 00:56:17.97 ID:ugZ0fkzt0.net]
- NEC MSコンピューターとかかな
シリーズで言うと MS120,MS140,MS190
- 40 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 06:39:42.32 ID:3FDT79Ua0.net]
- ヨーロッパとかで英語以外の国で、C言語で使う記号のところに別の文字が割り当てられてるケースとか。文字コードまたはキーボードのキーとして。
- 41 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 06:59:39.42 ID:qA/UZuuOM.net]
- どうでもいいことばかりだな
- 42 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 07:30:42.82 ID:5FUl5JPE0.net]
- バックスラッシュがあるべき文字コードの場所が
現地の通貨記号に置き換わってる環境でトライグラフ使わね?
- 43 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 07:50:53.84 ID:wL10pSGX0.net]
- >>42
そもそもそんな環境で開発なんてしたことないし
- 44 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 08:03:54.42 ID:zzoRHhsR0.net]
- >>42
どこの国だよ 糞だなwww
- 45 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 08:26:01.37 ID:NamoDwZf0.net]
- ノーマークでトライグラフになっちまってたことは過去に何度か・・・
(s)printf 中の format 文字列で
- 46 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 09:31:58.57 ID:3IL/r6zdM.net]
- >>42
半角の¥は廃止すべき
- 47 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 10:45:25.58 ID:ugZ0fkzt0.net]
- >>45
MJD?
- 48 名前:デフォルトの名無しさん [2017/08/17(木) 10:55:11.53 ID:NamoDwZf0.net]
- >>47
最近のコンパイラはデフォでトライグラフを抑制してくれてるようだけど 古いコンパイラは、そんな気がきいてないから <
- 49 名前:br>
警告文 "warning??!" ってやって実際の出力が warning| で なんじゃこりゃ?と [] - [ここ壊れてます]
- 50 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 10:59:46.51 ID:NamoDwZf0.net]
- それでも ??/ → \ で
次の文字をエスケープして大事故にというのは無かったかな
- 51 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 11:00:52.21 ID:OslnP8rdM.net]
- >>47
>>45じゃないけど "不正な値です: ??(10)" ってやったら "不正な値です: [10)" ってなって はあ?ってなったことあるわ
- 52 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 12:36:35.61 ID:kQ6hfaFr0.net]
- CとC++は馬鹿には使えない
惨事が起きるから 使わせてはいけないと聞いた
- 53 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 13:57:01.69 ID:ylZytAyh0.net]
- いくつかのコンパイラはトライグラフがデフォルトで無効になっていたと思う
- 54 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 16:57:48.81 ID:ZvDESEOS0.net]
- clとclangとgccはデフォルトで無効だし、今じゃ有効な環境のほうが珍しいんじゃないの
- 55 名前:デフォルトの名無しさん [2017/08/17(木) 21:30:33.60 ID:2RZZpZadE.net]
- char s[3] = "abc";
printf("%s %lu", s, strlen(s)); これの出力がabc 3にならず abc 9abc 9とか abcea 9abcea 9みたいに毎回不定で文字列が出力されるんですけど何でですか?
- 56 名前:片山博文MZ mailto:sage [2017/08/17(木) 21:37:39.45 ID:XnqHf7Mqd.net]
- >>54
ヌル文字が足りない。 改行がない。
- 57 名前:片山博文MZ mailto:sage [2017/08/17(木) 21:39:34.19 ID:XnqHf7Mqd.net]
- s[4]か、サイズ未指定のs[]にする。
\nを追加する。
- 58 名前:片山博文MZ mailto:sage [2017/08/17(木) 21:40:55.02 ID:XnqHf7Mqd.net]
- strlenの返却値はsize_tだから、%luは間違い。
- 59 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 23:15:30.23 ID:zzoRHhsR0.net]
- >>57
正解は?
- 60 名前:片山博文MZ mailto:sage [2017/08/17(木) 23:27:33.59 ID:XnqHf7Mqd.net]
- >>58
qiita.com/7of9/items/ca5ebf9b7861acbcf656 %zuのようだな。
- 61 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 23:35:38.09 ID:zzoRHhsR0.net]
- 組み込みのショボいライブラリじゃ使えなかったりするから
unsigned intにキャストして%u でいいや
- 62 名前:デフォルトの名無しさん [2017/08/18(金) 03:59:52.12 ID:URLOh4DLM.net]
- キャスト毛嫌いしてたんだけど、size_t や int*_t シリーズを printf 書式で使う時のベストプラクティスだと気付いてしまったよ。
- 63 名前:片山博文MZ mailto:sage [2017/08/18(金) 04:18:35.01 ID:sjvn+N2bd.net]
- サイズの変わる型キャストは、(通常無視できる程度の)少しだけコストがかかることに言及しておこう。
- 64 名前:片山博文MZ mailto:sage [2017/08/18(金) 04:20:02.39 ID:sjvn+N2bd.net]
- わずかに時間と計算量がかかるという意味のコストね。
- 65 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 07:04:19.91 ID:R7MrN97k0.net]
- printf使ってるときなら、無視できるレベルだな
- 66 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 07:10:44.43 ID:RGoxPD09M.net]
- 大抵の場合、暗黙でintに変換されるので%dで問題ない
- 67 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 07:50:44.76 ID:cQGhZEXD0.net]
- >>63
64ビットで渡すより32ビットで渡す方が普通は速い
- 68 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 07:51:44.71 ID:cQGhZEXD0.net]
- >>65
intより大きいサイズはintに変換されない
- 69 名前:デフォルトの名無しさん [2017/08/18(金) 09:48:31.67 ID:+zi/zXZ30.net]
- >>65
問題大ありだよ 64bit 環境では、sizeof sizeof 1 == 8 だぞ
- 70 名前:デフォルトの名無しさん [2017/08/18(金) 10:03:06.56 ID:+zi/zXZ30.net]
- 脇道に逸れるが整数のサイズってどいつもこいつもイマイチだね
char 8 short 16 int 32 long 64 long long 128 と、せっかく5階級あるのを無駄なく使えるようになってない
- 71 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 11:07:14.63 ID:cQGhZEXD0.net]
- どこの環境だよ
- 72 名前:デフォルトの名無しさん [2017/08/18(金) 11:55:29.20 ID:+zi/zXZ30.net]
- いや、そういう環境があったらなあと
- 73 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 12:41:24.28 ID:8ZqVNhGud.net]
- そんなに細かく分ける意味あんのかね。
64bitだけでいいだろ。
- 74 名前:デフォルトの名無しさん [2017/08/18(金) 12:46:10.63 ID:K+PXWISB0.net]
- Makefileの書き方なんだけど
makeが実行されているときに 今何を実行してるか表示されるけど 「なんでこれが実行されているんか」の理由も表示したい 依存関係の hoge: fuga を表示したい .c.o: @echo $@:$^ $(CC) $(CFLAGS) -c $< みたいに書いたりしてんだけど、全部に書くのもダサい気がするし 良い方法はないでしょうか
- 75 名前:デフォルトの名無しさん [2017/08/18(金) 15:25:50.71 ID:+zi/zXZ30.net]
- >>72
128が標準にあれば使い途いろいろあるぞ
- 76 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 15:40:25.23 ID:RRX5RBja0.net]
- >>73
GNU make なら -d (デバグ表示)とかは? ただ「なぜこれが実行される」って、ファイルの更新日時ぐらいしか ないと思うけど
- 77 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 16:57:07.47 ID:UodSk1FQ0.net]
- >>75
このコマンドを実行したのは○○より△△が古いから って言うのを知りたいんでしょ $^ の意味も知らないならROMってなよ >>73 make コマンド自体に手を入れた方が早いかも
- 78 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 18:57:47.45 ID:aoGOUUu+0.net]
- C関係ないんだから、別スレでやれよ
- 79 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 20:41:27.26 ID:2qfgYUHL0.net]
- すみません初歩的なことですが・・
前置インクリメントa++ 後置インクリメント++a がありますが、a=a+1は後置になりますよね?
- 80 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 20:44:00.68 ID:m74Y+4jlM.net]
- b=a++ と b= a= a+1 は違う気がする。
- 81 名前:片山博文MZ mailto:sage [2017/08/18(金) 20:47:26.76 ID:sjvn+N2bd.net]
- どちらでもない。
- 82 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 20:49:13.42 ID:5LpMFucB0.net]
- 加算と代入
- 83 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 20:51:16.52 ID:2qfgYUHL0.net]
- 回答有難うございます
実験してみたのですが、a=a+1は前置(a++)にも後置(++a)にもなるのですね i.imgur.com/teLsUGY.jpg
- 84 名前:デフォルトの名無しさん [2017/08/18(金) 23:11:42.85 ID:+zi/zXZ30.net]
- 違う! 前置だ
b = (a = a + 1);
- 85 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 23:21:22.94 ID:5LpMFucB0.net]
- a[i++] = i; は悪魔召還だけど
インクリメント演算子なしのこれ a[i =i+1] = i; も鼻から悪魔になるのかな
- 86 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 23:57:54.41 ID:nSj4GkNd0.net]
- >>78
>前置インクリメントa++ >後置インクリメント++a 考え方が逆 変数を基準に考えるのではなく演算子を基準に考える 前置インクリメント++a : 演算子を’前’置した場合、変数(式)の評価’前’に演算子が適用される 後置インクリメントa++ : 演算子を’後’置した場合、変数(式)の評価’後’に演算子が適用される
- 87 名前:デフォルトの名無しさん mailto:sage [2017/08/19(土) 00:03:09.07 ID:0xgPi4RO0.net]
- >>84
なるでしょ iの変更と最後のiの評価の間に順序性がない事に変わりはない
- 88 名前:デフォルトの名無しさん [2017/08/19(土) 09:44:47.22 ID:CpINIl4e0.net]
- i = i + 1;
の、iの変更と最後のiの評価の間の順序性は?
- 89 名前:C言語ますたー《ますたー軍団(常時募集)の長》 [2017/08/19(土) 09:54:20.36 ID:6ANTyB1VM.net]
- >>87
i+1のiは変更前のiでしょ
- 90 名前:デフォルトの名無しさん mailto:sage [2017/08/19(土) 10:03:42.32 ID:cD3Bg7W9d.net]
- >>30
デバッグしないのか?
- 91 名前:デフォルトの名無しさん mailto:sage [2017/08/19(土) 10:37:04.42 ID:opyN89fo0.net]
- デバッガはデバッガで起動すればいいし、printf があるし。
- 92 名前:デフォルトの名無しさん mailto:sage [2017/08/19(土) 11:26:43.49 ID:0xgPi4RO0.net]
- >>87
6.5.16 Assignment operators 「The side effect of updating the stored value of the left operand is sequenced
- 93 名前:after the value computations of the left and right operands. The evaluations of the operands are unsequenced.」
左オペランドの変更は、左右オペランドの評価の後 [] - [ここ壊れてます]
- 94 名前:デフォルトの名無しさん mailto:sage [2017/08/19(土) 12:19:31.20 ID:9KU7ntuJ0.net]
- >>84
MISRA-C で、禁止されている a[式] この式に、副作用があったら、ダメ。 バグるから
- 95 名前:デフォルトの名無しさん [2017/08/19(土) 15:28:05.17 ID:CpINIl4e0.net]
- >>91
thx だよな、そこは断り書きが必要な箇所
- 96 名前:デフォルトの名無しさん mailto:sage [2017/08/19(土) 23:53:05.68 ID:HeBiuDVT0.net]
- >>92
バグが入りやすい書き方ってだけでバグるわけじゃない
- 97 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 00:16:58.16 ID:856Qy56L0.net]
- a[i++]= b; は問題ないしな。
- 98 名前:デフォルトの名無しさん [2017/08/20(日) 03:47:32.99 ID:+c5k6kJk0.net]
- 右辺の結果を出してから左辺の計算やってるようだな。
https://paiza.io/projects/G_durt7YVnR55npMvUcKwg
- 99 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 06:41:37.88 ID:6XW1JaY/0.net]
- i.imgur.com/BmPLoWb.png
- 100 名前:デフォルトの名無しさん [2017/08/20(日) 09:25:38.38 ID:sGdhnhOm0.net]
- 事実上どうなっているという話ではなく
理屈の上でどうなのかという話 ちゃんと断り書きがあったからめでたしだが そうでなかったら大変だった
|

|