[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/28 01:12 / Filesize : 253 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 142



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]
事実上どうなっているという話ではなく
理屈の上でどうなのかという話
ちゃんと断り書きがあったからめでたしだが
そうでなかったら大変だった



101 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 09:58:54.27 ID:SbUj3AhWM.net]
>>76
ありがとう
ちょっとmake読んでくる






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<253KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef