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.5ch.net/test/read.cgi/tech/1509107288/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 144
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 838a-3nWA)
2017/12/23(土) 19:33:43.89ID:dghfoRy201514 (ワッチョイ 2393-YNiV)
2017/12/24(日) 17:43:11.44ID:DT7VHm750 おっと、「〜だと思うよ」の部分は「〜じゃないかな?」に訂正させてくれ。
読み直したら、そこまで断定する自信がなくなった。
質問者 >>3 による見解を求む。
…と言っても、いずれにせよ俺には答えられない問題だけどネ。
読み直したら、そこまで断定する自信がなくなった。
質問者 >>3 による見解を求む。
…と言っても、いずれにせよ俺には答えられない問題だけどネ。
16デフォルトの名無しさん (ワッチョイ 03c6-MZER)
2017/12/24(日) 17:57:57.47ID:KMicyDdr0 Gtk+ 3.0のGUIツールの質問はこちらでも宜しいでしょうか。
glade3.18、C言語を使用しています。
起動したgladeの右側のプロパティ画面で、
window1 GtkWindow
□|__box1 GtkBox
□□|__scrolledwindow1 GtkScrolledWindow
□□□|__viewport1 GtkViewport
□□□|____image2 GtkImage
□□□|__button1 GtkButton
のように配置すると、画面をマウスで引き伸ばしても、実行時window1のみが引き伸ばされてしまいます。
やろうとしている事は、ファイルの保存ダイアログの様に、マウスで引き伸ばしてもbutton1がwindow1と一緒に移動し、image2が引き伸ばしされている様に見せたいのですが上手くいきません。
教えてください。よろしくお願いします。
glade3.18、C言語を使用しています。
起動したgladeの右側のプロパティ画面で、
window1 GtkWindow
□|__box1 GtkBox
□□|__scrolledwindow1 GtkScrolledWindow
□□□|__viewport1 GtkViewport
□□□|____image2 GtkImage
□□□|__button1 GtkButton
のように配置すると、画面をマウスで引き伸ばしても、実行時window1のみが引き伸ばされてしまいます。
やろうとしている事は、ファイルの保存ダイアログの様に、マウスで引き伸ばしてもbutton1がwindow1と一緒に移動し、image2が引き伸ばしされている様に見せたいのですが上手くいきません。
教えてください。よろしくお願いします。
17デフォルトの名無しさん (ワッチョイ ffe3-bqMz)
2017/12/24(日) 18:24:06.76ID:rYvbui2B0 >>14
はい、そのとおりです。
ハッシュ関数(たとえばSHA-2) に対して入力0, 1, 2, を与えて得られた出力を乱数として使用することに妥当性はあるか?
もっと踏み込むと、実はストリーム暗号として使用したく考えています。
ハッシュ関数を h(x)、
暗号鍵を k
平文を M
暗号文をC
として、
C = Mi xor f(n + k), n = 0, 1, 2, ....
とした場合に、この暗号に対してどのような解読方法が考えられるか?
はい、そのとおりです。
ハッシュ関数(たとえばSHA-2) に対して入力0, 1, 2, を与えて得られた出力を乱数として使用することに妥当性はあるか?
もっと踏み込むと、実はストリーム暗号として使用したく考えています。
ハッシュ関数を h(x)、
暗号鍵を k
平文を M
暗号文をC
として、
C = Mi xor f(n + k), n = 0, 1, 2, ....
とした場合に、この暗号に対してどのような解読方法が考えられるか?
20片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-1u/G)
2017/12/24(日) 19:24:00.18ID:gjaYlpPed >>16
「引き延ばし」というのは専門用語じゃないよね。位置とサイズをちゃんと指定くれないと、人間にもわからないよ。
イベント駆動については勉強した? サイズを自動調整するには、イベント駆動で「サイズ変更」のイベントを捕まえるか、自動レイアウトにするしかないよ。
「引き延ばし」というのは専門用語じゃないよね。位置とサイズをちゃんと指定くれないと、人間にもわからないよ。
イベント駆動については勉強した? サイズを自動調整するには、イベント駆動で「サイズ変更」のイベントを捕まえるか、自動レイアウトにするしかないよ。
21片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-1u/G)
2017/12/24(日) 19:39:28.76ID:gjaYlpPed >>16
コンテナを使えばサイズが調整できるよ。
コンテナを使えばサイズが調整できるよ。
22デフォルトの名無しさん (ワッチョイ 2393-YNiV)
2017/12/24(日) 19:46:51.17ID:DT7VHm75023片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-1u/G)
2017/12/24(日) 19:48:23.88ID:gjaYlpPed GtkBoxとGtkScrolledWindowをコンテナに。イベント駆動でサイズ調整。
24片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-1u/G)
2017/12/24(日) 19:54:08.92ID:gjaYlpPed 認識しています...
25片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-1u/G)
2017/12/24(日) 20:14:50.51ID:gjaYlpPed 電池切れです。今すぐ充電して下さい。
>>22
その変形は、ちょっと楽観しすぎていると思う
f(1) = af(x) + b
f(2) = a(ax + b) + b = a^2 x + ab + b
f(3) = a(a(ax + b) + b) + b = a^3 x + a^2 b + ab + b
f(4) = a^4x + b(a^3 + a^2 + a + 1)
f(5) = a^5x + b(a^4 + a^3 + a^2 + a + 1)
なんかもっときれいになりそうだけれども…
>普段は
え?それはそうみえるだけじゃないでしょうか?
その変形は、ちょっと楽観しすぎていると思う
f(1) = af(x) + b
f(2) = a(ax + b) + b = a^2 x + ab + b
f(3) = a(a(ax + b) + b) + b = a^3 x + a^2 b + ab + b
f(4) = a^4x + b(a^3 + a^2 + a + 1)
f(5) = a^5x + b(a^4 + a^3 + a^2 + a + 1)
なんかもっときれいになりそうだけれども…
>普段は
え?それはそうみえるだけじゃないでしょうか?
2722 (ワッチョイ 2393-YNiV)
2017/12/25(月) 06:33:17.53ID:kqgEt8jU028デフォルトの名無しさん (ワッチョイ 6fe7-615/)
2017/12/25(月) 08:57:25.44ID:tHA+l6fr0 割り算を割り算なしで実用的に計算する方法はありますか?
29デフォルトの名無しさん (ワッチョイ f361-bqMz)
2017/12/25(月) 09:02:10.05ID:EqnSjGj20 筆算の手順を参考に。
30デフォルトの名無しさん (ブーイモ MM67-nFIV)
2017/12/25(月) 09:54:22.59ID:8JScrlTJM31デフォルトの名無しさん (ワッチョイ cf3f-tRgI)
2017/12/25(月) 11:53:59.36ID:9U/P4ALl0 整数を2の自然数乗で割るのは右シフト演算に置き換えられる
32デフォルトの名無しさん (ササクッテロレ Sp87-D16t)
2017/12/25(月) 11:59:50.75ID:73LxKXJcp >>31
そんな些末な化石テクニックなんか、最適化に任せちまえよ。
そんな些末な化石テクニックなんか、最適化に任せちまえよ。
33デフォルトの名無しさん (スッップ Sd1f-OpNk)
2017/12/25(月) 12:19:46.91ID:rFWBa6Kid 自身をXORするとゼロクリアできる。
34デフォルトの名無しさん (アウアウカー Sac7-vdkM)
2017/12/25(月) 12:46:35.23ID:Lg9qxqUaa >>33
いや、そうだけど、ゼロの代入しても最適化されてマシン語ではそれになってることあると思うよ。CPUにもよるだろうけどね。
レジスタをゼロクリアする専用の命令があればそちらが使われるだろうし、多分その方が何も計算しない分だけ速い。
いや、そうだけど、ゼロの代入しても最適化されてマシン語ではそれになってることあると思うよ。CPUにもよるだろうけどね。
レジスタをゼロクリアする専用の命令があればそちらが使われるだろうし、多分その方が何も計算しない分だけ速い。
35デフォルトの名無しさん (ブーイモ MM27-nFIV)
2017/12/25(月) 13:19:39.85ID:CsuxTCcbM 化石テクニックの一例で出しただけでしょ
36デフォルトの名無しさん (ワッチョイ cf8a-tCZy)
2017/12/25(月) 13:25:33.64ID:yJ1YqK0V0 XORクリアはZ80ではほぼ必須テクニックだったけど、x86では意味ないよ
37デフォルトの名無しさん (アウアウカー Sac7-vdkM)
2017/12/25(月) 13:37:06.87ID:Lg9qxqUaa >>35
今時のC言語だと意味がないばかりかコンパイラの最適化の邪魔になりかねないので変な小技は忘れた方が良いと思うよ。registerとかと同じ。
今時のC言語だと意味がないばかりかコンパイラの最適化の邪魔になりかねないので変な小技は忘れた方が良いと思うよ。registerとかと同じ。
38デフォルトの名無しさん (ブーイモ MM27-nFIV)
2017/12/25(月) 14:12:39.78ID:CsuxTCcbM 俺が出したんじゃねーし
39デフォルトの名無しさん (ワッチョイ f38a-IlPN)
2017/12/25(月) 14:39:28.15ID:eNXAkvu40 >>36
sub でクリアは定番
sub でクリアは定番
40デフォルトの名無しさん (ワッチョイ 03c6-MZER)
2017/12/25(月) 18:27:45.55ID:+TGgWy910 G_MODULE_EXPORT void
cb_activate(
GtkEntry *entry1,
GtkLabel *label1)
{
gchar *buf;
buf = g_strdup_printf("文字 %s",gtk_entry_get_text(entry1));
gtk_label_set_text(label1,buf);
g_free(buf);
}
上のプログラムを参考に、GtkTextViewから文字数を得て、label1に書き込むプログラムにしようと、マニュアルを調べていたのですが、上手くいきませんでした。
insert_at_cursorのイベントから動くようにするには、どうしたらいいのでしょうか。
初歩的な質問ですみません。よろしくお願いします。
cb_activate(
GtkEntry *entry1,
GtkLabel *label1)
{
gchar *buf;
buf = g_strdup_printf("文字 %s",gtk_entry_get_text(entry1));
gtk_label_set_text(label1,buf);
g_free(buf);
}
上のプログラムを参考に、GtkTextViewから文字数を得て、label1に書き込むプログラムにしようと、マニュアルを調べていたのですが、上手くいきませんでした。
insert_at_cursorのイベントから動くようにするには、どうしたらいいのでしょうか。
初歩的な質問ですみません。よろしくお願いします。
41デフォルトの名無しさん (ワッチョイ 7f60-IIk+)
2017/12/25(月) 18:52:27.54ID:LEWwY/wL042デフォルトの名無しさん (ドコグロ MMdf-6aYH)
2017/12/25(月) 19:35:55.33ID:hykLc5AjM >>34
> レジスタをゼロクリアする専用の命令があればそちらが使われるだろうし、多分その方が何も計算しない分だけ速い。
レジスタじゃなくてメモリーだけど68000のCLR命令はなぜか0を書く前に謎の読み出しを行うので遅かったりした
> レジスタをゼロクリアする専用の命令があればそちらが使われるだろうし、多分その方が何も計算しない分だけ速い。
レジスタじゃなくてメモリーだけど68000のCLR命令はなぜか0を書く前に謎の読み出しを行うので遅かったりした
43デフォルトの名無しさん (ワッチョイ 03c6-MZER)
2017/12/25(月) 19:44:53.59ID:+TGgWy910 >>41
Cソース
https://ideone.com/324qDo
UIソース
https://ideone.com/o3pHFq
コメントにした部分は、動くことは動くけれど、ラベルが反応しない。
今の非コメント部分は、main関数は動きますが、それ以外はエラーが出ます。
動かないのを知っていて、プログラムが中途半端に書かれています。
なので責めないでください。
迷走している様子が伝わってくると思います。
Cソース
https://ideone.com/324qDo
UIソース
https://ideone.com/o3pHFq
コメントにした部分は、動くことは動くけれど、ラベルが反応しない。
今の非コメント部分は、main関数は動きますが、それ以外はエラーが出ます。
動かないのを知っていて、プログラムが中途半端に書かれています。
なので責めないでください。
迷走している様子が伝わってくると思います。
44デフォルトの名無しさん (ワッチョイ f361-bqMz)
2017/12/26(火) 09:14:44.44ID:0EsJ05iO0 >ゼロクリア
昔触った業務機は0固定のレジスタからコピーしてたな。
昔触った業務機は0固定のレジスタからコピーしてたな。
45デフォルトの名無しさん (ワッチョイ 93fb-tRgI)
2017/12/26(火) 09:52:36.67ID:yJ/B7pz80 V850?
46デフォルトの名無しさん (ブーイモ MMff-nFIV)
2017/12/26(火) 10:06:26.59ID:58V6tzNLM MIPSじゃね?
47デフォルトの名無しさん (スプッッ Sd1f-tu6d)
2017/12/26(火) 11:48:22.67ID:R8+GZeZ4d SPARCでは
48デフォルトの名無しさん (ワッチョイ 6fe7-615/)
2017/12/26(火) 13:07:44.90ID:m/Tbphkt0 乱数レジスタもあるよ
>>48
あれは乱数レジスタではなくて、リフレッシュカウンタ
あれは乱数レジスタではなくて、リフレッシュカウンタ
50デフォルトの名無しさん (ドコグロ MMdf-6aYH)
2017/12/26(火) 20:49:06.65ID:p5SWdn98M52デフォルトの名無しさん (エーイモ SE8a-/kWs)
2017/12/30(土) 17:36:17.08ID:QxhO3HdGE 先輩方また教えてください
int
hoge(int a,
_____int b)
{
____return a + b;
}
_は半角スペースだと思ってください。
こんな感じでintとhogeを別の行に書いたり
int aとint bも別の行に書いたり
こういう書き方をよく見るんですがどうしてこう書くんでしょうか?
C言語ではこういうルールがあるのでしょうか?
int
hoge(int a,
_____int b)
{
____return a + b;
}
_は半角スペースだと思ってください。
こんな感じでintとhogeを別の行に書いたり
int aとint bも別の行に書いたり
こういう書き方をよく見るんですがどうしてこう書くんでしょうか?
C言語ではこういうルールがあるのでしょうか?
53片山博文MZ ◆T6xkBnTXz7B0 (スププ Sdea-hOPe)
2017/12/30(土) 17:46:47.07ID:jArhle36d それはコーディングスタイルとか、コーディングルールとかいうけど、会社や組織によって違う。
制御構造の構造を明確にするために、「インデント」したり文字の位置を揃えたりする。
まあ、初心者ならANSIスタイル使っておけば無難かな。
制御構造の構造を明確にするために、「インデント」したり文字の位置を揃えたりする。
まあ、初心者ならANSIスタイル使っておけば無難かな。
54片山博文MZ ◆T6xkBnTXz7B0 (スププ Sdea-hOPe)
2017/12/30(土) 17:49:08.58ID:jArhle36d コード整形ツールというのを使えば、ソースのスタイルを変換できる。
55片山博文MZ ◆T6xkBnTXz7B0 (スププ Sdea-hOPe)
2017/12/30(土) 17:50:39.34ID:jArhle36d インデントするときはTabキーが便利。
56デフォルトの名無しさん (ワッチョイ 0b9f-RYVm)
2017/12/30(土) 17:52:13.74ID:Xyp0qNcm0 >>52
> こういう書き方をよく見る
嘘つくな。
というか、本当にそう思うのなら見るべきソースを間違っている。
いずれにしても、初心者がその手のコーディングスタイルについて考えるのは完全に時間の無駄だから、
どれでもいいから有名なコーディングルールを読んで、それを使うようにしろ。
お前が今読んでいるそのコードに対して追加/修正が求められているのなら、
グダグダ言わずにそのスタイルで書け。
繰り返すが、初心者がコーディングスタイルにこだわるのは全くの無駄だから、止めろ。
君が入門書を読んで勉強しているのなら、その本のスタイル通りに書け。
初めはそれでいい。
> こういう書き方をよく見る
嘘つくな。
というか、本当にそう思うのなら見るべきソースを間違っている。
いずれにしても、初心者がその手のコーディングスタイルについて考えるのは完全に時間の無駄だから、
どれでもいいから有名なコーディングルールを読んで、それを使うようにしろ。
お前が今読んでいるそのコードに対して追加/修正が求められているのなら、
グダグダ言わずにそのスタイルで書け。
繰り返すが、初心者がコーディングスタイルにこだわるのは全くの無駄だから、止めろ。
君が入門書を読んで勉強しているのなら、その本のスタイル通りに書け。
初めはそれでいい。
57デフォルトの名無しさん (ブーイモ MM76-C14s)
2017/12/30(土) 17:52:35.86ID:oaZtakGBM >>52
cb とか indent ってコマンドがある
cb とか indent ってコマンドがある
58片山博文MZ ◆T6xkBnTXz7B0 (スププ Sdea-hOPe)
2017/12/30(土) 17:53:57.97ID:jArhle36d C言語では文字列以外の空白はほとんど無視されるから、処理を一行に長〜く書くことが
できるけど、それでは人間には分かりにくいし、読みづらい。
できるけど、それでは人間には分かりにくいし、読みづらい。
59片山博文MZ ◆T6xkBnTXz7B0 (スププ Sdea-hOPe)
2017/12/30(土) 18:16:01.37ID:jArhle36d ANSIスタイル、K&Rスタイル、GNUスタイル
60デフォルトの名無しさん (スッップ Sdea-7LGL)
2017/12/30(土) 18:16:52.49ID:l+pzRLn8d61片山博文MZ ◆T6xkBnTXz7B0 (スププ Sdea-hOPe)
2017/12/30(土) 18:56:08.15ID:jArhle36d GNUスタイルは大嫌いだったな。K&Rは行数削れるから、最初のころ使っていたけど。
62デフォルトの名無しさん (アウアウカー Sacb-9mWg)
2017/12/30(土) 19:19:44.15ID:bLWDJrONa >>52
人間が見る時の見易さのためだけにそう書いているのがある。言語としての決まりはない。
C言語で改行に意味があるのはダブルクォーテーションで括った文字列内とプリプロセッサが処理する#で始まる行ぐらいだ。
人間が見る時の見易さのためだけにそう書いているのがある。言語としての決まりはない。
C言語で改行に意味があるのはダブルクォーテーションで括った文字列内とプリプロセッサが処理する#で始まる行ぐらいだ。
63デフォルトの名無しさん (ワッチョイ ff89-OTe3)
2018/01/03(水) 19:26:04.56ID:AMJZwzU90 ,,-―--、
|:::::::::::::;;;ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::::::::::( 」 <見るべきソースを間違っている。
ノノノ ヽ_l \______________
,,-┴―┴- 、 ∩_
/,|┌-[]─┐| \ ( ノ
/ ヽ| | バ | '、/\ / /
/ `./| | カ | |\ /
\ ヽ| lゝ | | \__/
\ |  ̄ ̄ ̄ |
⊂|______|
|l_l i l_l |
| ┬ |
|:::::::::::::;;;ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::::::::::( 」 <見るべきソースを間違っている。
ノノノ ヽ_l \______________
,,-┴―┴- 、 ∩_
/,|┌-[]─┐| \ ( ノ
/ ヽ| | バ | '、/\ / /
/ `./| | カ | |\ /
\ ヽ| lゝ | | \__/
\ |  ̄ ̄ ̄ |
⊂|______|
|l_l i l_l |
| ┬ |
64デフォルトの名無しさん (ワッチョイ 0b9f-QE/9)
2018/01/04(木) 03:49:55.19ID:i5eFl8wN065デフォルトの名無しさん (アウアウカー Sa4f-q6P5)
2018/01/04(木) 22:13:01.12ID:nzw/Y4fXa char p[]="aiueo";
p[3]='\0';
ではエラー出ないのに
char *p="aiueo";
*(p+3)='\0';
は書き込み違反になるのは何故なの
p[3]='\0';
ではエラー出ないのに
char *p="aiueo";
*(p+3)='\0';
は書き込み違反になるのは何故なの
66デフォルトの名無しさん (アークセー Sxcf-IYiY)
2018/01/04(木) 22:16:54.08ID:WGw/XlWzx >>65
前者は配列変数のp、後者は定数を指してるポインタのp。
前者は配列変数のp、後者は定数を指してるポインタのp。
67デフォルトの名無しさん (ワッチョイ cbb3-stpt)
2018/01/04(木) 22:20:46.48ID:Nl4WK1Y+0 前者は文字列リテラルの複製を配列にセットしたうえで配列を書き換えてる
後者は(ポインタ経由で)文字列リテラルそのものを書き換えている
後者は(ポインタ経由で)文字列リテラルそのものを書き換えている
68デフォルトの名無しさん (アウアウカー Sa4f-q6P5)
2018/01/04(木) 22:25:12.39ID:nzw/Y4fXa69デフォルトの名無しさん (ワッチョイ 0b9f-hL1C)
2018/01/05(金) 04:42:55.46ID:/8+f7RxD0 前スレでも話題になったね。
http://mevius.5ch.net/test/read.cgi/tech/1509107288/936
http://mevius.5ch.net/test/read.cgi/tech/1509107288/936
70デフォルトの名無しさん (ワッチョイ 3b89-2A+B)
2018/01/05(金) 11:52:20.32ID:e4FSU8sj0 char *p="aiueo"; //これが通るのは必要悪
const char *p="aiueo"; //本来こうであるべき
*(p+3)='\0'; //constついてりゃ並みのアフォなら気付けるはず
const char *p="aiueo"; //本来こうであるべき
*(p+3)='\0'; //constついてりゃ並みのアフォなら気付けるはず
71デフォルトの名無しさん (ササクッテロレ Spcf-438m)
2018/01/05(金) 16:14:27.78ID:sDpuhJDsp constの意味がわかって無いアホ。
リテラルが書き換えられないだけで、ポインターは別に書き換えてもいいだろ。
リテラルが書き換えられないだけで、ポインターは別に書き換えてもいいだろ。
72デフォルトの名無しさん (ワッチョイ 0fea-stpt)
2018/01/05(金) 16:41:35.06ID:YLrUpulc0 char * const と const char * の違い
73デフォルトの名無しさん (ワッチョイ 1fd6-2A+B)
2018/01/05(金) 17:54:32.46ID:SpC7EOR80 >>71
ブーメランおいしい?www
ブーメランおいしい?www
74デフォルトの名無しさん (アウアウカー Sa4f-dSb4)
2018/01/05(金) 18:07:43.83ID:T2NhU/kFa そういや前にどこにconst入れるとどこが定数扱いになるか色々やって調べたことあるなあ。
75デフォルトの名無しさん (アウアウウー Sa8f-hL1C)
2018/01/05(金) 18:28:56.45ID:/3vfwTzea const char *p; と char const *p; は p が指す先が定数で char * const p; は p 自体が定数なんだよね。
76デフォルトの名無しさん (アウアウカー Sa4f-dSb4)
2018/01/05(金) 19:10:23.97ID:T2NhU/kFa まあしかしコンパイラには char *p = "..."; の宣言で *p に書き込みアクセスするような記述を見つけたら警告ぐらい出して欲しいところだな。
実際に(少なくともデフォルトでは)動かないコード吐くわけだし。
実際に(少なくともデフォルトでは)動かないコード吐くわけだし。
77デフォルトの名無しさん (スッップ Sdbf-IYiY)
2018/01/05(金) 20:16:53.14ID:q5xsNlvVd ポインタである以上なんでも指せるし、
どう使うかは完全に自己責任では?
どう使うかは完全に自己責任では?
78デフォルトの名無しさん (ワッチョイ 0b9f-hL1C)
2018/01/05(金) 20:55:22.53ID:/8+f7RxD0 ま、確かに。他の所を指すように使い回せるけどね。うーん。
79デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
2018/01/05(金) 21:56:39.58ID:IkbAePsg0 >>70に加えて、
const char* const p = "aiueo"; // p も *p も const
も使い分ければいいだけだろ。
つってもこの書き方、非標準なのか?以下ページ以外では見あたらない。
https://qiita.com/pink_bangbi/items/a36617bf1d5923743d69
const char* const p = "aiueo"; // p も *p も const
も使い分ければいいだけだろ。
つってもこの書き方、非標準なのか?以下ページ以外では見あたらない。
https://qiita.com/pink_bangbi/items/a36617bf1d5923743d69
80デフォルトの名無しさん (ワッチョイ 1fd6-5YeV)
2018/01/06(土) 08:11:50.88ID:9HgF2CnS0 >>79
ISO/IEC 9899:2011 A.2.2に書いてあるんだが、おまえさんには見えないのか?
7.3) type-qualifier:
const
restrict
volatile
_Atomic
7.6) pointer:
* type-qualifier-listopt
* type-qualifier-listopt pointer
7.6) type-qualifier-list:
type-qualifier
type-qualifier-list type-qualifier
ISO/IEC 9899:2011 A.2.2に書いてあるんだが、おまえさんには見えないのか?
7.3) type-qualifier:
const
restrict
volatile
_Atomic
7.6) pointer:
* type-qualifier-listopt
* type-qualifier-listopt pointer
7.6) type-qualifier-list:
type-qualifier
type-qualifier-list type-qualifier
81デフォルトの名無しさん (ワッチョイ 9b7f-rQp9)
2018/01/06(土) 11:14:58.36ID:3YD8ke1c0 char **pをconstするとそんな感じにならなかったけ?
82デフォルトの名無しさん (アウアウウー Sa8f-hL1C)
2018/01/06(土) 16:50:26.91ID:Dhtt7sCWa あ、こういう問題作れるね。
・ それぞれの違いについて説明せよ。
const char **p
char const **p
char * const *p
char ** const p
char * const *p
char * const * const p
char const * const * const p
char const ** const p
・ それぞれの違いについて説明せよ。
const char **p
char const **p
char * const *p
char ** const p
char * const *p
char * const * const p
char const * const * const p
char const ** const p
83デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
2018/01/06(土) 18:52:18.14ID:0jo5cy8h0 >>82
悪問だけどな。結局の所、
・constは複数回指定できる
・constの右側の固まり全体が定数と見なされる
だけだし。逆に言えば、それらを別物/良問として認識するような奴は上達しないのだと思う。
(記憶の前処理としてabstractionする癖がない)
だからこれまでそんな馬鹿げた問題を出す奴はC界隈には居なかったし、今後も多分そうだ。
CodeIQの広告でその手の問題をよく見るが、あれじゃ「馬鹿です」と自己紹介して居るも同然だし。
まあ所詮リクルート(コード書いてない連中)だからそんなもんだが。
とはいえ、何らかのテストで簡単にそいつの実力を把握できる事が出来るのなら、役立つのも確かだが。
そしてそれ以前にconstが大して役に立たないからなあ。
悪問だけどな。結局の所、
・constは複数回指定できる
・constの右側の固まり全体が定数と見なされる
だけだし。逆に言えば、それらを別物/良問として認識するような奴は上達しないのだと思う。
(記憶の前処理としてabstractionする癖がない)
だからこれまでそんな馬鹿げた問題を出す奴はC界隈には居なかったし、今後も多分そうだ。
CodeIQの広告でその手の問題をよく見るが、あれじゃ「馬鹿です」と自己紹介して居るも同然だし。
まあ所詮リクルート(コード書いてない連中)だからそんなもんだが。
とはいえ、何らかのテストで簡単にそいつの実力を把握できる事が出来るのなら、役立つのも確かだが。
そしてそれ以前にconstが大して役に立たないからなあ。
84デフォルトの名無しさん (ワッチョイ 0b9f-hL1C)
2018/01/06(土) 19:00:28.28ID:BwjYxRoc0 >>83
> ・constの右側の固まり全体が定数と見なされる
え? これ違わない? というのは
const char *p = "...";
の場合は p は p++ できたりして const じゃないから右側の塊ではない。
> ・constの右側の固まり全体が定数と見なされる
え? これ違わない? というのは
const char *p = "...";
の場合は p は p++ できたりして const じゃないから右側の塊ではない。
85デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
2018/01/06(土) 19:13:55.66ID:0jo5cy8h0 >>84
お前は上達しないタイプだね
お前は上達しないタイプだね
86デフォルトの名無しさん (ワッチョイ 0b9f-hL1C)
2018/01/06(土) 19:53:29.84ID:BwjYxRoc0 いやあ、それほどでも。
88デフォルトの名無しさん (ワッチョイ 9f87-438m)
2018/01/06(土) 20:41:46.13ID:a2JToFVw0 変数型宣言と初期化を同時に記述してっからそうなるんだろ?
89デフォルトの名無しさん (ワッチョイ 9fb3-TPPA)
2018/01/06(土) 20:49:46.88ID:A2dnXNCo0 >>82
1: const char **p
2: char const **p
3: char * const *p
4: char ** const p
5: char * const *p
6: char * const * const p
7: char const * const * const p
8: char const ** const p
1と2、3と5は同じ
char **pとchar const * const *pのパターンがない
こういう奴はプログラマーに向いてない
1: const char **p
2: char const **p
3: char * const *p
4: char ** const p
5: char * const *p
6: char * const * const p
7: char const * const * const p
8: char const ** const p
1と2、3と5は同じ
char **pとchar const * const *pのパターンがない
こういう奴はプログラマーに向いてない
90デフォルトの名無しさん (ワッチョイ 0b9f-hL1C)
2018/01/06(土) 21:08:00.94ID:BwjYxRoc0 キリッ
91デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
2018/01/06(土) 22:07:37.32ID:0jo5cy8h0 >>87
例外ではない。
char部分はCでは常にcons扱い(=int等に変更できない)だから
constが修飾する対象に仕様上なり得ないだけ。
だからその2つは結果的に同じ意味になる。
というかCは文法例外はほぼ無いはず。
例外ではない。
char部分はCでは常にcons扱い(=int等に変更できない)だから
constが修飾する対象に仕様上なり得ないだけ。
だからその2つは結果的に同じ意味になる。
というかCは文法例外はほぼ無いはず。
92デフォルトの名無しさん (ワッチョイ 9f87-438m)
2018/01/07(日) 00:49:57.01ID:8rHqhWQu0 c++と勘違いしてね?
93デフォルトの名無しさん
2018/01/07(日) 06:32:55.29 自分流に解釈して覚えるのはいいけど、それが世界の真実かのように講釈するのは恥ずかしいから控えた方がいいよ
まあこのスレではいいけど、リアルの人間関係では陰で馬鹿にされるだけだよ
まあこのスレではいいけど、リアルの人間関係では陰で馬鹿にされるだけだよ
94デフォルトの名無しさん (ワッチョイ 0bbb-2A+B)
2018/01/07(日) 19:53:30.95ID:8XJu4dlo095デフォルトの名無しさん (ワッチョイ 0bbb-2A+B)
2018/01/07(日) 19:54:10.54ID:8XJu4dlo0 いかん、間違えた
おまえさん char c; (int)c = 1; が許されないことと勘違いしているのか?
おまえさん char c; (int)c = 1; が許されないことと勘違いしているのか?
96デフォルトの名無しさん
2018/01/07(日) 20:44:34.88 ほらね、共通語をしゃべらないから話が発散する
97デフォルトの名無しさん (ブーイモ MM8f-jEmF)
2018/01/08(月) 15:01:42.36ID:3+trBLI4M >>95
これってcをintに拡張して1を代入してcをcharに戻すの?
これってcをintに拡張して1を代入してcをcharに戻すの?
98デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
2018/01/08(月) 15:27:35.06ID:u4QX+fVn099デフォルトの名無しさん
2018/01/08(月) 15:31:40.17100デフォルトの名無しさん (ササクッテロレ Spcf-438m)
2018/01/08(月) 15:33:23.37ID:xTC/W6bpp 思いっきりメモリーリークして実行時に大暴走する悪寒しかしない。
101デフォルトの名無しさん (ワッチョイ 2bb3-RrJ/)
2018/01/08(月) 16:09:19.72ID:eKvnY0O/0 (int)cって右辺値じゃないの?
102デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
2018/01/08(月) 17:43:28.20ID:u4QX+fVn0103デフォルトの名無しさん (ブーイモ MM7f-jEmF)
2018/01/08(月) 17:56:03.73ID:YTvuEBugM >>98
俺は初見ではcはcharのまま代入されて代入後の値がintとして評価されると見たんだが
俺は初見ではcはcharのまま代入されて代入後の値がintとして評価されると見たんだが
104デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
2018/01/08(月) 18:25:44.79ID:8LuLzpAV0105デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
2018/01/08(月) 19:03:01.62ID:u4QX+fVn0 若造が見たことないのは仕方ないよ
活発に議論されていたのがC89制定を目指していた頃のことだから
活発に議論されていたのがC89制定を目指していた頃のことだから
106デフォルトの名無しさん (ワッチョイ 0f81-s6pf)
2018/01/08(月) 19:11:59.23ID:tyeiJEzF0 おじいちゃん、若い人いじめちゃだめだよ
107デフォルトの名無しさん (ワッチョイ cbb3-stpt)
2018/01/08(月) 19:14:15.10ID:RVv57Yq50 >>84,87,91,95 の流れがよくわからん
const <type> *p = ... が <type> const *p = ... と等価となる理由が例外ではなく
p を左辺値と解釈する隙間があるから ってこと?
const <type> *p = ... が <type> const *p = ... と等価となる理由が例外ではなく
p を左辺値と解釈する隙間があるから ってこと?
108デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
2018/01/08(月) 19:26:48.32ID:u4QX+fVn0 >>106
一児の父だが孫はまだいねえよ
一児の父だが孫はまだいねえよ
109デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
2018/01/08(月) 19:45:48.59ID:8LuLzpAV0 >>107
例外じゃないって立場は俺しか居ないのか?
その場合、お前らはこれを整合性よく説明できない馬鹿共だということになるが、それで良いか?
逆に考えてみろ。
君がそれを「例外」だとしているのなら、つまり「例外」でなければ君は
const <type> *p = ... // (A)
<type> const *p = ... // (B)
で意味が違うべきだというわけだ。
その場合、それぞれどういう意味と捉えるべきだと考えるのか、言えるか?
例外じゃないって立場は俺しか居ないのか?
その場合、お前らはこれを整合性よく説明できない馬鹿共だということになるが、それで良いか?
逆に考えてみろ。
君がそれを「例外」だとしているのなら、つまり「例外」でなければ君は
const <type> *p = ... // (A)
<type> const *p = ... // (B)
で意味が違うべきだというわけだ。
その場合、それぞれどういう意味と捉えるべきだと考えるのか、言えるか?
110デフォルトの名無しさん (ワッチョイ cbb3-stpt)
2018/01/08(月) 19:52:07.48ID:RVv57Yq50 少なくとも俺は そういうもんだと覚えてるだけで説明はできない
111デフォルトの名無しさん (ワッチョイ 9fb3-TPPA)
2018/01/08(月) 20:23:19.52ID:7hYpzMEE0 こんなの決め事なんだからもしそう言うのがあったとしても
> その場合、それぞれどういう意味と捉えるべきだと考えるのか、言えるか?
は、作った奴に聞くしかないだろ
> その場合、それぞれどういう意味と捉えるべきだと考えるのか、言えるか?
は、作った奴に聞くしかないだろ
112デフォルトの名無しさん
2018/01/08(月) 20:24:38.73 例外でもなんでもなく、単にC言語の標準規格がそうなっているからとしか言いようがないけどな。
宣言指定子 (declaration specifier) は以下の3要素から構成されている (順不同)。
・記憶クラス指定子 (storage class specifier) : auto, register, static, extern, typedef
・型指定子 (type specifier) : void, char, short, int, long, float, double, signed, unsigned, struct/union指定子, enum指定子、typedef名
・型修飾子 (type qualifier) : const, volatile
ポインタ宣言子 (pointer) は以下の2要素から構成されている。
・*
・型修飾子 (type qualifier) リスト
いろいろ省略してるので細部は不正確かもしれないがC89ではだいたいこんな感じ。
参考: C11のYacc文法 http://www.quut.com/c/ANSI-C-grammar-y.html
で、なぜそうなっているかを自分流に解釈して自分の中で整合性を取るのはいいけど、それを他人に押しつけるなってことだね。
宣言指定子 (declaration specifier) は以下の3要素から構成されている (順不同)。
・記憶クラス指定子 (storage class specifier) : auto, register, static, extern, typedef
・型指定子 (type specifier) : void, char, short, int, long, float, double, signed, unsigned, struct/union指定子, enum指定子、typedef名
・型修飾子 (type qualifier) : const, volatile
ポインタ宣言子 (pointer) は以下の2要素から構成されている。
・*
・型修飾子 (type qualifier) リスト
いろいろ省略してるので細部は不正確かもしれないがC89ではだいたいこんな感じ。
参考: C11のYacc文法 http://www.quut.com/c/ANSI-C-grammar-y.html
で、なぜそうなっているかを自分流に解釈して自分の中で整合性を取るのはいいけど、それを他人に押しつけるなってことだね。
113デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
2018/01/08(月) 20:24:45.15ID:u4QX+fVn0 ちゃんと理詰めで理解できるやつもいれば
暗記するしかないやつもいる
世の中、人それぞれだな
暗記するしかないやつもいる
世の中、人それぞれだな
114デフォルトの名無しさん
2018/01/08(月) 20:39:32.52■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★2 [BFU★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 [おっさん友の会★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★3 [BFU★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★4 [ぐれ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★3 [ぐれ★]
- 【実況】博衣こよりのえちえち雑談🧪★2
- 高市早苗って戦後最悪の総理大臣なのでは🤔? [929293504]
- 竹田天皇「ホタテ輸入禁止されても中国以外誰も困らない。中国以外に売ればいいんだから」高市 [931948549]
- 【高市早苗】おこめ券、JAが1/8も儲かる仕組みになってた [201193242]
- 【高市速報】トヨタ社長、MAGA帽子をかぶって登場し世界を震撼させる [462275543]
- 【実況】博衣こよりのえちえち雑談🧪
