C言語なら俺に聞け 144

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 838a-3nWA)
垢版 |
2017/12/23(土) 19:33:43.89ID:dghfoRy20
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
2017/12/25(月) 19:35:55.33ID:hykLc5AjM
>>34
> レジスタをゼロクリアする専用の命令があればそちらが使われるだろうし、多分その方が何も計算しない分だけ速い。
レジスタじゃなくてメモリーだけど68000のCLR命令はなぜか0を書く前に謎の読み出しを行うので遅かったりした
2017/12/25(月) 19:44:53.59ID:+TGgWy910
>>41
Cソース
https://ideone.com/324qDo
UIソース
https://ideone.com/o3pHFq

コメントにした部分は、動くことは動くけれど、ラベルが反応しない。
今の非コメント部分は、main関数は動きますが、それ以外はエラーが出ます。
動かないのを知っていて、プログラムが中途半端に書かれています。
なので責めないでください。
迷走している様子が伝わってくると思います。
2017/12/26(火) 09:14:44.44ID:0EsJ05iO0
>ゼロクリア
昔触った業務機は0固定のレジスタからコピーしてたな。
45デフォルトの名無しさん (ワッチョイ 93fb-tRgI)
垢版 |
2017/12/26(火) 09:52:36.67ID:yJ/B7pz80
V850?
2017/12/26(火) 10:06:26.59ID:58V6tzNLM
MIPSじゃね?
2017/12/26(火) 11:48:22.67ID:R8+GZeZ4d
SPARCでは
2017/12/26(火) 13:07:44.90ID:m/Tbphkt0
乱数レジスタもあるよ
2017/12/26(火) 18:38:13.95ID:zH75jbqB0
>>48
あれは乱数レジスタではなくて、リフレッシュカウンタ
2017/12/26(火) 20:49:06.65ID:p5SWdn98M
>>49
Z80で知識が止まってるおじいちゃんの出る幕じゃないよ
intel rdrand でググれ
2017/12/26(火) 21:36:47.54ID:zH75jbqB0
>>50
ふむふむ
http://mevius.2ch.net/test/read.cgi/tech/1192628099/337
52デフォルトの名無しさん (エーイモ 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言語ではこういうルールがあるのでしょうか?
2017/12/30(土) 17:46:47.07ID:jArhle36d
それはコーディングスタイルとか、コーディングルールとかいうけど、会社や組織によって違う。
制御構造の構造を明確にするために、「インデント」したり文字の位置を揃えたりする。
まあ、初心者ならANSIスタイル使っておけば無難かな。
2017/12/30(土) 17:49:08.58ID:jArhle36d
コード整形ツールというのを使えば、ソースのスタイルを変換できる。
2017/12/30(土) 17:50:39.34ID:jArhle36d
インデントするときはTabキーが便利。
2017/12/30(土) 17:52:13.74ID:Xyp0qNcm0
>>52
> こういう書き方をよく見る
嘘つくな。
というか、本当にそう思うのなら見るべきソースを間違っている。

いずれにしても、初心者がその手のコーディングスタイルについて考えるのは完全に時間の無駄だから、
どれでもいいから有名なコーディングルールを読んで、それを使うようにしろ。
お前が今読んでいるそのコードに対して追加/修正が求められているのなら、
グダグダ言わずにそのスタイルで書け。

繰り返すが、初心者がコーディングスタイルにこだわるのは全くの無駄だから、止めろ。
君が入門書を読んで勉強しているのなら、その本のスタイル通りに書け。
初めはそれでいい。
2017/12/30(土) 17:52:35.86ID:oaZtakGBM
>>52
cb とか indent ってコマンドがある
2017/12/30(土) 17:53:57.97ID:jArhle36d
C言語では文字列以外の空白はほとんど無視されるから、処理を一行に長〜く書くことが
できるけど、それでは人間には分かりにくいし、読みづらい。
2017/12/30(土) 18:16:01.37ID:jArhle36d
ANSIスタイル、K&Rスタイル、GNUスタイル
2017/12/30(土) 18:16:52.49ID:l+pzRLn8d
>>52
たまーに引数が多くて読みずらい関数とかをメンテするハメになったときに、コメントつけるためにやる程度。

例のような短いのでそんな事になってたら、元担当見つけて小一時間問い詰めろ。
2017/12/30(土) 18:56:08.15ID:jArhle36d
GNUスタイルは大嫌いだったな。K&Rは行数削れるから、最初のころ使っていたけど。
62デフォルトの名無しさん (アウアウカー Sacb-9mWg)
垢版 |
2017/12/30(土) 19:19:44.15ID:bLWDJrONa
>>52
人間が見る時の見易さのためだけにそう書いているのがある。言語としての決まりはない。
C言語で改行に意味があるのはダブルクォーテーションで括った文字列内とプリプロセッサが処理する#で始まる行ぐらいだ。
63デフォルトの名無しさん (ワッチョイ ff89-OTe3)
垢版 |
2018/01/03(水) 19:26:04.56ID:AMJZwzU90
         ,,-―--、
        |:::::::::::::;;;ノ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        |::::::::::( 」 <見るべきソースを間違っている。
        ノノノ ヽ_l   \______________
       ,,-┴―┴- 、    ∩_
     /,|┌-[]─┐| \  (  ノ
      / ヽ| |  バ  | '、/\ / /
     / `./| |  カ  |  |\   /
     \ ヽ| lゝ    |  |  \__/
     \ |  ̄ ̄ ̄   |
      ⊂|______|
       |l_l i l_l |
       |   ┬    |
64デフォルトの名無しさん (ワッチョイ 0b9f-QE/9)
垢版 |
2018/01/04(木) 03:49:55.19ID:i5eFl8wN0
https://goo.gl/images/7psvUE
2018/01/04(木) 22:13:01.12ID:nzw/Y4fXa
char p[]="aiueo";
p[3]='\0';
ではエラー出ないのに
char *p="aiueo";
*(p+3)='\0';
は書き込み違反になるのは何故なの
2018/01/04(木) 22:16:54.08ID:WGw/XlWzx
>>65
前者は配列変数のp、後者は定数を指してるポインタのp。
2018/01/04(木) 22:20:46.48ID:Nl4WK1Y+0
前者は文字列リテラルの複製を配列にセットしたうえで配列を書き換えてる
後者は(ポインタ経由で)文字列リテラルそのものを書き換えている
2018/01/04(木) 22:25:12.39ID:nzw/Y4fXa
>>66
>>67
リテラルのアドレスになるのかありがとう
2018/01/05(金) 04:42:55.46ID:/8+f7RxD0
前スレでも話題になったね。
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ついてりゃ並みのアフォなら気付けるはず
2018/01/05(金) 16:14:27.78ID:sDpuhJDsp
constの意味がわかって無いアホ。
リテラルが書き換えられないだけで、ポインターは別に書き換えてもいいだろ。
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
74デフォルトの名無しさん (アウアウカー Sa4f-dSb4)
垢版 |
2018/01/05(金) 18:07:43.83ID:T2NhU/kFa
そういや前にどこにconst入れるとどこが定数扱いになるか色々やって調べたことあるなあ。
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 に書き込みアクセスするような記述を見つけたら警告ぐらい出して欲しいところだな。
実際に(少なくともデフォルトでは)動かないコード吐くわけだし。
2018/01/05(金) 20:16:53.14ID:q5xsNlvVd
ポインタである以上なんでも指せるし、
どう使うかは完全に自己責任では?
2018/01/05(金) 20:55:22.53ID:/8+f7RxD0
ま、確かに。他の所を指すように使い回せるけどね。うーん。
2018/01/05(金) 21:56:39.58ID:IkbAePsg0
>>70に加えて、
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
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
2018/01/06(土) 18:52:18.14ID:0jo5cy8h0
>>82
悪問だけどな。結局の所、
・constは複数回指定できる
・constの右側の固まり全体が定数と見なされる
だけだし。逆に言えば、それらを別物/良問として認識するような奴は上達しないのだと思う。
(記憶の前処理としてabstractionする癖がない)

だからこれまでそんな馬鹿げた問題を出す奴はC界隈には居なかったし、今後も多分そうだ。
CodeIQの広告でその手の問題をよく見るが、あれじゃ「馬鹿です」と自己紹介して居るも同然だし。
まあ所詮リクルート(コード書いてない連中)だからそんなもんだが。
とはいえ、何らかのテストで簡単にそいつの実力を把握できる事が出来るのなら、役立つのも確かだが。

そしてそれ以前にconstが大して役に立たないからなあ。
2018/01/06(土) 19:00:28.28ID:BwjYxRoc0
>>83
> ・constの右側の固まり全体が定数と見なされる

え? これ違わない? というのは

const char *p = "...";

の場合は p は p++ できたりして const じゃないから右側の塊ではない。
2018/01/06(土) 19:13:55.66ID:0jo5cy8h0
>>84
お前は上達しないタイプだね
2018/01/06(土) 19:53:29.84ID:BwjYxRoc0
いやあ、それほどでも。
2018/01/06(土) 20:34:46.10ID:qhltNRsR0
>>84
>const char *p = "...";
は char const *p = "":
に等しい、例外みたいなもんじゃないか?
2018/01/06(土) 20:41:46.13ID:a2JToFVw0
変数型宣言と初期化を同時に記述してっからそうなるんだろ?
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のパターンがない

こういう奴はプログラマーに向いてない
90デフォルトの名無しさん (ワッチョイ 0b9f-hL1C)
垢版 |
2018/01/06(土) 21:08:00.94ID:BwjYxRoc0
キリッ
2018/01/06(土) 22:07:37.32ID:0jo5cy8h0
>>87
例外ではない。
char部分はCでは常にcons扱い(=int等に変更できない)だから
constが修飾する対象に仕様上なり得ないだけ。
だからその2つは結果的に同じ意味になる。

というかCは文法例外はほぼ無いはず。
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:8XJu4dlo0
>>91
charがintに変更できないのがconstだからだと?
おまえさん char c; *(int*)&c = 1; が許されないことと勘違いしているのか?
95デフォルトの名無しさん (ワッチョイ 0bbb-2A+B)
垢版 |
2018/01/07(日) 19:54:10.54ID:8XJu4dlo0
いかん、間違えた
おまえさん char c; (int)c = 1; が許されないことと勘違いしているのか?
96デフォルトの名無しさん
垢版 |
2018/01/07(日) 20:44:34.88
ほらね、共通語をしゃべらないから話が発散する
2018/01/08(月) 15:01:42.36ID:3+trBLI4M
>>95
これってcをintに拡張して1を代入してcをcharに戻すの?
98デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 15:27:35.06ID:u4QX+fVn0
>>97
当たらずといえども遠からず
自分で言ってて無理を感じるなら
それが正解だ
99デフォルトの名無しさん
垢版 |
2018/01/08(月) 15:31:40.17
>>97
んなこたあない
>>94の書いてるコードと同義で、cの先頭アドレスからint分の領域に代入するだけで、cを拡張したり戻したりしてるわけではない
gcc 3.xやVC++2008では通ったが今のgccではコンパイルエラーになる記法
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+fVn0
>>101
そうだよ
だけど一部の(まずいことに大手の)コンパイラが
左辺値としての用法を古くから許していた
2018/01/08(月) 17:56:03.73ID:YTvuEBugM
>>98
俺は初見ではcはcharのまま代入されて代入後の値がintとして評価されると見たんだが
2018/01/08(月) 18:25:44.79ID:8LuLzpAV0
>>102
Cは95のコードを書く池沼は死んでよし、って言語なんだよ。
だからそんなのは問題にもならない。
94はよく見るが、95は見たこと無いぞ。
105デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 19:03:01.62ID:u4QX+fVn0
若造が見たことないのは仕方ないよ
活発に議論されていたのがC89制定を目指していた頃のことだから
2018/01/08(月) 19:11:59.23ID:tyeiJEzF0
おじいちゃん、若い人いじめちゃだめだよ
2018/01/08(月) 19:14:15.10ID:RVv57Yq50
>>84,87,91,95 の流れがよくわからん

const <type> *p = ... が <type> const *p = ... と等価となる理由が例外ではなく
p を左辺値と解釈する隙間があるから ってこと?
108デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 19:26:48.32ID:u4QX+fVn0
>>106
一児の父だが孫はまだいねえよ
2018/01/08(月) 19:45:48.59ID:8LuLzpAV0
>>107
例外じゃないって立場は俺しか居ないのか?
その場合、お前らはこれを整合性よく説明できない馬鹿共だということになるが、それで良いか?

逆に考えてみろ。
君がそれを「例外」だとしているのなら、つまり「例外」でなければ君は
const <type> *p = ... // (A)
<type> const *p = ... // (B)
で意味が違うべきだというわけだ。
その場合、それぞれどういう意味と捉えるべきだと考えるのか、言えるか?
2018/01/08(月) 19:52:07.48ID:RVv57Yq50
少なくとも俺は そういうもんだと覚えてるだけで説明はできない
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

で、なぜそうなっているかを自分流に解釈して自分の中で整合性を取るのはいいけど、それを他人に押しつけるなってことだね。
113デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 20:24:45.15ID:u4QX+fVn0
ちゃんと理詰めで理解できるやつもいれば
暗記するしかないやつもいる

世の中、人それぞれだな
114デフォルトの名無しさん
垢版 |
2018/01/08(月) 20:39:32.52
>>113
別に太陽が地球の周りを公転していると解釈してもいいんですよ?
結果さえ合っていればね。
ただその自分流の解釈を他人に講釈したら恥をかきますよって話。
2018/01/08(月) 20:54:58.77ID:7hYpzMEE0
>>113
> ちゃんと理詰めで理解できるやつもいれば
アホなの?
理詰めで説明できると言うならして見せろよ
116デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 21:18:47.34ID:u4QX+fVn0
             「 ̄ `ヽ、   ______
             L -‐ '´  ̄ `ヽ- 、   〉
          /           ヽ\ /
        //  /  /      ヽヽ ヽ〈
        ヽ、レ! {  ム-t ハ li 、 i i  }ト、
         ハN | lヽ八l ヽjハVヽ、i j/ l !
         /ハ. l ヽk== , r= 、ノルl lL」
        ヽN、ハ l   ┌‐┐   ゙l ノl l
           ヽトjヽ、 ヽ_ノ   ノ//レ′
    r777777777tノ` ー r ´フ/′
   j´ニゝ        l|ヽ  _/`\
   〈 ‐ 知ってるが lト、 /   〃ゝ、
   〈、ネ..         .lF V=="/ イl.
   ト |お前の態度が とニヽ二/  l
   ヽ.|l         〈ー-   ! `ヽ.   l
      |l気に入らない lトニ、_ノ     ヾ、!
      |l__________l|   \    ソ
2018/01/08(月) 21:37:19.02ID:7hYpzMEE0
敗北宣言かよ w
118デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 21:43:42.37ID:u4QX+fVn0
無知なやつには
恥をかかせるよりも
教えないことが最も堪えるからな
2018/01/08(月) 21:47:27.34ID:7hYpzMEE0
何を教えるつもりなんだろう...
俺が思う正解は>>111に書いてあるんだが w
120デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 21:51:24.43ID:u4QX+fVn0
悪党の泣き声は言い響きだ
何を教えるつもりなのか聞き出したいんだなあwww
2018/01/08(月) 21:56:08.87ID:7hYpzMEE0
どうせなにも出てこないのは既にわかってる
って>>115みりゃわかると思うんだが w
2018/01/08(月) 21:58:13.44ID:F+Qn6y7R0
正直なところ

const int x

int const x
は同等、

というのは、決め事でいいと思うよ、何もかも原理原則で理解できる(までに細かくパースできる)人にはどうでもいいのかもしれないが。

‥えっと、細かい人にとって、この場合どうでもいいのか、どうでもよくないのか、どっちだったっけ??
2018/01/08(月) 21:58:47.99ID:0mTJv+h60
知らないし、相手が嫌いだから教え(られ)ない
2018/01/08(月) 22:04:03.83ID:t4bSGeIh0
同等も何も、修飾する主体が変数だけなんだから、何をどう変えろと?
対象がポインタなのかポインタの内容なのかって話に意味の無い例を挙げてどうしたいんだ?
125デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 22:17:28.76ID:u4QX+fVn0
収穫ゼロ
 ざ ま あ www
2018/01/08(月) 22:43:40.28ID:8LuLzpAV0
>>116
>>125
禿同

というかいい加減、知らない奴が煽るとか止めろよドアホ共。それは長期的にスレを毀損する。
なお、俺は知っている奴が馬鹿を糞味噌に貶すのを止めはしない。
馬鹿なこと言わなきゃいいだけだし、
逆に、これが出来ないのがID制フォーラムが腐る原因だと思っているから。

ヒントは既に書いたし、それ以前にC流の文法解釈をすれば特段不自然でもないし。
「例外」だと言いつつ(A)≠(B)を妥当とする根拠もないのはただの自己矛盾だと気付け。
そしてK&RはCの作者によって書かれているんだが、それも知らないのか?
Cしかなかった昔ならともかく、今お前らみたいな馬鹿がCやる理由は無いと思うんだがなぁ。
127デフォルトの名無しさん
垢版 |
2018/01/08(月) 23:14:54.65
>>126
で、K&Rのどの記述からconstに関する解釈(constの右側の固まり全体が定数と見なされる)を読み取ったの?
128デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 23:16:56.57ID:u4QX+fVn0
K&Rにconstはねえな
constの設計は髭と禿の合作だが
2018/01/08(月) 23:27:43.34ID:8LuLzpAV0
>>128
ここに来て堂々と嘘をつくとか、お前も死んだ方がいいな。
K&Rが手元にあるのなら、目次見てみろよ。
130デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 23:28:56.73ID:u4QX+fVn0
おまえの手元のK&RってISBNはいくつだ?
131デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 23:40:40.21ID:u4QX+fVn0
眠い・・・落ちるぞ
2018/01/09(火) 00:38:27.40ID:zckyAnL00
緑色のK&Rを読破するのに20年かかったわ
2018/01/09(火) 05:02:03.58ID:/Jm0Q1+w0
煽ることしかできないアホ ⇒ ID:u4QX+fVn0, ID:8LuLzpAV0
134デフォルトの名無しさん (アウアウカー Sa4f-dSb4)
垢版 |
2018/01/09(火) 09:57:35.67ID:2pt0JvoIa
人の事はどうでもいい。Cの話を書け。
2018/01/09(火) 09:59:26.50ID:cELqpMaXd
おまえもなー
136デフォルトの名無しさん (ワッチョイ 0bf6-5YeV)
垢版 |
2018/01/09(火) 10:17:45.46ID:BapSTNU/0
constがないK&Rが本のことだと思ったアフォはもう死んじまったのか?
2018/01/09(火) 12:48:57.63ID:TNcFjeMv0
家のは、4-320-02145-2だけど、constは無いな
2018/01/09(火) 13:34:20.42ID:IJNuACex0
プログラミング言語Cの第2版(白本)は初版(緑本)と違ってANSI規格準拠
型修飾子や型指定子の項目にconstは存在する
というかconstとvolatileはANSI標準で新設されたものと明言されてる
一般には同一著者なので第2版まで含めてK&R本と呼ばれているから紛らわしい
2018/01/09(火) 13:44:26.69ID:TNcFjeMv0
緑は初版じゃ無いよ。
初版は白。だから紛らわしいの。
2018/01/09(火) 13:50:33.71ID:IJNuACex0
あ、そうか
第2版の翻訳訂正前の表紙が緑だったっけ?
現在発売中のものの表紙は白だよ
https://www.amazon.co.jp/dp/4320026926
2018/01/09(火) 14:03:02.91ID:TNcFjeMv0
プレンティスホール版で言う所の「ANSI DRAFT」の斜線入り
に相当する版が緑色だったかと。

4.xBSDやOS-9がこの前の版のCなので、未だに残っているんでしょうね
■ このスレッドは過去ログ倉庫に格納されています