!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
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/
※前スレ
C言語なら俺に聞け 157
https://mevius.5ch.net/test/read.cgi/tech/1624846971/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 158
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ブーイモ MMcf-4SjH)
2021/12/25(土) 12:11:46.61ID:xxeaCAplM278デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/25(金) 16:58:20.86ID:2Pynziee0 >>277
おまえさんもダイクストラみたいに学会誌に投稿したら?
おまえさんもダイクストラみたいに学会誌に投稿したら?
279デフォルトの名無しさん (アウアウウー Sa2f-g6h8)
2022/03/01(火) 11:42:38.47ID:iGO9Qf02a break;とかcontinue;はいいの?
280デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/01(火) 12:15:17.30ID:qblu1Z+O0 switch以外のbreakは制御式にない条件での脱出
continueは違う
continueは違う
281デフォルトの名無しさん (テテンテンテン MM86-lzB5)
2022/03/01(火) 12:24:02.66ID:QP0iZO8FM どこでもexit
282デフォルトの名無しさん (ワッチョイ 03b1-65e0)
2022/03/03(木) 13:53:35.02ID:2Y1y5HDI0 グローバル変数禁止プロジェクトがあって、固定値が全てリテラルでばらまかれていたので、仕様変更でチーム員は苦労してた。
自分の担当箇所は謎関数を一つ作り、そこから値を得ていた。
自分の担当箇所は謎関数を一つ作り、そこから値を得ていた。
283デフォルトの名無しさん (ブーイモ MMea-S9sh)
2022/03/03(木) 14:05:48.79ID:o7MH0vY5M グローバル変数禁止なのになんで定数まで禁止なんだ
284デフォルトの名無しさん (ワッチョイ ca01-+tM1)
2022/03/03(木) 14:16:38.79ID:bgg8zGG60285デフォルトの名無しさん (スッップ Sdea-6y7D)
2022/03/03(木) 14:18:42.95ID:iO+E/Lewd マクロは使わんのか?
ただの素人のスパゲッティだな
ただの素人のスパゲッティだな
286デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 15:16:49.50ID:dDnSjvDO0 センス悪いやつがいるせいで
必要なものまで制限されるんだよな
ロクに精査もせずに横暴な制限を作るやつらも
センス悪いやつの一員
必要なものまで制限されるんだよな
ロクに精査もせずに横暴な制限を作るやつらも
センス悪いやつの一員
287デフォルトの名無しさん (ブーイモ MM86-S9sh)
2022/03/03(木) 15:48:11.59ID:NNobhPIrM 昔グローバル変数はなるべく使わないようにねってお願いしたら、グローバル変数が関数内のstatic変数になって返ってきて状況悪化させしまったことを思い出した…
依頼は正確でないとな
依頼は正確でないとな
288デフォルトの名無しさん (ワッチョイ 06e9-g6h8)
2022/03/03(木) 15:52:02.14ID:nN/xu0Sn0 >>287
望んだ改善ではないにしてもグローバル変数よりは関数内static変数のほうがマシで、悪化はしてないのでは?
望んだ改善ではないにしてもグローバル変数よりは関数内static変数のほうがマシで、悪化はしてないのでは?
289デフォルトの名無しさん (ワッチョイ 073e-8W3/)
2022/03/03(木) 15:55:02.85ID:7Ur+27OW0 必要なものが制限されるのは腹立たしいだろうけど、
現実にセンスないやつが今、現場にいる状況で比較的マシにしようと思ったら制限も已むなし。
現実にセンスないやつが今、現場にいる状況で比較的マシにしようと思ったら制限も已むなし。
290デフォルトの名無しさん (テテンテンテン MM86-+tM1)
2022/03/03(木) 15:55:56.96ID:9ZWmTo8BM 君は関数内static変数の破壊力を知らない
291デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 16:02:36.91ID:dDnSjvDO0 int *just_function(void)
{
static int not_global_variable;
return ¬_global_variable;
}
struct common_variables
{
int fool;
int jerk;
int idiot;
};
struct common_variables *a_function(void)
{
struct common_variables cv;
return &cv;
}
{
static int not_global_variable;
return ¬_global_variable;
}
struct common_variables
{
int fool;
int jerk;
int idiot;
};
struct common_variables *a_function(void)
{
struct common_variables cv;
return &cv;
}
292デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 16:03:41.51ID:dDnSjvDO0 static struct common_variables cv;
だった
笑い処でミスってどうするw
だった
笑い処でミスってどうするw
293はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 073e-8W3/)
2022/03/03(木) 16:09:12.32ID:7Ur+27OW0 やりたいことは分割統治なんだよね。 プログラムを機能単位ごとに分割して部品にしたいの。
部品を束ねた部品があって、それを束ねて大きな部品にして……という綺麗に階層的な依存関係にしたいの。
色んなところからアクセスされるものがあるのが目に付くと綺麗に分割できてねぇなあと感じるという話であって
言語機能としての「グローバル変数」を使わないようにすれば綺麗になるというわけではない。
部品を束ねた部品があって、それを束ねて大きな部品にして……という綺麗に階層的な依存関係にしたいの。
色んなところからアクセスされるものがあるのが目に付くと綺麗に分割できてねぇなあと感じるという話であって
言語機能としての「グローバル変数」を使わないようにすれば綺麗になるというわけではない。
294デフォルトの名無しさん (テテンテンテン MM86-+tM1)
2022/03/03(木) 16:17:38.32ID:9ZWmTo8BM グローバル変数一つ新規に作るのに何枚も書類を書かないといけないプロジェクトがあって、
その時は一つだけ管理テーブルという名称の構造体を作成登録した。
その後は必要に応じて構造体にメンバーを追加した。
追加の場合には許可がいらない。
その時は一つだけ管理テーブルという名称の構造体を作成登録した。
その後は必要に応じて構造体にメンバーを追加した。
追加の場合には許可がいらない。
295デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 16:23:37.12ID:dDnSjvDO0 俺のジョークそのまんまかw
296デフォルトの名無しさん (スップ Sdea-PHKB)
2022/03/03(木) 16:28:52.42ID:rhQumEoNd int型のグローバル変数が2つあればvoid*アドレスを分割して突っ込める
291みたいなstructへのポインタ突っ込んどきゃやりたい放題だよやったね!
291みたいなstructへのポインタ突っ込んどきゃやりたい放題だよやったね!
297デフォルトの名無しさん (ワッチョイ 5f69-ibFl)
2022/03/04(金) 08:30:10.22ID:kn6yruMU0 C++ の singleton クラスと
関数内static から戻ってくるのも 似たようなものになる?のか?
関数内static から戻ってくるのも 似たようなものになる?のか?
298デフォルトの名無しさん (ワッチョイ 0f24-84yK)
2022/03/06(日) 14:20:18.71ID:RiucPZY70 ref class SampleCls
{
internal:
property int A[int]
{
int get(int n)
{
int value = n * 100;
return value;
}
void set(int index,int n)
{
}
}
};
SampleCls objを実体化させた後に
s = s + "n= " + obj.A[i]+ "\n";
を5回繰り返したら0,100,200,300,400になったのですが
0に100をかけると100になるのでしょうか?
{
internal:
property int A[int]
{
int get(int n)
{
int value = n * 100;
return value;
}
void set(int index,int n)
{
}
}
};
SampleCls objを実体化させた後に
s = s + "n= " + obj.A[i]+ "\n";
を5回繰り返したら0,100,200,300,400になったのですが
0に100をかけると100になるのでしょうか?
299デフォルトの名無しさん (ワッチョイ 0f24-84yK)
2022/03/06(日) 14:24:03.50ID:RiucPZY70 A[i]の値がどんなふうに決まっているのか知りたいのですがよくわかりません
どなたか教えていただければ幸いです。
どなたか教えていただければ幸いです。
300デフォルトの名無しさん (ワッチョイ 0f24-84yK)
2022/03/06(日) 14:42:22.06ID:RiucPZY70 すみません、解決しましたSet()とget()の動きをちゃんと理解していなかったことが
原因でした。
原因でした。
301デフォルトの名無しさん (ブーイモ MM7f-asIB)
2022/03/06(日) 16:10:19.16ID:g5zD4gJoM まず、自分が何の言語で書いてるか理解したらもっと早く答えが手に入ると思うよ…
302デフォルトの名無しさん (ワッチョイ 9fad-Djfv)
2022/03/07(月) 04:27:05.03ID:t70FSnsj0 ダイクストラって名前を聞くたびに大工が屋根の上で仕事をしている姿が浮かんでしまう
303デフォルトの名無しさん (ワッチョイ 0f95-UGCc)
2022/03/07(月) 06:18:54.97ID:RhJCMKRm0 キャスバルレム大工ん
304デフォルトの名無しさん (ワッチョイ cb10-JlPT)
2022/03/08(火) 12:29:53.09ID:Ki3D6geg0 アルゴリズム系でかっこいい名前はダイクストラとラグランジュ
305デフォルトの名無しさん (スプッッ Sdbf-dovv)
2022/03/08(火) 14:05:47.68ID:0fUGXJlMd 構造化プログラミングはアルゴリズムじゃない
306デフォルトの名無しさん (ワッチョイ cb10-JlPT)
2022/03/08(火) 20:30:43.45ID:Ki3D6geg0 ダイクストラ法な
307デフォルトの名無しさん (ワッチョイ 0f46-svpa)
2022/03/09(水) 01:38:28.31ID:D4BPG9+J0 大屑虎
308デフォルトの名無しさん (ワッチョイ 6bb3-Ff7g)
2022/03/10(木) 20:38:39.30ID:kXeE1dtK0 malloc,freeを多用すると断片化でいずれOSが落ちるってのは
Windows11やLinuxでも起きる問題ですか?
Windows11やLinuxでも起きる問題ですか?
309デフォルトの名無しさん (ワッチョイ 0f63-23wO)
2022/03/10(木) 20:42:14.86ID:4CPsM6xv0 使い方間違えていればOS問わず不味いだろ
310デフォルトの名無しさん (ワッチョイ 6bb3-Ff7g)
2022/03/10(木) 21:22:58.66ID:kXeE1dtK0 正しく使っていれば問題ないということでOK?
なんか、正しく使っていても断片化が発生するみたいなのを聞いたもので
なんか、正しく使っていても断片化が発生するみたいなのを聞いたもので
311デフォルトの名無しさん (エムゾネ FFbf-+wPv)
2022/03/10(木) 21:47:12.08ID:0nt+oQbsF 昔のCPUならともかく
MMUを使ってるOSなら断片化しないだろ
MMUを使ってるOSなら断片化しないだろ
312デフォルトの名無しさん (ドコグロ MM0f-8Z4y)
2022/03/10(木) 22:40:12.59ID:iIk3GhqfM MMUのページサイズとmalloc/freeの管理サイズは全然違うぞ
313デフォルトの名無しさん (ワッチョイ efe9-6iqn)
2022/03/11(金) 14:14:05.09ID:Yxv/2BSs0 >>308,310
断片化は発生するだろうけど、そのせいでOSが落ちるなんてことは最近のOSではたぶん無い。
断片化によるメモリ確保失敗によってアプリが落ちることはあるかもしれない。
「正しく使っていれば」という条件で質問されても何をもって正しいと言うのか示してもらわないと答えようがない。
断片化は発生するだろうけど、そのせいでOSが落ちるなんてことは最近のOSではたぶん無い。
断片化によるメモリ確保失敗によってアプリが落ちることはあるかもしれない。
「正しく使っていれば」という条件で質問されても何をもって正しいと言うのか示してもらわないと答えようがない。
314デフォルトの名無しさん (ワッチョイ 1bd7-UGCc)
2022/03/11(金) 21:28:24.41ID:FGXUCKCr0 1MiB以上と未満で挙動を分けているmallocはよく見かけるね
315デフォルトの名無しさん (ブーイモ MM8f-URqd)
2022/03/11(金) 21:50:14.89ID:o502mXGNM >>308
実装を知っていれば意図的にフラグメントは起こせる、という程度で気にしなければ普通起きない
実装を知っていれば意図的にフラグメントは起こせる、という程度で気にしなければ普通起きない
316デフォルトの名無しさん (ワッチョイ 82a6-QV3l)
2022/03/12(土) 00:08:34.44ID:NOu0XfGq0317デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/12(土) 01:41:51.18ID:NpUzvYny0 >>308
普通のアプリ動かしているだけなのにOSが落ちるとすると、そのOSは何かおかしい。OSにバグがあるのではないか?
普通のアプリ動かしているだけなのにOSが落ちるとすると、そのOSは何かおかしい。OSにバグがあるのではないか?
318デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/12(土) 13:07:51.07ID:aRaeBtiY0 普通に車を運転してたら事故った
車に欠陥があるはず
車に欠陥があるはず
319デフォルトの名無しさん (ワッチョイ ee46-NFVq)
2022/03/12(土) 15:32:14.60ID:XvQpUkSW0 九州のタクシー暴走事故はプリウスのせいだと思っている。
320デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/12(土) 16:34:06.63ID:aRaeBtiY0 プリウスの制御プログラムを書いた人、ここにいませんか?
321デフォルトの名無しさん (ドコグロ MM95-koMU)
2022/03/12(土) 18:00:40.48ID:WugjRoTQM 仮にいたとしても名乗り出ないだろw
322デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/12(土) 18:10:20.20ID:kaM/Ypx70 >>318
当然、疑うことだね
当然、疑うことだね
323デフォルトの名無しさん (ワッチョイ 6ebb-easS)
2022/03/12(土) 18:29:57.19ID:0pfFD5zX0 ドライバーの単体テストは実施してたんですか?
324デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/12(土) 23:53:51.20ID:NpUzvYny0 >>318
それは今回の話には当てはまらない。普通のアプリを動かしていたらアプリが落ちた、だったら当てはまる。
今回の話を喩えるなら普通の車を運転していたら道路が陥没したみたいになる。OSの方が落ちたんだから。
それは今回の話には当てはまらない。普通のアプリを動かしていたらアプリが落ちた、だったら当てはまる。
今回の話を喩えるなら普通の車を運転していたら道路が陥没したみたいになる。OSの方が落ちたんだから。
325デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/12(土) 23:56:33.44ID:aRaeBtiY0 そうか?
池袋事故では最後まで車の欠陥を主張してたぞ
普通にって表現は、あくまでも本人の主観だからな
池袋事故では最後まで車の欠陥を主張してたぞ
普通にって表現は、あくまでも本人の主観だからな
326デフォルトの名無しさん (ワッチョイ ee46-NFVq)
2022/03/13(日) 00:27:55.58ID:8TmiOcWs0 上級国民は医師に運転を止められていた欠陥アプリなので、譬喩に用いるには特殊すぐる。
327デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/13(日) 00:30:40.49ID:giayljWn0 事故起こした奴って自分が原因だと思ってないだろう
328デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/13(日) 06:05:08.20ID:g8VV1ENe0 常に自分を疑え、なんて根性論めいた主張には興味ないし
弁護士に譲歩的なことを言うなと指示されて本当に思っていることと違うことを陳述するのもこの議論とは関係ない
弁護士に譲歩的なことを言うなと指示されて本当に思っていることと違うことを陳述するのもこの議論とは関係ない
329デフォルトの名無しさん (スッップ Sda2-Rvba)
2022/03/13(日) 06:10:49.96ID:kdm08K3Td330デフォルトの名無しさん (ワッチョイ b901-jCaJ)
2022/03/13(日) 11:39:10.82ID:HQz48e8Z0 >>308
malloc,freeを多用すると
解放し忘れが多くなり
メモリが断片化して
新規メモリが確保できなくなってエラー吐いてんのに
エラーチェックもせずにポインターにアクセス
そしてプログラムが落ちる
さらにOSを巻き込んでPCごと落ちる
でも今時のOSは生半可なことでは巻き込まれない
malloc,freeを多用すると
解放し忘れが多くなり
メモリが断片化して
新規メモリが確保できなくなってエラー吐いてんのに
エラーチェックもせずにポインターにアクセス
そしてプログラムが落ちる
さらにOSを巻き込んでPCごと落ちる
でも今時のOSは生半可なことでは巻き込まれない
331デフォルトの名無しさん (ワッチョイ 69d2-nn6q)
2022/03/13(日) 17:40:39.42ID:5qwn5s+60 解放し忘れ(メモリリーク)と断片化は別概念
16byteを4回確保した後に1回目と3回目で確保したメモリだけ解放すると、
合計32byte空いてるのに飛び地になってるから32byte領域として扱えない
16byteを4回確保した後に1回目と3回目で確保したメモリだけ解放すると、
合計32byte空いてるのに飛び地になってるから32byte領域として扱えない
332デフォルトの名無しさん (アウアウエー Sa8a-0txc)
2022/03/13(日) 22:53:37.11ID:A2eUK16/a malloc/freeを多用すると解放忘れが多くなるものなのか?
333デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/14(月) 01:27:18.72ID:OOlFm33n0 そりゃプログラムがおかしいだけ
334デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/14(月) 10:46:27.63ID:z8DyGqYY0 C言語ではなくスクリプトだが、
無限にSubdirを掘り続ける奴書いて動かしたら、OS落ちたな
XPだったが
無限にSubdirを掘り続ける奴書いて動かしたら、OS落ちたな
XPだったが
335デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/14(月) 11:00:21.69ID:GQP59fXj0 fork爆弾みたいな実験か
336デフォルトの名無しさん (スプッッ Sd02-nn6q)
2022/03/14(月) 16:40:21.91ID:LP3GQSIPd OS名はあえて書かないが
Visual C++のmallocで1GBを256回確保しただけで落ちたな
Visual C++のmallocで1GBを256回確保しただけで落ちたな
337デフォルトの名無しさん (ワッチョイ 82ad-6g0K)
2022/03/14(月) 17:46:29.09ID:OOlFm33n0 Windowsは昔から落ちやすい印象
なんというか、OS自体もなんか少しユルい上にみんなして色んなドライバ作って組み込むもんだから余計に落ち易くなってんじゃないかな。
なんというか、OS自体もなんか少しユルい上にみんなして色んなドライバ作って組み込むもんだから余計に落ち易くなってんじゃないかな。
338デフォルトの名無しさん (ワッチョイ 6910-pPbi)
2022/03/14(月) 17:51:09.33ID:L/zgcwZ50 Win98で512バイトぐらいをいくつmalloc出来るかと試したことがあって、
10万回ちかくでNULL返した・・・いや、1万回だったかな?。
とりあえずOSもアプリも落ちなかった。
10万回ちかくでNULL返した・・・いや、1万回だったかな?。
とりあえずOSもアプリも落ちなかった。
339デフォルトの名無しさん (オイコラミネオ MM95-W3oF)
2022/03/15(火) 21:09:49.60ID:uaV7elHUM340デフォルトの名無しさん (ワッチョイ 69b3-9blg)
2022/03/15(火) 21:12:16.49ID:oV08M4Ak0 あなたの基準では世界中アホだらけやな
341デフォルトの名無しさん (オイコラミネオ MM95-W3oF)
2022/03/15(火) 21:19:55.67ID:uaV7elHUM 一部のバカに対して言ってる
マジで::printfなんて使ってるやつなんて滅多にいない
マジで::printfなんて使ってるやつなんて滅多にいない
342デフォルトの名無しさん (オイコラミネオ MM95-W3oF)
2022/03/15(火) 21:22:08.63ID:uaV7elHUM 誰も使ってない表記法使うアホのせいで改めて調べないといけなくなる
使われてないから敢えて教科書に書かれてないし教科書に書かれてないんだから知らないやつが多数派ってことがわからんバカ
使われてないから敢えて教科書に書かれてないし教科書に書かれてないんだから知らないやつが多数派ってことがわからんバカ
343デフォルトの名無しさん (オッペケ Sr91-6sol)
2022/03/16(水) 00:50:46.44ID:HRRT9pv8r 知らなくて馬鹿にされたのかな?辛かったね、大変だったね。カワイソウニ(´;ω;`)ウッ…
344デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/16(水) 05:23:40.43ID:sZ1wd+Ly0 有効範囲解決演算子はスレ違いだぞ
345デフォルトの名無しさん (オッペケ Sr91-9aVa)
2022/03/16(水) 13:21:40.48ID:IYkrMFX0r Cに namespace の概念ってある?
346デフォルトの名無しさん (スプッッ Sd02-nn6q)
2022/03/16(水) 13:45:31.87ID:EozDCnXud gotoラベル
構造体のtag名
構造体のメンバ名
それ以外
という概念のnamespaceならある
typedef struct A{int A;} A;
int main(){ A: return 0;}
で4種類のAを区別できるというだけで、ns::A とかの話ではないが
構造体のtag名
構造体のメンバ名
それ以外
という概念のnamespaceならある
typedef struct A{int A;} A;
int main(){ A: return 0;}
で4種類のAを区別できるというだけで、ns::A とかの話ではないが
347デフォルトの名無しさん (オッペケ Sr91-9aVa)
2022/03/16(水) 14:57:34.41ID:IYkrMFX0r ああ
それぞれで固有の識別子を記憶する空間があるから ぱっとみの文字が衝突しててもセーフ
という概念か
コンパイラ記述するときにめんどくさそうね
文意からこっちのテーブルを参照すべきとか
それぞれで固有の識別子を記憶する空間があるから ぱっとみの文字が衝突しててもセーフ
という概念か
コンパイラ記述するときにめんどくさそうね
文意からこっちのテーブルを参照すべきとか
348デフォルトの名無しさん (ワッチョイ 7b7b-P46e)
2022/03/19(土) 11:24:46.11ID:fvSihUDg0 初歩的な質問ですが、
b = a++;
という式はbにaの値を代入してからaをプラス1しますが、
演算子の優先度を考えると、++が優先度高く、=は右優先です
優先度の高い++をしてから代入するように感じるのですが
そうならない理由をご教示ください
b = a++;
という式はbにaの値を代入してからaをプラス1しますが、
演算子の優先度を考えると、++が優先度高く、=は右優先です
優先度の高い++をしてから代入するように感じるのですが
そうならない理由をご教示ください
349デフォルトの名無しさん (ワッチョイ 99e4-9HQ1)
2022/03/19(土) 11:57:41.89ID:VgIBj69P0 a++が返す値は、aをインクリメントする前の値だからだよ
350デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/19(土) 12:07:43.36ID:X795CU5ld b=a++;
のインクリメントが実行されるのは式を評価した後
のインクリメントが実行されるのは式を評価した後
351デフォルトの名無しさん (ワッチョイ 7b7b-P46e)
2022/03/19(土) 12:40:35.63ID:fvSihUDg0 返信ありがとうございます
演算子の優先度を調べると++が=より優先度が高いはずです
式の処理は優先度の高い演算子から処理されると理解しています
そうすると、++が先に実行された後で=(代入)が実行されてもおかしくないと
考えたのですが、どこに誤りがあるのでしょうか?
演算子の優先度を調べると++が=より優先度が高いはずです
式の処理は優先度の高い演算子から処理されると理解しています
そうすると、++が先に実行された後で=(代入)が実行されてもおかしくないと
考えたのですが、どこに誤りがあるのでしょうか?
352デフォルトの名無しさん (ワッチョイ 1302-dhUW)
2022/03/19(土) 12:53:26.53ID:UXt2lmR80 そういう時のために
++i
i++
ちゃんと2種類の書き方が用意されてるんだよ
++i
i++
ちゃんと2種類の書き方が用意されてるんだよ
353デフォルトの名無しさん (ワッチョイ 7be9-noGs)
2022/03/19(土) 12:55:08.49ID:d0FibUHe0354デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/19(土) 12:56:54.66ID:X795CU5ld 演算子の結合順位と副作用完了点の概念は別
というか b=a;a=a+1; を1文で書くためにa++ 周りのの仕様を特別扱いして実現してる
というか b=a;a=a+1; を1文で書くためにa++ 周りのの仕様を特別扱いして実現してる
355デフォルトの名無しさん (ワッチョイ 7b7b-P46e)
2022/03/19(土) 13:30:03.55ID:fvSihUDg0 返信ありがとうございます
++、--の場合は、前置、後置で
式の評価順が通常と異なると覚えました
式の評価順を理論から理解していないので
忘れてしまって失敗するかもしれませんが、
そのうち定着すると思っています
++、--の場合は、前置、後置で
式の評価順が通常と異なると覚えました
式の評価順を理論から理解していないので
忘れてしまって失敗するかもしれませんが、
そのうち定着すると思っています
356デフォルトの名無しさん (ワッチョイ 13ad-bSSa)
2022/03/19(土) 15:38:29.74ID:CZI3HevE0 よくわからない場合や使うと分かり辛くなる場合は使わないで冗長な書き方した方が良いかも知れない。
使わなくても最近のコンパイラは最適化掛ければ適当にうまいことやって最終的に作られるコードは同じになる可能性が高いと思う。
使わなくても最近のコンパイラは最適化掛ければ適当にうまいことやって最終的に作られるコードは同じになる可能性が高いと思う。
357デフォルトの名無しさん (アウアウウー Sa5d-oCcm)
2022/03/19(土) 17:00:25.72ID:mw5TX/57a b = a++;
の右辺を評価した結果は aの元の値で、副作用として aのアドレスにあるオブジェクトをインクリメントしているのでは
代入されるのは aの内容でなく、アドレスを持たない値で
の右辺を評価した結果は aの元の値で、副作用として aのアドレスにあるオブジェクトをインクリメントしているのでは
代入されるのは aの内容でなく、アドレスを持たない値で
358デフォルトの名無しさん (アウアウウー Sa5d-oCcm)
2022/03/19(土) 17:03:51.29ID:mw5TX/57a a++ は右辺値で、 ++a は左辺値
359デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/19(土) 17:12:51.80ID:X795CU5ld どっちも右辺値としないとまずい
int main(){
int a=0;
int* p;
p=&(++a); // コンパイルエラー
p=&(a++); // こっちも
}
int main(){
int a=0;
int* p;
p=&(++a); // コンパイルエラー
p=&(a++); // こっちも
}
360デフォルトの名無しさん (アウアウウー Sa5d-oCcm)
2022/03/19(土) 17:42:57.61ID:mw5TX/57a そうだね、失礼しました
361デフォルトの名無しさん (ワッチョイ 11f0-B0ie)
2022/03/19(土) 17:50:05.80ID:nPptgbtB0 : BassClass(
std::format (IdPrefix, index, numBank)),(
std::format (NamePrefix, ++index, numBank))
ちょうどこんな感じのコンストラクタでラッパーするコード書いてたんだけど
インクリメントしてない方までつられて増えちゃうんだよね
C++のコード片でスマソン
std::format (IdPrefix, index, numBank)),(
std::format (NamePrefix, ++index, numBank))
ちょうどこんな感じのコンストラクタでラッパーするコード書いてたんだけど
インクリメントしてない方までつられて増えちゃうんだよね
C++のコード片でスマソン
362デフォルトの名無しさん (スッップ Sd33-kk3k)
2022/03/19(土) 18:11:19.38ID:8Fsv/onud d = ++a + b-- + --c + a++;
この結果は
++a;
--c;
d = a + b + c + a;
b--;
a++;
だよね
実際はこんな書き方しないほうがいいがw
この結果は
++a;
--c;
d = a + b + c + a;
b--;
a++;
だよね
実際はこんな書き方しないほうがいいがw
363デフォルトの名無しさん (ワッチョイ 7be9-noGs)
2022/03/19(土) 18:25:12.86ID:d0FibUHe0364デフォルトの名無しさん (ドコグロ MMbd-zKmY)
2022/03/19(土) 18:39:08.49ID:Uza1/JxDM365デフォルトの名無しさん (ワッチョイ 8bbb-35g2)
2022/03/19(土) 19:05:15.57ID:9SMEw2CG0 以下のような関数がインラインで実行されてるだけで、評価自体は++が先に行われてるんでないの?知らんけど
int inc(int* a) {
int ret = *a;
*a = *a + 1;
return ret;
}
int inc(int* a) {
int ret = *a;
*a = *a + 1;
return ret;
}
366デフォルトの名無しさん (アウアウウー Sa5d-63z5)
2022/03/19(土) 19:10:54.79ID:fJWxsuK3a 引数の評価順なんてCPUでも変わるだろ。
367デフォルトの名無しさん (ワッチョイ 8161-2DeC)
2022/03/19(土) 20:25:22.26ID:hj0ig94x0 未定義動作警察だ!
未定義動作の動作は定義されていないのでコンパイラは何をしてもいい
> d = ++a + b-- + --c + a++;
このコードの場合、
++a;--c;d=...; b--;a++;相当のコードを吐いてもいいし、
tmp=a;a=tmp+1;--c;d=...; b--;a=tmp+1; 相当のコードを吐いてもいい。
大抵は未定義動作がないことを前提に最適化をかけるが。
極端なことを言えば、d=42としてもいい。
この文の見た目の動作は定義されていないから
未定義動作の動作は定義されていないのでコンパイラは何をしてもいい
> d = ++a + b-- + --c + a++;
このコードの場合、
++a;--c;d=...; b--;a++;相当のコードを吐いてもいいし、
tmp=a;a=tmp+1;--c;d=...; b--;a=tmp+1; 相当のコードを吐いてもいい。
大抵は未定義動作がないことを前提に最適化をかけるが。
極端なことを言えば、d=42としてもいい。
この文の見た目の動作は定義されていないから
368デフォルトの名無しさん (ワッチョイ fb43-0XB4)
2022/03/20(日) 00:26:15.18ID:dAApHicf0 fgetsのファイル終了・エラー時の戻り値がNULLなのはなぜですか?
他の入出力関係の関数の戻り値はEOFになっています
いま入出力の勉強をしてるんですが、関数の引数や戻り値が少しずつ違うので覚えるのが難しいです
使っていくうちに覚えていくものでしょうか?
他の入出力関係の関数の戻り値はEOFになっています
いま入出力の勉強をしてるんですが、関数の引数や戻り値が少しずつ違うので覚えるのが難しいです
使っていくうちに覚えていくものでしょうか?
369デフォルトの名無しさん (ワッチョイ 8bbb-35g2)
2022/03/20(日) 00:53:13.92ID:tmhbCmKs0 細かな仕様はよく使うもの以外は毎度調べるよ
まあCの関数は数が少ないから全部覚えてるって人も少なくないかも
まあCの関数は数が少ないから全部覚えてるって人も少なくないかも
370デフォルトの名無しさん (ワッチョイ 8b63-noGs)
2022/03/20(日) 00:57:50.69ID:rKPZjyik0 よく使う関数の戻り値調べると面白いぞ
printfが何を返しているかとか、それは何故なのかとか
戻り値を使っている人を見たことがないけれど
printfが何を返しているかとか、それは何故なのかとか
戻り値を使っている人を見たことがないけれど
371はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d93e-bSSa)
2022/03/20(日) 01:37:41.92ID:u4Grkyrm0 >>361
こういう場合については未定義ではないが未規定の動作が含まれる。
副作用完了点の間で同一のオブジェクトに複数回の書き換えが生じた場合には未定義の動作となるが、
書き換えが一度の場合はその書き換えがどのタイミングで起こるかわからないというだけで、
未定義の挙動にはならない。
こういう場合については未定義ではないが未規定の動作が含まれる。
副作用完了点の間で同一のオブジェクトに複数回の書き換えが生じた場合には未定義の動作となるが、
書き換えが一度の場合はその書き換えがどのタイミングで起こるかわからないというだけで、
未定義の挙動にはならない。
372デフォルトの名無しさん (スッップ Sd33-kk3k)
2022/03/20(日) 08:21:37.14ID:e7HuEm7id373デフォルトの名無しさん (ワッチョイ 7b7b-P46e)
2022/03/20(日) 10:46:46.29ID:+oGVYZOT0 組み込みのソフトしていると
使わない関数が多くて忘れていきます
使わない関数が多くて忘れていきます
374デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/20(日) 11:48:15.83ID:w4XPcyomd <stdio.h>は使えないとして組み込み系って使える標準ライブラリあるの?
375デフォルトの名無しさん (ワッチョイ 1302-dhUW)
2022/03/20(日) 12:55:28.41ID:DiBIkIVz0 windows.h
376デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/20(日) 13:05:34.82ID:w4XPcyomd 使える標準ライブラリを聞いたつもりなんだが
あと<Windows.h>はOS依存のライブラリな
あと<Windows.h>はOS依存のライブラリな
377蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-S5Ea)
2022/03/20(日) 13:25:28.64ID:y5NxTTYed 標準っていっても何の標準かわからん。
ANSI CとかC89とかあるだろ。
ANSI CとかC89とかあるだろ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【社会】40代以上のおじさん・おばさんは叩いてオッケーという風潮はなぜ加速したのか [七波羅探題★]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 農林水産省「春頃にはコメ価格落ち着くのでは」新米の取引価格、過去最高を更新。 [256556981]
