[過去ログ] 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 必死チェッカー(本家) レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
502: ◆QZaw55cn4c [sage] 2017/02/24(金) 22:16:12.34 ID:4ewDjGBZ(1) AAS
またその話題ですか‥
543
(2): ◆QZaw55cn4c [sage] 2017/03/31(金) 19:35:02.95 ID:BClOXWeK(1) AAS
>>540
540(1): 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/03/31(金) 17:24:06.64 ID:tvggMnLQ(1/6) AAS
typedef struct MY_STRUCT
{
int ch;
} MY_STRUCT;

MY_STRUCT a,b;
a.ch = 0;
b = a; //代入できる
それ,K&R1 から堕落したよね
550
(2): ◆QZaw55cn4c [sage] 2017/04/01(土) 07:47:47.79 ID:1ZzXEpHO(1/2) AAS
>>546
546(1): 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/03/31(金) 19:46:22.60 ID:tvggMnLQ(5/6) AAS
>>543
堕落ではない。進歩だ。
サイズが無限にのびるかもしれないものをコピーするなんてだめだよ
昔はね,構造体はポインタを介してしかつかえなかったんだよ
552
(1): ◆QZaw55cn4c [sage] 2017/04/01(土) 13:26:49.84 ID:1ZzXEpHO(2/2) AAS
>>551
551(1): デフォルトの名無しさん [sage] 2017/04/01(土) 08:31:33.23 ID:AOt54aKT(1) AAS
そうそう
スタックに自動変数とかも言語道断
全部staticじゃなきゃね
スタックに自動変数はあたりまえだよ‥static おじさん,じゃないつもりなんだが‥
構造体はポインタで扱うべきもので,実体をコピーするのはなるたけ避けたいね
C++ では void f(const C &arg) って,可能ならば const と参照の縛りをできるだけいれるよね,余計なコンストラクタを走らせないために

