[過去ログ]
スレ立てるまでもない質問はここで 165匹目 (1002レス)
スレ立てるまでもない質問はここで 165匹目 http://mevius.5ch.net/test/read.cgi/tech/1687260267/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
285: デフォルトの名無しさん (スププ Sd22-jNFU) [] 2023/11/24(金) 17:07:44.98 ID:emckAcP4d #include <stdio.h> void func(void); // 関数プロトタイプ int main(void) { int a; // このaは0で初期化される printf("a=%d\n", a); func(); return 0; } void func(void) { int b; // このbは不定値になる printf("b=%d\n", b); } http://mevius.5ch.net/test/read.cgi/tech/1687260267/285
286: デフォルトの名無しさん (ワッチョイ 0609-sW/m) [sage] 2023/11/24(金) 17:46:51.01 ID:acItGeQV0 スタックの使われ方でそうなるだけ そのaの0初期化を保証する文書はないと思う http://mevius.5ch.net/test/read.cgi/tech/1687260267/286
287: デフォルトの名無しさん (ワッチョイ 298e-cVwZ) [] 2023/11/24(金) 18:31:21.01 ID:A049oz9t0 というか初期化は癖にしとけ http://mevius.5ch.net/test/read.cgi/tech/1687260267/287
288: デフォルトの名無しさん (ワッチョイ 0279-KWGQ) [sage] 2023/11/24(金) 21:57:59.22 ID:pe/5i+Cu0 スタートアップルーチン次第で使う領域の0埋めはできるよ Flashの少ないマイコンでコード削減のために使われたりする http://mevius.5ch.net/test/read.cgi/tech/1687260267/288
289: デフォルトの名無しさん (ワッチョイ 07a2-erZV) [sage] 2023/11/25(土) 14:54:45.61 ID:3au87Jfr0 でっていう http://mevius.5ch.net/test/read.cgi/tech/1687260267/289
290: デフォルトの名無しさん (ワッチョイ 5fa5-1+JT) [] 2023/11/27(月) 12:39:19.62 ID:kSLkA03P0 ユーザーモードでもデバドラかけるけどカーネルモードで実装しなきゃいけない理由ってなんなの?性能だけ? 他のユーザーモードプログラムからプロセスの中身を隠したいとか? あと、ユーザーモードだとタスクマネージャーとかでユーザーが終了させちゃう恐れもあるか 他になんかある? http://mevius.5ch.net/test/read.cgi/tech/1687260267/290
291: デフォルトの名無しさん (ワッチョイ 5f79-/KuA) [sage] 2023/11/27(月) 19:51:30.06 ID:/cbu4sL+0 権限の違いだけだよ ユーザーモードのドライバは署名不要で良いと思うんだけどねえ http://mevius.5ch.net/test/read.cgi/tech/1687260267/291
292: デフォルトの名無しさん (ワッチョイ c777-2qxF) [sage] 2023/11/29(水) 22:11:26.30 ID:9Fs/PVQH0 画像のコマンドプロンプトなんですが echoで 「変数A」は表示されるのですが 「変数B」が表示されないのはなぜでしょうか? https://i.imgur.com/zY8QqWQ.jpg http://mevius.5ch.net/test/read.cgi/tech/1687260267/292
293: デフォルトの名無しさん (ワッチョイ ffde-Ura4) [sage] 2023/11/29(水) 23:17:18.73 ID:11rLHIi40 >>292 遅延環境変数でググると原因と対策が出てくる http://mevius.5ch.net/test/read.cgi/tech/1687260267/293
294: デフォルトの名無しさん (ワッチョイ 8701-OYus) [sage] 2023/11/29(水) 23:43:47.87 ID:5e0Dum8b0 powershellでやれ http://mevius.5ch.net/test/read.cgi/tech/1687260267/294
295: デフォルトの名無しさん (ワッチョイ c777-2qxF) [sage] 2023/11/29(水) 23:57:34.72 ID:9Fs/PVQH0 >>293 やっと解決できました ありがとうございました https://i.imgur.com/1dJlbVi.jpg http://mevius.5ch.net/test/read.cgi/tech/1687260267/295
296: デフォルトの名無しさん (スフッ Sd7f-1fOb) [] 2023/12/01(金) 13:56:51.10 ID:x4GTgSrOd C言語において-3が、unsigned int で4294967293になる理屈を教えてください http://mevius.5ch.net/test/read.cgi/tech/1687260267/296
297: デフォルトの名無しさん (ワッチョイ 7fd6-WSLN) [sage] 2023/12/01(金) 14:58:01.47 ID:2riclQL00 https://en.cppreference.com/w/c/language/conversion otherwise, if the target type is unsigned, the value 2^b , where b is the number of value bits in the target type, is repeatedly subtracted or added to the source value until the result fits in the target type. In other words, unsigned integers implement modulo arithmetic. http://mevius.5ch.net/test/read.cgi/tech/1687260267/297
298: デフォルトの名無しさん (スププ Sd7f-1fOb) [] 2023/12/01(金) 15:09:48.96 ID:FXqwQW8Dd >>297 モジュロ演算の意味が分かりません http://mevius.5ch.net/test/read.cgi/tech/1687260267/298
299: デフォルトの名無しさん (スッップ Sd7f-O0Dn) [sage] 2023/12/01(金) 15:19:46.39 ID:1ihFKBOzd >>296 CPUの整数表現として負数を2の補数で表現するから 32ビットはめんどいので末尾8ビットだけ書くとして3は00000011 3の1の補数はビット反転して11111100(4294967292) 3の2の補数は1の補数に1を足して11111101(4294967293) 2の補数を使う理由はググれ http://mevius.5ch.net/test/read.cgi/tech/1687260267/299
300: デフォルトの名無しさん (スププ Sd7f-1fOb) [] 2023/12/01(金) 15:25:11.16 ID:FXqwQW8Dd >>299 やはりそうでしたか。納得しました。 http://mevius.5ch.net/test/read.cgi/tech/1687260267/300
301: デフォルトの名無しさん (スフッ Sdbf-WaQs) [] 2023/12/09(土) 16:25:29.47 ID:ZNOr2kH7d C言語でオーバーフローするのは、signed だけですか?それとも、unsigned もですか? AIに聞いても、意見が分かれていて、どっちかわかりません。 http://mevius.5ch.net/test/read.cgi/tech/1687260267/301
302: デフォルトの名無しさん (スッップ Sdbf-WfBz) [sage] 2023/12/09(土) 16:44:10.67 ID:ETXxeT5Ld 符号なし整数はmod 2^n(nはビット数)で計算します。 これをオーバーフローと表現したりしなかったりする気がします。 http://mevius.5ch.net/test/read.cgi/tech/1687260267/302
303: デフォルトの名無しさん (スフッ Sdbf-WaQs) [] 2023/12/09(土) 16:54:11.29 ID:ZNOr2kH7d >>302 ありがとうございます。規格では、unsigned はオーバーフローしないときめられているようですが、コンパイラの警告が, unsignedの場合でないですね。 http://mevius.5ch.net/test/read.cgi/tech/1687260267/303
304: デフォルトの名無しさん (スッップ Sdbf-WfBz) [sage] 2023/12/09(土) 17:01:10.08 ID:ETXxeT5Ld 規格では符号なし整数はオーバーフローしないと書かれていて、正確な文言としてはこれが正しいようです。 http://mevius.5ch.net/test/read.cgi/tech/1687260267/304
305: デフォルトの名無しさん (スップ Sd3f-Rtb0) [sage] 2023/12/09(土) 17:31:31.47 ID:qyzy7PA2d キャリービットが立つ=オーバーフロー http://mevius.5ch.net/test/read.cgi/tech/1687260267/305
306: デフォルトの名無しさん (ワッチョイ 97f2-RTrI) [sage] 2023/12/09(土) 18:36:07.10 ID:p0kpDF0H0 wrapping overflowのことをCの規格では「規定された動作でUBじゃないからオーバーフローとは呼ばないキリッ! wraparoundと呼べ」と言ってるだけ 一般に言うところの算術オーバーフローは発生するが規格に定められた動作なので警告は出ない http://mevius.5ch.net/test/read.cgi/tech/1687260267/306
307: デフォルトの名無しさん (ワッチョイ d7da-noSv) [sage] 2023/12/09(土) 19:47:16.49 ID:dajCtWdt0 >>303 オーバーフローって演算結果の話なのでコンパイラでは警告でないんじゃね http://mevius.5ch.net/test/read.cgi/tech/1687260267/307
308: デフォルトの名無しさん (ワッチョイ 97f2-RTrI) [sage] 2023/12/09(土) 21:12:45.96 ID:p0kpDF0H0 実行時にしかチェックできないものとコンパイル時にチェックできるものとある http://mevius.5ch.net/test/read.cgi/tech/1687260267/308
309: デフォルトの名無しさん (オイコラミネオ MM2b-FJ+M) [sage] 2023/12/10(日) 10:57:51.63 ID:o2TNvwaPM SQLITEなどのDBMSで、2つ以上のカラムに まとめてindex (B-Tree)を用意するところの 「Multicolumn indexes(Composite indexes)」 を用いる場合、select の where 節で 2つのカラムa, b に対して、 where a=値1 and b=値2 とした場合、高速化されるそうです。 しかし、b については条件を指定せずに where a=値1 とだけ書いた場合や、 a については条件を指定せずに where b=値2 とだけ書いた場合の速度も高速化されますか? http://mevius.5ch.net/test/read.cgi/tech/1687260267/309
310: デフォルトの名無しさん (ワッチョイ 7716-pmcO) [sage] 2023/12/10(日) 11:57:41.46 ID:PVGCDu/Y0 はい、2つ以上のカラムにまとめてindexを作成すると、それらのカラムを組み合わせて検索条件を指定する場合だけでなく、個々のカラムに対する検索条件も高速化されます。具体的には、次のような場合にも高速化が期待されます。 1. `where a=値1` の場合: もし `(a, b)` の複合インデックスがあるなら、この条件も高速に検索できます。 2. `where b=値2` の場合: 同様に、`(a, b)` の複合インデックスがあるなら、この条件も高速に検索できます。 これは複合インデックスがB-Treeなどの構造を持ち、検索がその構造を活かして行われるためです。複合インデックスが使えると、各カラムに対する条件検索も高速に行えます。 http://mevius.5ch.net/test/read.cgi/tech/1687260267/310
311: デフォルトの名無しさん (ワッチョイ 7716-pmcO) [sage] 2023/12/10(日) 11:58:51.11 ID:PVGCDu/Y0 なぜbだけの条件でも高速されるのか説明します。 複合インデックスが `(a, b)` の形をしている場合、このインデックスはB-Treeなどのデータ構造を持ち、最初のカラム `a` によってソートされています。このようなインデックスがあると、`where b=値2` という条件も高速化されます。 原因はB-Treeの特性にあります。B-Treeは最初のカラムに基づいてツリーを構築し、各ノードはそのカラムの値でソートされています。したがって、`where b=値2` のクエリでも、インデックスを利用して B-Tree の探索を効率的に行えるのです。 ただし、この場合でも、`a` に関する条件が `where a=値1` と組み合わさると、最初のカラムが条件になっているため、より効果的にインデックスが使用されることが期待されます。 http://mevius.5ch.net/test/read.cgi/tech/1687260267/311
312: デフォルトの名無しさん (オイコラミネオ MM2b-FJ+M) [sage] 2023/12/10(日) 12:13:10.46 ID:o2TNvwaPM >>1 `where b=値2` の条件だけ書いた場合になぜ高速化されるか について、もう少し詳しくお願いできませんか。 2文字のひらがなの辞書で考えて、 1文字目をa, 2文字目をb として、 ああ あい あう いあ いい いう のようにならびますが、b=いを検索したい 場合、1文字目が あい と、いい の2か所 に分かれて格納されてしまい、B-Treeだと 全く別の場所になってしまいそうですが。 http://mevius.5ch.net/test/read.cgi/tech/1687260267/312
313: デフォルトの名無しさん (オイコラミネオ MM2b-FJ+M) [sage] 2023/12/10(日) 12:18:53.28 ID:o2TNvwaPM >>312 まず、複合カラムでない場合に限定すれば、 N文字のキーが入っている B-Treeの場合、 深さは、大体 O(log(N))になります。 検索する際、どのあたりにキーがあるかは、 一意的に深い方向に探索をすれば済むので、 大体、O(log(N)) 回程度に「進めれば」検索が 終了できます。 しかし、複合カラムの場合、条件にaを指定せずに bだけを指定した場合、 キーは、様々な場所に分散されて格納されます ので、この例のひらがな50音の辞書の場合なら 50か所に分かれてしまうため、 log(N) * 50 回程度の時間がかかってしまうのでは ないでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1687260267/313
314: デフォルトの名無しさん (ワッチョイ ff84-pmcO) [sage] 2023/12/10(日) 14:06:39.26 ID:Ne0vvx410 >>312 申し訳ありません、誤解が生じました。確かに、私の前回の説明は一般的な場合に当てはまりますが、特に文字列の場合、`where b=値2` のクエリが効率的になるかどうかはデータの具体的な並びに依存します。 文字列の場合、B-Treeの挙動が通常の数値とは異なります。例えば、`ああ`、`あい`、`あう`などが順序通りに格納されることで、`where b='い'` のクエリは特に高速になります。これはB-Treeが文字列においても順序を保ちながらデータを格納するためです。 ただし、文字列の場合でも、全くの一般性があるわけではありません。文字列のソートは、通常の辞書順ではなく、各文字のバイトレベルの比較に基づいていることも考慮する必要があります。 そのため、データの実際の配置や使用しているデータベースシステムによっては、特定のクエリの性能が異なることがあります。文字列データにおいても最適なインデックス戦略は、具体的なデータとクエリによって変わることがあるので、実際のデータや使用状況を元に検討することが重要です。 http://mevius.5ch.net/test/read.cgi/tech/1687260267/314
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 688 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s