!extend:checked:vvvvv:1000:512
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/
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
※前スレ
C言語なら俺に聞け 151
https://mevius.5ch.net/test/read.cgi/tech/1554171817/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 152
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウウー Sa4f-7DQ/)
2019/06/17(月) 18:27:10.41ID:3L1/L9kLa492デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 00:24:39.33ID:UHx9kM+ca >>491
いや、しろよ
いや、しろよ
493デフォルトの名無しさん (アウアウクー MM7b-WqwA)
2019/07/16(火) 00:48:27.21ID:/MIJx2vXM プログラムは書く人によって千差万別
書く物によっては複雑な物を書かなきゃならない
そしてその上でのバグ千差万別
ルールブックなんてプログラム書かない管理者がこれを守れば大丈夫(キリッ
ってするものだろう
書く物によっては複雑な物を書かなきゃならない
そしてその上でのバグ千差万別
ルールブックなんてプログラム書かない管理者がこれを守れば大丈夫(キリッ
ってするものだろう
494デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 01:07:51.42ID:EySzsoWc0 普通は大勢で開発するときに必要な取り決めだけどな
そういう規模で仕事しないなら,何しても良いけど
そういう規模で仕事しないなら,何しても良いけど
495デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 01:37:13.82ID:UHx9kM+ca >>494
MISRAは明らかに小規模なプログラムのための規約だと思うよ
MISRAは明らかに小規模なプログラムのための規約だと思うよ
496デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 02:37:59.80ID:EySzsoWc0 大規模なプロジェクトのコーディング規約を決める人がここにいるとは思わないからね
小規模だと思うなら,そのルールでやれば良いんじゃない?
小規模だと思うなら,そのルールでやれば良いんじゃない?
497デフォルトの名無しさん (アウアウクー MM7b-WqwA)
2019/07/16(火) 03:09:26.20ID:FvAVzBqbM 大規模とか小規模とかじゃなく実際にプログラムを書いてると必要になったりとかあるって話で
プログラムを書いた事内物が大規模ではとかいってるのか
プログラムを書いた事内物が大規模ではとかいってるのか
498デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 03:18:03.55ID:UHx9kM+ca そうそう、MISRAはクソ
499デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 03:29:07.35ID:UHx9kM+ca MISRAを尊重するひとって、returnを書く位置によって返る先が変わると思ってるんだよ
500デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/16(火) 07:29:02.49ID:UAKGOqEv0 間違ったことばかり書いてあるわけじゃないけどね
現場にそぐわないスキル不足なやつを庇うところには同意しかねるわけよ
> ルール 8.14 必要 restrict型修飾子を使用してはならない
規格票が読めないようなアホの相手はやってらんね
C++が混ざるところでも対策は簡単だし
現場にそぐわないスキル不足なやつを庇うところには同意しかねるわけよ
> ルール 8.14 必要 restrict型修飾子を使用してはならない
規格票が読めないようなアホの相手はやってらんね
C++が混ざるところでも対策は簡単だし
501デフォルトの名無しさん (ワッチョイ 17d2-rBUL)
2019/07/16(火) 07:43:27.01ID:1j77iOOZ0 トヨタのやってることは一つのミスでも人が死ぬということだよ
もしrestrictを使って人が死んだら責任とれるの?
もしrestrictを使って人が死んだら責任とれるの?
502デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/16(火) 07:45:28.75ID:/V8NdDl/M それなら、人が死なないプロジェクトではMISRAは守る必要がないですね。
503デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/16(火) 07:58:46.16ID:UAKGOqEv0 >>501
規格票を確認しないやつにミスがどうたら言われたかねえぜ
規格票を確認しないやつにミスがどうたら言われたかねえぜ
504デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/16(火) 08:02:25.27ID:UAKGOqEv0 ○○を使って人が死んだら責任とれるの?
○○に何でも突っ込めるウルトラクソ論法
ポインタ、共用体、仮定義、数学関数、それから?
○○に何でも突っ込めるウルトラクソ論法
ポインタ、共用体、仮定義、数学関数、それから?
505デフォルトの名無しさん (アウアウウー Sa47-VBrH)
2019/07/16(火) 08:50:54.07ID:7HVrvnq4a >>501
お前が作ってるプログラムはテストしないのか?
お前が作ってるプログラムはテストしないのか?
506デフォルトの名無しさん (ワッチョイ 3e7c-P44A)
2019/07/16(火) 09:07:55.77ID:csbTSCSc0507デフォルトの名無しさん (ワッチョイ 1aa5-MLMy)
2019/07/16(火) 09:35:00.37ID:UXD1By8p0 上司のバカかバカの上司でも理解できるまでに破壊されたC言語だろ
それを規格と言ってるだけだ
安全かもしれないけど対照実験がないでしょ
安全であることをどうやって確かめたのか論文の欠片も見つからなかった
だからMISRAの安全神話は神話かデマかフェイクニュースだよ
それを規格と言ってるだけだ
安全かもしれないけど対照実験がないでしょ
安全であることをどうやって確かめたのか論文の欠片も見つからなかった
だからMISRAの安全神話は神話かデマかフェイクニュースだよ
508デフォルトの名無しさん (アウアウカー Sa43-NWea)
2019/07/16(火) 09:46:10.29ID:MyJUZjZxa プライドだけは高いこの道30年の社畜が書いた様なルールだよ。
「してはいけない」ばかりでこうしろという記述が圧倒的に少ない。
フレームワークという発想がない。指摘だけ。すべて勘と経験という名の錯覚に基づいてる。
あと内容的に「最適化はしてはいけない」とか書いておけばいいんじゃないかと思う。次は入れて欲しい。
「してはいけない」ばかりでこうしろという記述が圧倒的に少ない。
フレームワークという発想がない。指摘だけ。すべて勘と経験という名の錯覚に基づいてる。
あと内容的に「最適化はしてはいけない」とか書いておけばいいんじゃないかと思う。次は入れて欲しい。
509デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/16(火) 10:35:01.62ID:Yi/rfLM50510デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 12:58:57.36ID:EySzsoWc0 たまたま動いているのは
処理系のバグかも知れない
処理系のバグかも知れない
511デフォルトの名無しさん (ワッチョイ e301-QSGK)
2019/07/16(火) 13:18:30.94ID:uQ5be57j0 組込み系の開発経験者いなくて草
MISRA準拠が納品物の条件にあるんだよ
でもプロジェクト毎にカスママイズするから
100%適用するわけじゃないよ
わけわからんルールは適用除外してる
MISRA準拠が納品物の条件にあるんだよ
でもプロジェクト毎にカスママイズするから
100%適用するわけじゃないよ
わけわからんルールは適用除外してる
512デフォルトの名無しさん (ドコグロ MM77-DHp5)
2019/07/16(火) 14:13:08.82ID:i1fbuZ/pM513デフォルトの名無しさん (ワッチョイ 3e7c-P44A)
2019/07/16(火) 15:01:33.68ID:csbTSCSc0 >>511
8進数使うな、とかいやだよね
8進数使うな、とかいやだよね
514デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/16(火) 15:05:03.91ID:Yi/rfLM50 エディタ上での見栄えで桁合わせに 空白を使わず 0 で補ってやらかす
515デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 15:14:31.06ID:EySzsoWc0516デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 15:27:11.60ID:UHx9kM+ca バイトが6bitの時は便利だったとかいう話だけど、今要らんよね
emacs使っててエンコードがアレだと出てくるね
emacs使っててエンコードがアレだと出てくるね
517デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/16(火) 15:32:14.71ID:Yi/rfLM50 文字列で [ESC] を埋めるのに \033 を使ってるのを見るぐらい
(2進数のリテラルをマクロでなんとかするとき 一時的に8進化するけど 中の話)
(2進数のリテラルをマクロでなんとかするとき 一時的に8進化するけど 中の話)
518デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/16(火) 15:40:10.80ID:uQ5be57j0 大昔のアーキテクチャは18bit,24bit とかで3bit 区切りが扱いやすかった
今は16,32,64と16進数が扱いやすいって話だね
ゼロ始まりは8進数というのはB言語からきたらしいよ
今は16,32,64と16進数が扱いやすいって話だね
ゼロ始まりは8進数というのはB言語からきたらしいよ
519デフォルトの名無しさん (ドコグロ MM77-DHp5)
2019/07/16(火) 15:44:50.30ID:i1fbuZ/pM520デフォルトの名無しさん (アークセー Sx3b-GinL)
2019/07/16(火) 16:30:56.95ID:SpxSpG+wx \0 … 8進数
\x0 … 16進数
\x0 … 16進数
521デフォルトの名無しさん (ワッチョイ 2395-q5pO)
2019/07/16(火) 16:37:07.34ID:cpfSTA9t0 >>487
if の nest が深くなってしまう?
if の nest が深くなってしまう?
522デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/16(火) 16:54:01.54ID:Yi/rfLM50 >>521
教条主義的に守るなら そうせざるを得ないだろうね
if (エラー) return ; // 即脱出
後続コード
return ; // 最終
即脱出を禁ずるなら
後続コードは即脱出条件とは排他的なので if (or else) 内に収めるしかない
if (!エラー) {
後続コード
}
return ; // 最終
教条主義的に守るなら そうせざるを得ないだろうね
if (エラー) return ; // 即脱出
後続コード
return ; // 最終
即脱出を禁ずるなら
後続コードは即脱出条件とは排他的なので if (or else) 内に収めるしかない
if (!エラー) {
後続コード
}
return ; // 最終
523デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 16:58:26.41ID:EySzsoWc0 goto ___exit; /* 震え声 */
524デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/16(火) 16:59:45.97ID:Yi/rfLM50 多分 goto も塞がれてる気配w
525デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/16(火) 17:24:48.72ID:uQ5be57j0 うちはreturnは最後に一つのみってやつは適用除外になってる
理由はネストが深くなって読みづらくなるから
gotoもネストしたループから一気に抜ける場合のみ使ってもよいことになってる
フラグ使ってbreakで抜けるより読みやすいからね
理由はネストが深くなって読みづらくなるから
gotoもネストしたループから一気に抜ける場合のみ使ってもよいことになってる
フラグ使ってbreakで抜けるより読みやすいからね
526デフォルトの名無しさん (アウアウウー Sa47-ihks)
2019/07/16(火) 17:27:15.45ID:glyNXuyHa もちろんgotoも禁止さ。
あと、各関数の頭で引数チェックも必須なのでreturn禁止とのコンボでほぼ必ず正常系処理のネストが一段以上深くなる。
引数チェック必須はISO26262だったかもしれん。
あと、各関数の頭で引数チェックも必須なのでreturn禁止とのコンボでほぼ必ず正常系処理のネストが一段以上深くなる。
引数チェック必須はISO26262だったかもしれん。
527デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 17:27:59.62ID:UHx9kM+ca 途中のreturn禁止を徹底するなら、ifとかelseの後に2行以上書くの禁止にした方がいいね。
代入だけ許容するくらいでいい。
代入だけ許容するくらいでいい。
528デフォルトの名無しさん (スフッ Sdba-Z5NF)
2019/07/16(火) 17:28:40.15ID:T78CNDqDd >>513
0は0x0とか書かなきゃいけないんかね
0は0x0とか書かなきゃいけないんかね
529デフォルトの名無しさん (ワッチョイ 5fd2-TPoM)
2019/07/16(火) 18:10:37.85ID:QICQY/wp0 >515
そりゃもう512色カラー設定に(ry
そりゃもう512色カラー設定に(ry
530デフォルトの名無しさん (スップ Sd5a-AthE)
2019/07/16(火) 18:31:58.85ID:2nARKc5Ld ここまできたらC言語も禁止だな。
pythonでコーディングしてコンパイルしてやればいい。
pythonでコーディングしてコンパイルしてやればいい。
531デフォルトの名無しさん (ワッチョイ 5ba0-P44A)
2019/07/16(火) 18:35:56.79ID:/Cc9wbE10 結構前から言われてない?
「C言語を使う必要が無いなら使うな」と
「C言語を使う必要が無いなら使うな」と
532デフォルトの名無しさん (アウアウウー Sa47-KZVA)
2019/07/16(火) 18:47:43.53ID:K50k857la pythonを使って人が死んだら責任とれるの?
533デフォルトの名無しさん (スップ Sd5a-AthE)
2019/07/16(火) 18:54:47.98ID:2nARKc5Ld >>532
大丈夫さ。プログラム全体をtryで囲んで引っ掛かったらprint("手動運転に切り替てください")のコンボがある。
大丈夫さ。プログラム全体をtryで囲んで引っ掛かったらprint("手動運転に切り替てください")のコンボがある。
534デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/16(火) 18:58:26.32ID:uQ5be57j0 pythonでOSやデバドラ書けるようになったら考えるわ
535デフォルトの名無しさん (アークセー Sx3b-GinL)
2019/07/16(火) 20:05:19.62ID:WsWptbblx #define xxx 06
#define yyy 07
//#define zzz 08 // なぜかエラーになる
#define yyy 07
//#define zzz 08 // なぜかエラーになる
536デフォルトの名無しさん (アウアウウー Sa47-KZVA)
2019/07/16(火) 20:31:07.37ID:K50k857la なぜかはひみつ
537デフォルトの名無しさん (ブーイモ MM26-cAz/)
2019/07/16(火) 20:54:46.50ID:GCGNUpCjM >>535
なんてありがちな…
なんてありがちな…
538デフォルトの名無しさん (ブーイモ MM26-cAz/)
2019/07/16(火) 21:03:30.93ID:GCGNUpCjM539デフォルトの名無しさん (アウアウウー Sa47-KZVA)
2019/07/16(火) 21:05:08.13ID:K50k857la 祈りが足りないからだな
540デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/16(火) 21:08:14.38ID:uQ5be57j0 ちょっと前に8進数が〜ってやってるのに
あ、ネタかw
あ、ネタかw
541デフォルトの名無しさん (ワッチョイ 5ba0-P44A)
2019/07/16(火) 21:22:48.20ID:/Cc9wbE10 このスレの人って少し前のレス読まないよね
542デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/16(火) 21:31:28.73ID:7JXDuVC90 const char *sの順番が納得いかない
直感的にはchar * const sだろうが!!
直感的にはchar * const sだろうが!!
543デフォルトの名無しさん (ワッチョイ 5fc3-Z5NF)
2019/07/16(火) 21:32:10.10ID:W8tOKWg20 char const*だろ?
544デフォルトの名無しさん (ワッチョイ db8f-AthE)
2019/07/16(火) 22:16:46.03ID:Qe+dZ6A/0 * const char s
じゃね?
じゃね?
545デフォルトの名無しさん (ワッチョイ db8f-AthE)
2019/07/16(火) 22:17:34.37ID:Qe+dZ6A/0 おれは何を言ってるんだ??
546デフォルトの名無しさん (アークセー Sx3b-GinL)
2019/07/16(火) 22:20:37.80ID:dxLim7GAx >>542
>const char *sの順番が納得いかない
>直感的にはchar * const sだろうが!!
前者はポイントされる文字列が const で、後者はポインタ自体が const でしょ
>const char *sの順番が納得いかない
>直感的にはchar * const sだろうが!!
前者はポイントされる文字列が const で、後者はポインタ自体が const でしょ
547デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/16(火) 22:42:49.53ID:uQ5be57j0 const char* const s
これも直感的じゃないって言うんだろうか
これも直感的じゃないって言うんだろうか
548デフォルトの名無しさん (アークセー Sx3b-GinL)
2019/07/16(火) 22:43:19.23ID:dxLim7GAx 546です
すみません、それを踏まえてということか…
すみません、それを踏まえてということか…
549デフォルトの名無しさん (ワッチョイ 5a73-q5pO)
2019/07/16(火) 22:50:32.56ID:g+WSNcLQ0 const は後置で書いたほうが整合性が取れる
char const * const s:
しかし、見た目的にかわいいのは前置である
const char * s;
私はかわいいのが好きである
よって前置は使わない
char const * const s:
しかし、見た目的にかわいいのは前置である
const char * s;
私はかわいいのが好きである
よって前置は使わない
550デフォルトの名無しさん (ワッチョイ 5a73-q5pO)
2019/07/16(火) 22:58:11.13ID:g+WSNcLQ0 そこで私が提案したいのが「strong」である
strongは修飾したデータをすべてconstにする
つまり
char const * const s;
と
strong char * s;
は等価である
strongは修飾したデータをすべてconstにする
つまり
char const * const s;
と
strong char * s;
は等価である
551デフォルトの名無しさん (ワッチョイ ba52-QpLE)
2019/07/16(火) 23:13:59.86ID:ICazHXPW0 >>550
安易な予約語の追加は嫌われるよ
安易な予約語の追加は嫌われるよ
552デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 23:18:11.31ID:EySzsoWc0 「strongがやられたようだな…」
「フフフ…奴は四天王の中でも最弱…」
「フフフ…奴は四天王の中でも最弱…」
553デフォルトの名無しさん (ワッチョイ 5ba0-P44A)
2019/07/16(火) 23:19:03.80ID:/Cc9wbE10 <strong>char* s</strong>
554デフォルトの名無しさん (ワッチョイ e301-P44A)
2019/07/16(火) 23:22:51.61ID:uQ5be57j0 stringと間違えそうで嫌だなw
readonlyはc#で使ってるしな
やっぱconstだな
readonlyはc#で使ってるしな
やっぱconstだな
555デフォルトの名無しさん (ワッチョイ 7602-24gz)
2019/07/16(火) 23:40:17.89ID:awioItM70 大文字で CONST にするとか。
556デフォルトの名無しさん (スップ Sd5a-sMSa)
2019/07/17(水) 04:24:07.40ID:CqcyHUxLd フン
char *const_s
char *const_s
557デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/17(水) 06:33:32.66ID:Pp4wfZXK0 >>546
const int a → constなint型のa
const char *s → constなchar *型のs
constなのはchar *つまりポインタ(直感)
char * const s → char *型のconstなs
constなのはsつまり文字列自体(直感)
なんで逆!!
const int a → constなint型のa
const char *s → constなchar *型のs
constなのはchar *つまりポインタ(直感)
char * const s → char *型のconstなs
constなのはsつまり文字列自体(直感)
なんで逆!!
558デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/17(水) 06:46:44.61ID:NB17uhF90 > const char *s → constなchar *型のs
ギャグだよな?
ギャグだよな?
559デフォルトの名無しさん (ワッチョイ 9ada-Bj8P)
2019/07/17(水) 06:57:50.40ID:i06pHchL0 宣言は右から左に読む
const等の修飾は左にかかる
char const * const s; // sは、const *である、const char型の
右にかかるなら↓のように書けないとおかしいがこれは構文エラーである
const char const *s;
変数名はただの識別子で、ある領域にsという名前を付けただけにすぎない
constやvolatileは型修飾子であり、これらが付くのは型に対してである
〜という領域を、以後sと呼ぶ、である
const等の修飾は左にかかる
char const * const s; // sは、const *である、const char型の
右にかかるなら↓のように書けないとおかしいがこれは構文エラーである
const char const *s;
変数名はただの識別子で、ある領域にsという名前を付けただけにすぎない
constやvolatileは型修飾子であり、これらが付くのは型に対してである
〜という領域を、以後sと呼ぶ、である
560デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/17(水) 07:14:03.66ID:NB17uhF90 ちげーよ
宣言は真ん中から左右に読むんだよ
char const *(* const s)[1];
宣言は真ん中から左右に読むんだよ
char const *(* const s)[1];
561443 (ワッチョイ 9a2c-i8Xk)
2019/07/17(水) 09:21:48.88ID:u050lnGw0 >>526
引数チェックに関しては、Java のコーディングルールでは、
外部の人用のAPI、つまりpublic な関数には、必要
一方、そのモジュール・クラスの実装者が使う、
内部的なAPI、つまりprivate な関数には、いらない
既にどこかで、エラーチェックしてるから、何回も同じエラーチェックするのは、無駄
引数チェックに関しては、Java のコーディングルールでは、
外部の人用のAPI、つまりpublic な関数には、必要
一方、そのモジュール・クラスの実装者が使う、
内部的なAPI、つまりprivate な関数には、いらない
既にどこかで、エラーチェックしてるから、何回も同じエラーチェックするのは、無駄
562デフォルトの名無しさん (ワッチョイ 23b3-15OI)
2019/07/17(水) 21:08:01.97ID:E0YvS3zE0 const char *sは*sがconst
つまりポインタsの指すアドレスにある値が不変だけどsがどこを指すのかは可変
char *const sはsがconst
つまりポインタsがどこを指すかは不変だけどsの指すアドレスにある値は可変
大体こんな認識で合ってる?
つまりポインタsの指すアドレスにある値が不変だけどsがどこを指すのかは可変
char *const sはsがconst
つまりポインタsがどこを指すかは不変だけどsの指すアドレスにある値は可変
大体こんな認識で合ってる?
563デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/17(水) 23:04:57.90ID:Pp4wfZXK0 あってるけど納得いかないって話
1つ目がまず何で*sにかかるんだよ
自然に読んだらconstはchar *にかかるだろ
右から読むとか頭おかしいわ、アラビア語かよ
1つ目がまず何で*sにかかるんだよ
自然に読んだらconstはchar *にかかるだろ
右から読むとか頭おかしいわ、アラビア語かよ
>>563
char * s;
に 1 個の const を追加するとき、形式的に追加できる場所は 4 箇所
a) char * s const;
b) char * const s;
c) char const * s;
d) const char * s;
このうち a) はコンパイルできない
b) c) は可能だが、の二つの間で意味は異なる
d) は本来ならエラーであるべきだと私は考えているが、実際には c) と一緒の意味になっている
char * s;
に 1 個の const を追加するとき、形式的に追加できる場所は 4 箇所
a) char * s const;
b) char * const s;
c) char const * s;
d) const char * s;
このうち a) はコンパイルできない
b) c) は可能だが、の二つの間で意味は異なる
d) は本来ならエラーであるべきだと私は考えているが、実際には c) と一緒の意味になっている
565デフォルトの名無しさん (ワッチョイ 2395-q5pO)
2019/07/17(水) 23:34:56.30ID:RL7WDafS0 C言語使う時はいつ?
早いコードが欲しい時
メモリー消費に無駄のないコードが欲しい時
他ある?
早いコードが欲しい時
メモリー消費に無駄のないコードが欲しい時
他ある?
>>565
他の言語はほとんどわからず(かじってはみたものの使えるまでにはMPがあがらず)、C/C++ でしかまともに書けないし発想できないからです…
他の言語はほとんどわからず(かじってはみたものの使えるまでにはMPがあがらず)、C/C++ でしかまともに書けないし発想できないからです…
567デフォルトの名無しさん (ワッチョイ db8f-AthE)
2019/07/17(水) 23:42:49.57ID:FDkzfNlT0 >>563
実はアラビア語って可能性はないのか?
実はアラビア語って可能性はないのか?
568デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/17(水) 23:49:47.36ID:Pp4wfZXK0 そもそもconst char *sの宣言の時の切れ目がconst / char / *s なのも何だかなぁ
const / char * / s でconstはchar *にかかれよjk
現実に間違ってるのは渋々受け入れてるけど開発者が許せない
const / char * / s でconstはchar *にかかれよjk
現実に間違ってるのは渋々受け入れてるけど開発者が許せない
569デフォルトの名無しさん (アークセー Sxa3-F8Mm)
2019/07/18(木) 00:00:28.28ID:OLFUgkogx >>564
自分は b or(and) d かなー
自分は b or(and) d かなー
570デフォルトの名無しさん (ワッチョイ 3f52-5sVo)
2019/07/18(木) 00:33:34.97ID:Nr80YdQr0 >>565
他に思い付くところとしては、
組み込み環境などで、C言語以外の選択肢がない、または他の言語で実行できる環境を整えるよりCを使った方が楽な場合。
外部のライブラリのインタフェースがC言語で、呼び出す部分をCで作る方が楽な場合。
バイナリファイルの操作などポインタ操作を使って実装しやすい場合。
他に思い付くところとしては、
組み込み環境などで、C言語以外の選択肢がない、または他の言語で実行できる環境を整えるよりCを使った方が楽な場合。
外部のライブラリのインタフェースがC言語で、呼び出す部分をCで作る方が楽な場合。
バイナリファイルの操作などポインタ操作を使って実装しやすい場合。
571デフォルトの名無しさん (ワッチョイ 3f52-5sVo)
2019/07/18(木) 00:48:28.58ID:Nr80YdQr0572デフォルトの名無しさん (ワッチョイ 4fd2-ulaa)
2019/07/18(木) 05:33:10.45ID:yO5P6Jqp0 char *s
の意味は*sはchar型だよって意味で
sはchar *型だよって意味じゃないよ
の意味は*sはchar型だよって意味で
sはchar *型だよって意味じゃないよ
573デフォルトの名無しさん (スップ Sddf-1UnR)
2019/07/18(木) 05:43:05.99ID:xY9KzRxOd574デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/18(木) 06:48:06.17ID:2qyz/4gG0575デフォルトの名無しさん (ドコグロ MM5f-FX/1)
2019/07/18(木) 07:54:18.60ID:kb0ZHGx0M *と*const があると憶えるべき。
576デフォルトの名無しさん (アウアウウー Sad3-9T1T)
2019/07/18(木) 09:56:03.22ID:q9HPUerJa >>563
ポインタを表す * が型にくっついてるんじゃなくて変数にくっついてるからでは?
分かりにくいなら typedef でポインタの型を作ってそれを使えばいいんじゃないな。
右から読む事に関しては英語を日本語に翻訳する時に順序を入れ換えた方が自然な感じになる事があるのでなんとも言えんな。漢文のレ点みたいなものもあるしな。
日本語とは逆順の方が自然な表現になる言語はある。そして歴史的な事情で混在してしまっているのもある(アメリカでの年月日が月日年の順だとか)。
生まれながらにしてその言語使ってればその人にとってはそれが一番自然な表現だからな。
ポインタを表す * が型にくっついてるんじゃなくて変数にくっついてるからでは?
分かりにくいなら typedef でポインタの型を作ってそれを使えばいいんじゃないな。
右から読む事に関しては英語を日本語に翻訳する時に順序を入れ換えた方が自然な感じになる事があるのでなんとも言えんな。漢文のレ点みたいなものもあるしな。
日本語とは逆順の方が自然な表現になる言語はある。そして歴史的な事情で混在してしまっているのもある(アメリカでの年月日が月日年の順だとか)。
生まれながらにしてその言語使ってればその人にとってはそれが一番自然な表現だからな。
577デフォルトの名無しさん (スップ Sddf-1UnR)
2019/07/18(木) 10:04:50.81ID:xY9KzRxOd578デフォルトの名無しさん (ワッチョイ 3f28-t2IU)
2019/07/18(木) 21:25:27.83ID:PbeogWAD0 この話は何時も混乱するんだけど
結局の所は
自分の言葉で理解するまでやる
これをやらないと混乱してしまう
なぜそうなってしまったのか?
という視点で解釈しようとしないと
なかなかにc言語って難しい
その辺は例のc言語ポインタにのみついて書かれた本
あれを読んで
後は何とか自分の言葉で理解して解釈するしか方法が無い
それとこんなになってしまっている原因に
キーボード上の記号が少ない
というのもある
basic何かでは記号類は四則演算類だけ使って
なるだけ英単語?を使って記述するようになっている
だから使う場所によって記号の意味が違う
なんていうのが起こりにくくなってる
ある意味c言語が普及してしまったのはプログラミング世界にとっては不幸なのかもしれない
結局の所は
自分の言葉で理解するまでやる
これをやらないと混乱してしまう
なぜそうなってしまったのか?
という視点で解釈しようとしないと
なかなかにc言語って難しい
その辺は例のc言語ポインタにのみついて書かれた本
あれを読んで
後は何とか自分の言葉で理解して解釈するしか方法が無い
それとこんなになってしまっている原因に
キーボード上の記号が少ない
というのもある
basic何かでは記号類は四則演算類だけ使って
なるだけ英単語?を使って記述するようになっている
だから使う場所によって記号の意味が違う
なんていうのが起こりにくくなってる
ある意味c言語が普及してしまったのはプログラミング世界にとっては不幸なのかもしれない
579デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/18(木) 21:30:10.98ID:1zgaXsge0 C言語って初心者向けに作られたものではないと思う
>>578
私も最初に C をやったときには、ここまで流行るとは思わなかったんです、むしろ pascal の方が筋がいいと思っていたのですが、どうしてこうなってしまったのでしょうか?
私も最初に C をやったときには、ここまで流行るとは思わなかったんです、むしろ pascal の方が筋がいいと思っていたのですが、どうしてこうなってしまったのでしょうか?
>>579
当時は初心者用とかは特に無くて、BASIC でもある程度できる人はすぐに peek, poke を連発するようになったものです、最近の人は甘えていると思います
当時は初心者用とかは特に無くて、BASIC でもある程度できる人はすぐに peek, poke を連発するようになったものです、最近の人は甘えていると思います
582デフォルトの名無しさん (ワッチョイ 0f01-7lXP)
2019/07/18(木) 21:41:19.07ID:AzHVv8Pq0 >>580
UNIXがCで云々というのもあるけど、良い意味で高級アセンブラとして使い勝手が良かったからじゃないかな?
UNIXがCで云々というのもあるけど、良い意味で高級アセンブラとして使い勝手が良かったからじゃないかな?
583デフォルトの名無しさん (ワッチョイ 0fab-Pjse)
2019/07/18(木) 22:00:46.19ID:8m1lI2X40 厳格で融通がきかないと嫌われる
pascalはそんな感じ
pascalはそんな感じ
>>583
delphi は結構流行ったと思ったんですけれど…
delphi は結構流行ったと思ったんですけれど…
585デフォルトの名無しさん (ワッチョイ 3fa5-xTH7)
2019/07/18(木) 22:18:08.64ID:0kCblb2b0 pascal失速最大の原因は:=だろう
これを採用している言語はもう一つも無い
プログラミング業界最大かつ唯一にして不可侵の大例外を抱えてるのがpascalだ
これを採用している言語はもう一つも無い
プログラミング業界最大かつ唯一にして不可侵の大例外を抱えてるのがpascalだ
586デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/18(木) 22:30:23.30ID:1zgaXsge0 pascalで開発したアプリっていうと
JaneStyleが有名かな?
JaneStyleが有名かな?
587デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/18(木) 22:32:00.45ID:1zgaXsge0 厳格で融通がきかないのは、教育用として最適だと思う
588デフォルトの名無しさん (ワッチョイ 0f01-sqrU)
2019/07/18(木) 22:35:15.64ID:ugDCzjFC0 pascalでUNIX張りのOS書いていれば流行ったかもね
589デフォルトの名無しさん (ワッチョイ ff02-lraP)
2019/07/19(金) 00:19:03.24ID:7Hdy7m6i0 >>585
Modula-2は:=だったような気がする。
Modula-2は:=だったような気がする。
590デフォルトの名無しさん (ワッチョイ ff02-lraP)
2019/07/19(金) 00:22:05.35ID:7Hdy7m6i0591デフォルトの名無しさん (ワッチョイ 3fa5-xTH7)
2019/07/19(金) 00:25:42.16ID:Mih8lrFJ0 もう一つが奥の深さでC言語ではポインタが奥の深い箇所にあたる
この難易度が絶妙で難しい難しいと言われていて初学者には適度に難しいので挫折者が増える、
挫折者の総量が言語の価値を決定する
教育用に作られた言語は難しい箇所とか理屈に合わない箇所とか奥の深い箇所とかが無いのでオカルトとしての魅力が無い
学習曲線がいびつじゃないと流行しない
この難易度が絶妙で難しい難しいと言われていて初学者には適度に難しいので挫折者が増える、
挫折者の総量が言語の価値を決定する
教育用に作られた言語は難しい箇所とか理屈に合わない箇所とか奥の深い箇所とかが無いのでオカルトとしての魅力が無い
学習曲線がいびつじゃないと流行しない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【STARTO ENTERTAINMENT】timelesz篠塚大輝『大きな古時計』替え歌一発ギャグ「今はもう動かない おじいさんにトドメ~♪」が波紋 [Ailuropoda melanoleuca★]
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- たまにaカップの女いるけど何を楽しめばいいの?