K&R1 は教育的な配慮に優れた実装だと思うんだ‥
554: ◆QZaw55cn4c [sage] 2017/04/02(日) 17:06:04.34 ID:XkKG9LQx(1/2) AAS
>>553
553(2): デフォルトの名無しさん [sage] 2017/04/02(日) 14:13:23.32 ID:SQNmFUeK(1) AAS
SOCKADDRが一言
手元のソースをみると
clientSocket = accept(serverSocket, (LPSOCKADDR)&clientSockAddr, &addrLen);
とか
if (connect(destSocket, (LPSOCKADDR)&destSockAddr, sizeof(destSockAddr)) == SOCKET_ERROR) {
とか,構造体のポインタを渡しているね
由緒正しき Berkeley socket では,構造体をコピーするなんて教育的ではない書き方は許していないよ
567: ◆QZaw55cn4c [sage] 2017/04/03(月) 06:55:53.48 ID:VwtRd/3a(1/3) AAS
>>559
559(1): デフォルトの名無しさん [sage] 2017/04/02(日) 22:22:37.63 ID:JMz4l+Qd(1) AAS
> &destSockAddr,
> sizeof(destSockAddr)

由緒正しきBerkeley Socketも昔はこういう書き方したな
コイツは進歩が20年前で止まってるのか
今この書き方する奴は死刑でいい
C/C++ で生書きするなら今もおなじだよ
570
(1): ◆QZaw55cn4c [sage] 2017/04/03(月) 19:32:41.84 ID:VwtRd/3a(2/3) AAS
>>557
557(1): デフォルトの名無しさん [sage] 2017/04/02(日) 19:26:19.28 ID:QFdfGGyb(2/2) AAS
どっちも時代遅れの老人でしょ
K&Rなんて昔存在したという噂でしか知らない
万葉集とか古事記みたいなもの?
K&R2 は C89 準拠だよ‥C89 が時代遅れだというけれども,いろんなことは C89 のときからやってきていて,C99 で追認された,というだけだよ
572
(1): ◆QZaw55cn4c [sage] 2017/04/03(月) 21:53:46.44 ID:VwtRd/3a(3/3) AAS
>>571
571(2): デフォルトの名無しさん [sage] 2017/04/03(月) 20:29:22.04 ID:5hra1L5C(1) AAS
>>570
あいわかった
お前は今後「K&R1おじさん」(略して「K&Rおじさん」)な
どうせ定数defineや関数マクロまみれなんでそ
略しないほうがいいよ‥
K&R2 おじさん=C89 はまっとうなCer, K&R1 おじさんは時代遅れ,この二つは全然違うよ
577: ◆QZaw55cn4c [sage] 2017/04/04(火) 19:47:09.26 ID:xNF4clmU(1) AAS
>>575
575(1): デフォルトの名無しさん [sage] 2017/04/04(火) 01:00:11.73 ID:jC2xfRDP(1) AAS
関数プロトタイプを除けば、K&R1で十分かもしれないな
voidを返す関数? int でいいんだよ
確かに関数プロトタイプは有用だね,これがないと結構ミスるかもしれないね
void を返す関数?int でいいんだよ
588: ◆QZaw55cn4c [sage] 2017/04/05(水) 19:44:22.68 ID:bDXscs5n(1/5) AAS
>>585
585(2): デフォルトの名無しさん [sage] 2017/04/05(水) 09:06:55.68 ID:ncDYJBnp(1/2) AAS
それ言うならC自体が。
いまさらC++と互換性のないCを選ぶ理由がない。
たしかに,C99 の数々の改悪は C++ との互換性を考慮していない悪手の連発,ほとほと困ってしまう

>>584
584(1): デフォルトの名無しさん [sage] 2017/04/05(水) 08:19:06.54 ID:qVk1sCwA(1) AAS
K&Rだと〜
c89だと〜
過去の異物がまだ現役だと信じて話してけるのがうざい
C++ とほどほどの交換性のある C89 が最良だよ
589: ◆QZaw55cn4c [sage] 2017/04/05(水) 19:46:32.21 ID:bDXscs5n(2/5) AAS
>>580
580(2): デフォルトの名無しさん [sage] 2017/04/05(水) 00:33:27.19 ID:DVg/5L4N(1/2) AAS
>>550
何が「昔はね」だよw
Qちゃんその当事Cなんて触ってなかったろ?
アンタ最近(たかだか数年?)プログラミングで遊び出しただけの人でしょ
「K&R1 は構造体は基本的にポインタでしか扱えない」制限なんて,使ってもいなかったらわからないだろう?
591: ◆QZaw55cn4c [sage] 2017/04/05(水) 20:07:28.87 ID:bDXscs5n(3/5) AAS
>>579
579(2): デフォルトの名無しさん [sage] 2017/04/04(火) 23:08:17.42 ID:YUY8Mb54(1) AAS
老人は意味とか概念を理解しようとしないから嫌
「bool? intでいいだろ」
「forループ?本質はgotoと同じ」
「enumなんてintでいいだろ」
ホントもう存在が害悪
>「forループ?本質はgotoと同じ」
そんなことはいわないとおもうよ,K&R1 の時代から for はあるしね
きがつくと for(;;) { } と break だけで書いてたりするのはあるかもね,while 使いにくいとか,do while なんかマクロの中でしかつかわない,とかさ

enum?
#define でいいとおもうよ‥
592: ◆QZaw55cn4c [sage] 2017/04/05(水) 20:08:45.69 ID:bDXscs5n(4/5) AAS
>>590
590(1): 580 [sage] 2017/04/05(水) 20:02:06.85 ID:DVg/5L4N(2/2) AAS
え?Qちゃんてサンデープログラマじゃないの?
職業プログラマでもないし
プログラミング暦せいぜい10年未満だと思ってた
サンデーだよ
でも長いサンデーなんだ‥
594: ◆QZaw55cn4c [sage] 2017/04/05(水) 22:05:58.72 ID:bDXscs5n(5/5) AAS
たしかにそのとおりだが,K&R2 = C89 こそ必要十分,ということはわかるよ
600: ◆QZaw55cn4c [sage] 2017/04/06(木) 20:02:44.92 ID:Uar4T1Gl(1/2) AAS
>>595
595(1): デフォルトの名無しさん [sage] 2017/04/05(水) 22:10:26.67 ID:mGFW5fgT(1/2) AAS
そういうこと言ってるとそのうち技術についていけなくなるよ
別についていけなくてもいいよ,その殆どは自分には要らないものだから
それはそうと,これは!とおもう新しい技術って最近はどんなものがあるの?
602: ◆QZaw55cn4c [sage] 2017/04/06(木) 20:21:15.74 ID:Uar4T1Gl(2/2) AAS
まずC#をやらないとね‥でも Java に走ってしまった‥Java に同じようなのはないの?
626
(1): ◆QZaw55cn4c [sage] 2017/04/16(日) 17:51:30.33 ID:3PeEvH/A(1) AAS
for(int i = ...; ; ) が書けるようになったのは素直にありがたいな,と感じている
629: ◆QZaw55cn4c [sage] 2017/04/25(火) 04:20:41.84 ID:Vqnsayjn(1) AAS
>>627
627(1): デフォルトの名無しさん [sage] 2017/04/23(日) 23:52:45.18 ID:IUq/7GPJ(1) AAS
>>626
脳の進化が20年前で止まったチンパンはc89でも使ってろ
C99 or later で便利になったことなんて,そんなにないんだよね‥
716
(1): ◆QZaw55cn4c [sage] 2017/06/17(土) 12:02:12.82 ID:ir1eTLN6(1/2) AAS
>>712
712(2): デフォルトの名無しさん [sage] 2017/06/17(土) 07:59:16.34 ID:bupTq8cx(1/2) AAS
クラスの演算子オバーロードの
書き方全種類教えてください。
operator (*)やoperator ""や
operator ->()辺りが特に解説が少なくて
理解するのに困ってます。

よろしくお願いします。
ユーザー定義リテラルについては書かれていないが、それでも演算子オーバーロードについては
外部リンク:stlalv.la.coocan.jp
が詳しいのではないか?はちみつさんがこれに触れないのは不思議‥
725: ◆QZaw55cn4c [sage] 2017/06/18(日) 09:48:40.36 ID:BCfBDJC6(1) AAS
auto に席をゆずったらしい‥
730: ◆QZaw55cn4c [sage] 2017/06/19(月) 19:14:53.97 ID:zNrORK8z(1) AAS
>>727
727(1): デフォルトの名無しさん [sage] 2017/06/19(月) 13:45:34.22 ID:LlSBVcNV(1) AAS
後藤
setjmp/longjmp のインパクト!を考えると、いまいちだと思いますぅ
881
(2): ◆QZaw55cn4c [sage] 2017/07/09(日) 16:13:17.36 ID:VF1qtZ3L(1) AAS
>>880
880(5): デフォルトの名無しさん [] 2017/07/09(日) 16:06:32.28 ID:EeQkMvgZ(1/4) AAS
ポインタそのものにオブジェクトってできるんでしょうか?
例えば、配列arrayのアドレスをポインタpで、ポインタpのアドレスをポインタpのポインタppで調べたんですが、
int array[3];
int *p = array;
int **pp = &p;
for(i = 0; i < 3; i++)
{
printf("&array[%d] : %d : %d\n", i, &array[i]);
}
&array[0] : 2293472
&array[1] : 2293476
&array[2] : 2293480
&p[0] : 2293472
&p[1] : 2293476
&p[2] : 2293480
&pp[0] : 2293468
&pp[1] : 2293472
&pp[2] : 2293476
ppが参照しているpのオブジェクトの位置が、arrayのオブジェクトのアドレスと全く同じ位置にあります。
1つのアドレスが2つのオブジェクトをもてるのか、ポインタ自体にオブジェクトは生成されないのか
他の要素でそうなってるのかわかりません。どなたか回答宜しくお願いいたします。
その出力を一挙に得られるプログラムを示せ,アドレスはプログラムの実行ごとに変わる可能性がある
907
(2): ◆QZaw55cn4c [sage] 2017/07/12(水) 07:26:19.94 ID:9q9UgJkW(1) AAS
>>880
ん、最初にもどってメッセージを書くとすれば、こうなるかな

>ポインタそのものにオブジェクトってできるんでしょうか?
私が意味を取り違えているかもしれないが、「できない」
ポインタを取得したからといって、オブジェクトが生えてくることはない
あくまで、先にオブジェクトを確保した上で、それに対してポインタを設定する手順をとる

>例えば、配列arrayのアドレスをポインタpで、ポインタpのアドレスをポインタpのポインタppで調べたんですが、
array を確保しているので、p は array 確保分(p 〜 p + 3)だけプログラムとして意味がある。
pp は p 一個分だけ意味がある。すなわち *pp = p、でも pp[1]= *(pp + 1) は確保していない領域を指すのでこの表現は使ってはいけない

&pp[1] と書くとなにがしかのアドレスを生成するが、それは使えない
アドレスを生成できるからといって、その領域が意味のあるものとは限らない

>>881 では意味のないことを求めてしまいごめんなさい
929
(1): ◆QZaw55cn4c [sage] 2017/07/13(木) 06:27:44.49 ID:NDMOLt7F(1) AAS
>>927
927(1): デフォルトの名無しさん [sage] 2017/07/13(木) 00:31:49.82 ID:/oMuxl/G(1/2) AAS
>>907
>pp[1]= *(pp + 1) は確保していない領域を指すのでこの表現は使ってはいけない
Cの規格をよく読み直したらそうでもなかった

>>880
int **pp = &p;
でpp[1] は書いちゃだめだろう?
931: ◆QZaw55cn4c [sage] 2017/07/13(木) 08:39:26.58 ID:045lcfaT(1) AAS
>>930
930(1): デフォルトの名無しさん [sage] 2017/07/13(木) 07:12:43.09 ID:/oMuxl/G(2/2) AAS
>929
その書いちゃダメを規定する6.5.6p8には「that is evaluated」という条件がある
evaluateはメモリアクセスの有無と関係無く基本的に全て行われるはずだが
6.5.3.2p3の例外既定により該当しないばかりか「&*」が省かれるとある
シンタックスではなくセマンティクスというわけですか‥ありがとう
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.041s