C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
前
http://mevius.2ch.net/test/read.cgi/tech/1500293207/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 142 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8a6f-bDrV)
2017/08/10(木) 20:21:23.44ID:hEocmkh5015デフォルトの名無しさん (ワッチョイ 3323-aEKd)
2017/08/13(日) 17:01:50.43ID:aXXBQeA80 え?そんな所あるの?外資系とか?
まあ最初から英語できることを前提に雇っているならわかるけど、そうでない会社で
それやったらネイティブが忍耐をもってしても解読困難な英語モドキの文書の山に
なってしまうのではないか?
まあ最初から英語できることを前提に雇っているならわかるけど、そうでない会社で
それやったらネイティブが忍耐をもってしても解読困難な英語モドキの文書の山に
なってしまうのではないか?
16デフォルトの名無しさん (ワッチョイ 0e1c-Jp9e)
2017/08/13(日) 17:33:10.24ID:2GAXDCvV0 解読困難な英語モドキすっげええ、うんざりするほどあるよ
ずーずー弁しぇからしかこんだらず、なんて次元じゃねえ訛り方
・・・まあ恥ずかしながら日本人の訛り方はトップグループなんだが
ずーずー弁しぇからしかこんだらず、なんて次元じゃねえ訛り方
・・・まあ恥ずかしながら日本人の訛り方はトップグループなんだが
17デフォルトの名無しさん (ワッチョイ 3323-aEKd)
2017/08/13(日) 17:59:59.41ID:aXXBQeA80 omg
18デフォルトの名無しさん (ワッチョイ baef-9OS8)
2017/08/13(日) 18:13:02.46ID:WSSr83j3019デフォルトの名無しさん (ワッチョイ 0e1c-Jp9e)
2017/08/13(日) 18:29:50.42ID:2GAXDCvV0 技術英語を憶えるのに一般英語は邪魔
技術英語独特のボキャ貧はマニュアルや論文でしか学べない
技術英語独特のボキャ貧はマニュアルや論文でしか学べない
20デフォルトの名無しさん (ワッチョイ 336f-+HCT)
2017/08/13(日) 18:34:17.87ID:8MgVlazH0 brother と sister は習っても、sibling を学校で習った覚えは無いな
21デフォルトの名無しさん (ワッチョイ ba89-MZKP)
2017/08/13(日) 18:39:03.83ID:o1ygPh5l0 >>18
自分がある程度詳しい分野のちゃんとした英語のドキュメントを読んでると、ここはこういう意味か、こんな時はこんな表現するのか、と言うのがある程度身についてくると思う。
自分がある程度詳しい分野のちゃんとした英語のドキュメントを読んでると、ここはこういう意味か、こんな時はこんな表現するのか、と言うのがある程度身についてくると思う。
22デフォルトの名無しさん (ワッチョイ 0e1c-Jp9e)
2017/08/13(日) 18:54:33.40ID:2GAXDCvV023デフォルトの名無しさん (ワッチョイ de32-BuCI)
2017/08/14(月) 00:49:40.57ID:FXoIQaW20 RFC読んだ後は、プログラム関係の文書だけは、英語でも何となくわかるようになったなぁ
人の和訳みながらよんだだけだけど
人の和訳みながらよんだだけだけど
24デフォルトの名無しさん (ワッチョイ dfdb-tL1o)
2017/08/14(月) 23:14:42.24ID:G751meAI0 苦手意識がなくなるだけでもかなりの前進かと
25デフォルトの名無しさん (スッップ Sdba-RVSI)
2017/08/16(水) 03:13:15.44ID:J8ft/v5zd C言語の勉強をするためのおすすめのIDEを教えてください
26デフォルトの名無しさん (スプッッ Sdba-fB3e)
2017/08/16(水) 06:06:58.39ID:g+tkU2cqd Visual Studio
27デフォルトの名無しさん (ワッチョイ f34b-C9Js)
2017/08/16(水) 08:20:25.87ID:0Vt0rye20 Vim Emacs
28デフォルトの名無しさん (ワッチョイ 336f-+HCT)
2017/08/16(水) 09:23:43.88ID:zAUipZYH0 猫こそ至高
29デフォルトの名無しさん (ワッチョイ f66f-YnGe)
2017/08/16(水) 10:15:56.42ID:xWmu06fM0 VisualStudioに一票
30デフォルトの名無しさん (ワッチョイ 0e1c-Jp9e)
2017/08/16(水) 11:07:32.90ID:J2krMHFz0 エディタで充分
IDEいらね
IDEいらね
31デフォルトの名無しさん (ガックシ 06b6-C9Js)
2017/08/16(水) 11:12:04.39ID:79/XacN36 Cの文法だけ知りたいんならIDEで身につくと思うけど、CのUNIX的な使い方とかMakefileの作り方まで含むならやっぱりターミナルでVimかEmacsが一番身につくと思うな
32デフォルトの名無しさん (ワッチョイ 5b0d-KsLg)
2017/08/16(水) 11:17:42.10ID:Xm1ENLXg033デフォルトの名無しさん (アウアウカー Sac3-wqWI)
2017/08/16(水) 11:42:34.56ID:CBEVrlMza 覚えるだけとか編集するにはPlumaで良かった
34デフォルトの名無しさん (ワッチョイ 0e1c-Jp9e)
2017/08/16(水) 12:30:21.85ID:J2krMHFz0 IDEであろうがなかろうが
複数の環境を使ったほうがいい
1つの環境だけ使っていると
間違った知識をたっぷり吹き込まれる
その環境が悪いわけじゃなく
Cには処理系定義だの未規定だのがたくさんあるからだ
複数の環境を使ったほうがいい
1つの環境だけ使っていると
間違った知識をたっぷり吹き込まれる
その環境が悪いわけじゃなく
Cには処理系定義だの未規定だのがたくさんあるからだ
35デフォルトの名無しさん (ワンミングク MM8a-+HCT)
2017/08/16(水) 12:58:54.66ID:MtMWIb12M 汎用機でトライグラフとワードアドレッシングな奴をやっておけば完璧だね
36デフォルトの名無しさん (ワッチョイ 0e1c-Jp9e)
2017/08/16(水) 17:14:38.09ID:J2krMHFz0 関数を呼び出すたびごとにいちいちGETMAINするのかと思ったら違った
37デフォルトの名無しさん (ワッチョイ a3b6-z+qv)
2017/08/16(水) 18:42:31.13ID:eXMOwWIc0 実際のところトライグラフの環境ってあるのかね
汎用機のEBCDIC(英字)も記号は一通りあるよね
汎用機のEBCDIC(英字)も記号は一通りあるよね
38デフォルトの名無しさん (ワッチョイ 0e1c-Jp9e)
2017/08/16(水) 21:24:11.17ID:J2krMHFz0 カード穿孔機くらいかな
トライグラフの必要性を感じたデバイスは
トライグラフの必要性を感じたデバイスは
39デフォルトの名無しさん (ワッチョイ 616f-dsaK)
2017/08/17(木) 00:56:17.97ID:ugZ0fkzt0 NEC MSコンピューターとかかな
シリーズで言うと MS120,MS140,MS190
シリーズで言うと MS120,MS140,MS190
40デフォルトの名無しさん (ワッチョイ 5389-SBNh)
2017/08/17(木) 06:39:42.32ID:3FDT79Ua0 ヨーロッパとかで英語以外の国で、C言語で使う記号のところに別の文字が割り当てられてるケースとか。文字コードまたはキーボードのキーとして。
41デフォルトの名無しさん (フリッテル MM6b-9CIE)
2017/08/17(木) 06:59:39.42ID:qA/UZuuOM どうでもいいことばかりだな
42デフォルトの名無しさん (ワッチョイ 810d-qqF0)
2017/08/17(木) 07:30:42.82ID:5FUl5JPE0 バックスラッシュがあるべき文字コードの場所が
現地の通貨記号に置き換わってる環境でトライグラフ使わね?
現地の通貨記号に置き換わってる環境でトライグラフ使わね?
43デフォルトの名無しさん (ワッチョイ 9311-x4Vn)
2017/08/17(木) 07:50:53.84ID:wL10pSGX0 >>42
そもそもそんな環境で開発なんてしたことないし
そもそもそんな環境で開発なんてしたことないし
44デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/17(木) 08:03:54.42ID:zzoRHhsR045デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/17(木) 08:26:01.37ID:NamoDwZf0 ノーマークでトライグラフになっちまってたことは過去に何度か・・・
(s)printf 中の format 文字列で
(s)printf 中の format 文字列で
46デフォルトの名無しさん (ドコグロ MMa3-VxEm)
2017/08/17(木) 09:31:58.57ID:3IL/r6zdM >>42
半角の¥は廃止すべき
半角の¥は廃止すべき
47デフォルトの名無しさん (ワッチョイ 616f-dsaK)
2017/08/17(木) 10:45:25.58ID:ugZ0fkzt0 >>45
MJD?
MJD?
48デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/17(木) 10:55:11.53ID:NamoDwZf0 >>47
最近のコンパイラはデフォでトライグラフを抑制してくれてるようだけど
古いコンパイラは、そんな気がきいてないから
警告文 "warning??!" ってやって実際の出力が warning| で なんじゃこりゃ?と
最近のコンパイラはデフォでトライグラフを抑制してくれてるようだけど
古いコンパイラは、そんな気がきいてないから
警告文 "warning??!" ってやって実際の出力が warning| で なんじゃこりゃ?と
49デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/17(木) 10:59:46.51ID:NamoDwZf0 それでも ??/ → \ で
次の文字をエスケープして大事故にというのは無かったかな
次の文字をエスケープして大事故にというのは無かったかな
50デフォルトの名無しさん (ドコグロ MMb3-x4Vn)
2017/08/17(木) 11:00:52.21ID:OslnP8rdM51デフォルトの名無しさん (ワッチョイ 6139-uL9b)
2017/08/17(木) 12:36:35.61ID:kQ6hfaFr0 CとC++は馬鹿には使えない
惨事が起きるから
使わせてはいけないと聞いた
惨事が起きるから
使わせてはいけないと聞いた
52デフォルトの名無しさん (ワッチョイ 936f-pVc9)
2017/08/17(木) 13:57:01.69ID:ylZytAyh0 いくつかのコンパイラはトライグラフがデフォルトで無効になっていたと思う
53デフォルトの名無しさん (ワッチョイ f932-Jcyw)
2017/08/17(木) 16:57:48.81ID:ZvDESEOS0 clとclangとgccはデフォルトで無効だし、今じゃ有効な環境のほうが珍しいんじゃないの
54デフォルトの名無しさん (エーイモ SEf3-Ufa9)
2017/08/17(木) 21:30:33.60ID:2RZZpZadE char s[3] = "abc";
printf("%s %lu", s, strlen(s));
これの出力がabc 3にならず
abc 9abc 9とか
abcea 9abcea 9みたいに毎回不定で文字列が出力されるんですけど何でですか?
printf("%s %lu", s, strlen(s));
これの出力がabc 3にならず
abc 9abc 9とか
abcea 9abcea 9みたいに毎回不定で文字列が出力されるんですけど何でですか?
56片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/17(木) 21:39:34.19ID:XnqHf7Mqd s[4]か、サイズ未指定のs[]にする。
\nを追加する。
\nを追加する。
57片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/17(木) 21:40:55.02ID:XnqHf7Mqd strlenの返却値はsize_tだから、%luは間違い。
58デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/17(木) 23:15:30.23ID:zzoRHhsR0 >>57
正解は?
正解は?
59片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/17(木) 23:27:33.59ID:XnqHf7Mqd60デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/17(木) 23:35:38.09ID:zzoRHhsR0 組み込みのショボいライブラリじゃ使えなかったりするから
unsigned intにキャストして%u
でいいや
unsigned intにキャストして%u
でいいや
61デフォルトの名無しさん (ブーイモ MMc5-gUFl)
2017/08/18(金) 03:59:52.12ID:URLOh4DLM キャスト毛嫌いしてたんだけど、size_t や int*_t シリーズを printf 書式で使う時のベストプラクティスだと気付いてしまったよ。
62片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/18(金) 04:18:35.01ID:sjvn+N2bd サイズの変わる型キャストは、(通常無視できる程度の)少しだけコストがかかることに言及しておこう。
63片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/18(金) 04:20:02.39ID:sjvn+N2bd わずかに時間と計算量がかかるという意味のコストね。
64デフォルトの名無しさん (ワッチョイ 5389-SBNh)
2017/08/18(金) 07:04:19.91ID:R7MrN97k0 printf使ってるときなら、無視できるレベルだな
65デフォルトの名無しさん (フリッテル MM6b-MHwE)
2017/08/18(金) 07:10:44.43ID:RGoxPD09M 大抵の場合、暗黙でintに変換されるので%dで問題ない
66デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/18(金) 07:50:44.76ID:cQGhZEXD0 >>63
64ビットで渡すより32ビットで渡す方が普通は速い
64ビットで渡すより32ビットで渡す方が普通は速い
67デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/18(金) 07:51:44.71ID:cQGhZEXD0 >>65
intより大きいサイズはintに変換されない
intより大きいサイズはintに変換されない
68デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/18(金) 09:48:31.67ID:+zi/zXZ3069デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/18(金) 10:03:06.56ID:+zi/zXZ30 脇道に逸れるが整数のサイズってどいつもこいつもイマイチだね
char 8
short 16
int 32
long 64
long long 128
と、せっかく5階級あるのを無駄なく使えるようになってない
char 8
short 16
int 32
long 64
long long 128
と、せっかく5階級あるのを無駄なく使えるようになってない
70デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/18(金) 11:07:14.63ID:cQGhZEXD0 どこの環境だよ
71デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/18(金) 11:55:29.20ID:+zi/zXZ30 いや、そういう環境があったらなあと
72デフォルトの名無しさん (スプッッ Sda3-VxEm)
2017/08/18(金) 12:41:24.28ID:8ZqVNhGud そんなに細かく分ける意味あんのかね。
64bitだけでいいだろ。
64bitだけでいいだろ。
73デフォルトの名無しさん (ワッチョイ 4b6c-oL0b)
2017/08/18(金) 12:46:10.63ID:K+PXWISB0 Makefileの書き方なんだけど
makeが実行されているときに 今何を実行してるか表示されるけど
「なんでこれが実行されているんか」の理由も表示したい
依存関係の hoge: fuga を表示したい
.c.o:
@echo $@:$^
$(CC) $(CFLAGS) -c $<
みたいに書いたりしてんだけど、全部に書くのもダサい気がするし
良い方法はないでしょうか
makeが実行されているときに 今何を実行してるか表示されるけど
「なんでこれが実行されているんか」の理由も表示したい
依存関係の hoge: fuga を表示したい
.c.o:
@echo $@:$^
$(CC) $(CFLAGS) -c $<
みたいに書いたりしてんだけど、全部に書くのもダサい気がするし
良い方法はないでしょうか
74デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/18(金) 15:25:50.71ID:+zi/zXZ30 >>72
128が標準にあれば使い途いろいろあるぞ
128が標準にあれば使い途いろいろあるぞ
75デフォルトの名無しさん (ワッチョイ 81b6-Jcyw)
2017/08/18(金) 15:40:25.23ID:RRX5RBja076デフォルトの名無しさん (ワッチョイ 9311-x4Vn)
2017/08/18(金) 16:57:07.47ID:UodSk1FQ077デフォルトの名無しさん (ワッチョイ f932-Jcyw)
2017/08/18(金) 18:57:47.45ID:aoGOUUu+0 C関係ないんだから、別スレでやれよ
78デフォルトの名無しさん (ワッチョイ 61b6-qPuT)
2017/08/18(金) 20:41:27.26ID:2qfgYUHL0 すみません初歩的なことですが・・
前置インクリメントa++
後置インクリメント++a
がありますが、a=a+1は後置になりますよね?
前置インクリメントa++
後置インクリメント++a
がありますが、a=a+1は後置になりますよね?
79デフォルトの名無しさん (ドコグロ MMa3-VxEm)
2017/08/18(金) 20:44:00.68ID:m74Y+4jlM b=a++ と b= a= a+1 は違う気がする。
80片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/18(金) 20:47:26.76ID:sjvn+N2bd どちらでもない。
81デフォルトの名無しさん (ワッチョイ c111-JJVS)
2017/08/18(金) 20:49:13.42ID:5LpMFucB0 加算と代入
82デフォルトの名無しさん (ワッチョイ 61b6-qPuT)
2017/08/18(金) 20:51:16.52ID:2qfgYUHL083デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/18(金) 23:11:42.85ID:+zi/zXZ30 違う! 前置だ
b = (a = a + 1);
b = (a = a + 1);
84デフォルトの名無しさん (ワッチョイ c111-JJVS)
2017/08/18(金) 23:21:22.94ID:5LpMFucB0 a[i++] = i; は悪魔召還だけど
インクリメント演算子なしのこれ
a[i =i+1] = i;
も鼻から悪魔になるのかな
インクリメント演算子なしのこれ
a[i =i+1] = i;
も鼻から悪魔になるのかな
85デフォルトの名無しさん (ワッチョイ db6f-2g+Y)
2017/08/18(金) 23:57:54.41ID:nSj4GkNd0 >>78
>前置インクリメントa++
>後置インクリメント++a
考え方が逆
変数を基準に考えるのではなく演算子を基準に考える
前置インクリメント++a : 演算子を’前’置した場合、変数(式)の評価’前’に演算子が適用される
後置インクリメントa++ : 演算子を’後’置した場合、変数(式)の評価’後’に演算子が適用される
>前置インクリメントa++
>後置インクリメント++a
考え方が逆
変数を基準に考えるのではなく演算子を基準に考える
前置インクリメント++a : 演算子を’前’置した場合、変数(式)の評価’前’に演算子が適用される
後置インクリメントa++ : 演算子を’後’置した場合、変数(式)の評価’後’に演算子が適用される
86デフォルトの名無しさん (ワッチョイ f932-Jcyw)
2017/08/19(土) 00:03:09.07ID:0xgPi4RO087デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/19(土) 09:44:47.22ID:CpINIl4e0 i = i + 1;
の、iの変更と最後のiの評価の間の順序性は?
の、iの変更と最後のiの評価の間の順序性は?
88C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ (ラクッペ MMed-UZV0)
2017/08/19(土) 09:54:20.36ID:6ANTyB1VM >>87
i+1のiは変更前のiでしょ
i+1のiは変更前のiでしょ
89デフォルトの名無しさん (スプッッ Sdf3-l88/)
2017/08/19(土) 10:03:42.32ID:cD3Bg7W9d >>30
デバッグしないのか?
デバッグしないのか?
90デフォルトの名無しさん (ワッチョイ 931e-VxEm)
2017/08/19(土) 10:37:04.42ID:opyN89fo0 デバッガはデバッガで起動すればいいし、printf があるし。
91デフォルトの名無しさん (ワッチョイ f932-Jcyw)
2017/08/19(土) 11:26:43.49ID:0xgPi4RO0 >>87
6.5.16 Assignment operators
「The side effect of updating the stored value of the left operand is sequenced after the value computations of the left and right operands. The evaluations of the operands are unsequenced.」
左オペランドの変更は、左右オペランドの評価の後
6.5.16 Assignment operators
「The side effect of updating the stored value of the left operand is sequenced after the value computations of the left and right operands. The evaluations of the operands are unsequenced.」
左オペランドの変更は、左右オペランドの評価の後
92デフォルトの名無しさん (ワッチョイ 2baa-PF2c)
2017/08/19(土) 12:19:31.20ID:9KU7ntuJ093デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/19(土) 15:28:05.17ID:CpINIl4e094デフォルトの名無しさん (ワッチョイ 81b6-Jcyw)
2017/08/19(土) 23:53:05.68ID:HeBiuDVT0 >>92
バグが入りやすい書き方ってだけでバグるわけじゃない
バグが入りやすい書き方ってだけでバグるわけじゃない
95デフォルトの名無しさん (ワッチョイ 931e-VxEm)
2017/08/20(日) 00:16:58.16ID:856Qy56L0 a[i++]= b; は問題ないしな。
96デフォルトの名無しさん (ワッチョイ 6123-WxsM)
2017/08/20(日) 03:47:32.99ID:+c5k6kJk0 右辺の結果を出してから左辺の計算やってるようだな。
https://paiza.io/projects/G_durt7YVnR55npMvUcKwg
https://paiza.io/projects/G_durt7YVnR55npMvUcKwg
97デフォルトの名無しさん (ワッチョイ 936f-2g+Y)
2017/08/20(日) 06:41:37.88ID:6XW1JaY/098デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/20(日) 09:25:38.38ID:sGdhnhOm0 事実上どうなっているという話ではなく
理屈の上でどうなのかという話
ちゃんと断り書きがあったからめでたしだが
そうでなかったら大変だった
理屈の上でどうなのかという話
ちゃんと断り書きがあったからめでたしだが
そうでなかったら大変だった
99デフォルトの名無しさん (ラクッペ MMed-3Zg8)
2017/08/20(日) 09:58:54.27ID:SbUj3AhWM100デフォルトの名無しさん (ワッチョイ 096f-jLVh)
2017/08/22(火) 11:22:32.57ID:chgkyZKA0 defineした定数を文字列定数にいれるにはどうしたらいいの?
#define EOL 0x0d
const char version_message[] = "Version 1.0\x0d"
↑この文字列の改行コードに定数EOLを展開した値を入れたいです。
#define EOL 0x0d
const char version_message[] = "Version 1.0\x0d"
↑この文字列の改行コードに定数EOLを展開した値を入れたいです。
101デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/22(火) 11:44:36.20ID:xXPB4eWM0102デフォルトの名無しさん (エーイモ SEf3-Ufa9)
2017/08/22(火) 11:47:40.32ID:przmPyd7E typedef struct hoge {
int a;
int b;
} hoge;
hoge h = {1, 2};
構造体に含まれるメンバ名と値を全て出力する方法を教えてください
上の構造体なら
a,1
b,2
と出力したいです
int a;
int b;
} hoge;
hoge h = {1, 2};
構造体に含まれるメンバ名と値を全て出力する方法を教えてください
上の構造体なら
a,1
b,2
と出力したいです
103デフォルトの名無しさん (ワッチョイ 596f-MAnB)
2017/08/22(火) 11:59:42.09ID:GCxyf0Da0104デフォルトの名無しさん (JP 0H5d-C/ZS)
2017/08/22(火) 12:08:53.86ID:R9ds2cCvH105デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/22(火) 12:11:18.37ID:xXPB4eWM0106デフォルトの名無しさん (ワッチョイ 596f-MAnB)
2017/08/22(火) 12:14:35.93ID:GCxyf0Da0 >>102
変数名はあくまで人間が扱いやすいように何らかの領域(一般的にメモリアドレス)に付けるあだ名であって
プログラム(コンピュータ)的にはメモリアドレスのほうが扱いやすいのであだ名は不要(アドレスのほうはプログラム的に出せる)
なのであだ名のほうが欲しいなら以下のように直書きするしかない
printf("%s,%d\n", "a", h.a);
変数名はあくまで人間が扱いやすいように何らかの領域(一般的にメモリアドレス)に付けるあだ名であって
プログラム(コンピュータ)的にはメモリアドレスのほうが扱いやすいのであだ名は不要(アドレスのほうはプログラム的に出せる)
なのであだ名のほうが欲しいなら以下のように直書きするしかない
printf("%s,%d\n", "a", h.a);
107デフォルトの名無しさん (エーイモ SEf3-Ufa9)
2017/08/22(火) 12:52:42.46ID:przmPyd7E108デフォルトの名無しさん (JP 0H5d-3KK3)
2017/08/22(火) 13:00:37.52ID:u9fcDp43H デバッグ目的ならデバッガで
109デフォルトの名無しさん (ワッチョイ 096f-jLVh)
2017/08/22(火) 13:20:20.96ID:chgkyZKA0 >>101,104、ありがとうございます、
PCとUSBシリアルで通信する組み込み機器のドライバをメンテしていて
受信したテキストの終端検出にEOLはキャラクタで扱っているし
送信する固定テキストは改行含めてリテラルにしたく
プリプロセッサの#か##で連結でなんとかできないか悩んでました。
PCとUSBシリアルで通信する組み込み機器のドライバをメンテしていて
受信したテキストの終端検出にEOLはキャラクタで扱っているし
送信する固定テキストは改行含めてリテラルにしたく
プリプロセッサの#か##で連結でなんとかできないか悩んでました。
110デフォルトの名無しさん (ワッチョイ d3d7-vbeK)
2017/08/22(火) 13:21:07.96ID:bF0tRsYk0 コンパイルしたらメンバー名と型の情報は消える
111C言語ますたー《ますたー軍団(常時募集)の長》 ◆Cmaster.sY (ラクッペ MMed-UZV0)
2017/08/22(火) 15:44:32.04ID:tfXVsICTM メモリアドレスを出力させればいいんじゃない?
%pで&aを表示できるはず
%pで&aを表示できるはず
112デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/22(火) 16:43:27.00ID:xXPB4eWM0 与えられた変数から、メンバ名とその値を再帰的に列挙して欲しいんだろうけど
そんな都合の良い言語じゃないから自分で並べるしかない
必要に応じて毎回並べるか
並べて出力したものを関数化しといてそれを呼び出すか
そんな都合の良い言語じゃないから自分で並べるしかない
必要に応じて毎回並べるか
並べて出力したものを関数化しといてそれを呼び出すか
113デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/22(火) 17:44:12.68ID:NIldwpVs0 再帰的に列挙は自動だととんでもない情報量になったりするからな
そこから欲しい情報をどうやって抜き出すかが頭の使いどころ
そこから欲しい情報をどうやって抜き出すかが頭の使いどころ
114デフォルトの名無しさん (ワッチョイ 936f-jLVh)
2017/08/22(火) 22:53:39.27ID:YwU2BQ/U0 >>100
#include <stdio.h>
#define EOL x0a
#define _STRING(s) # s
#define STRING(s) _STRING(s)
#define _VALUE(s) 0 ## s
#define VALUE(s) _VALUE(s)
char a[] = "Hello" STRING(\EOL);
void main(void) {
int n;
n = VALUE(EOL);
printf("%02x [%s] \n", n, a);
}
#include <stdio.h>
#define EOL x0a
#define _STRING(s) # s
#define STRING(s) _STRING(s)
#define _VALUE(s) 0 ## s
#define VALUE(s) _VALUE(s)
char a[] = "Hello" STRING(\EOL);
void main(void) {
int n;
n = VALUE(EOL);
printf("%02x [%s] \n", n, a);
}
115デフォルトの名無しさん (ワッチョイ 6123-oL0b)
2017/08/22(火) 22:53:45.07ID:hpqXPKX70■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今年の漢字 [ぐれ★]
- 今年の漢字は「熊」に決定! 相次ぐクマ被害 去年は「金」 [冬月記者★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★3 [冬月記者★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★4 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★4 [蚤の市★]
- 【おこめ券】物価高対策の“おこめ券”全米販は1枚477円で販売へ 鈴木農水大臣「国民の皆様に活用いただきやすいよう工夫いただいた」 [ぐれ★]
- 【速報】今年の漢字、「熊」!wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 過労死の遺族、高市に抗議したため冗談抜きでボロクソに叩かれる [637618824]
- アメリカがよく食ってそう肉を練り込んで缶詰みたいなやつあれくってみたい
- 【速報】今年のゲームオブザイヤー、Clair Obscur: Expedition 33 [779938112]
- たつき鯨のせいで人生狂ったんだが
- 地蔵 [268244553]
