[過去ログ]
C言語なら俺に聞け 163 (1002レス)
C言語なら俺に聞け 163 http://mevius.5ch.net/test/read.cgi/tech/1721137434/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
292: デフォルトの名無しさん (ササクッテロ Spc5-O2Yz) [sage] 2024/10/30(水) 10:28:23.97 ID:BRGgIRAsp Cの変数の型指定なんて気休めだからなぁ http://mevius.5ch.net/test/read.cgi/tech/1721137434/292
293: デフォルトの名無しさん (ワッチョイ 0b02-xPbt) [sage] 2024/11/01(金) 06:24:42.85 ID:+lXxXu7p0 気休めじゃなくて気疲れの間違いだろ 長さやsignednessでわけわからん変換しやがるバグの根源と言ってもいい http://mevius.5ch.net/test/read.cgi/tech/1721137434/293
294: デフォルトの名無しさん (ワッチョイ 8b63-IjZm) [sage] 2024/11/01(金) 11:11:58.05 ID:YgeQjLzz0 訳が理解できるようになるまで、お前は使用禁止 http://mevius.5ch.net/test/read.cgi/tech/1721137434/294
295: デフォルトの名無しさん (ワッチョイ 622d-CyeO) [] 2024/11/03(日) 13:27:09.33 ID:N1lOck0q0 https://togetter.com/li/1471386 こんな事本当にあるのか? http://mevius.5ch.net/test/read.cgi/tech/1721137434/295
296: デフォルトの名無しさん (ワッチョイ f6b7-UxC2) [sage] 2024/11/03(日) 13:36:34.35 ID:e8fWHn4Q0 もともとバグってたのを対処療法で回避しただけじゃねーの? そんな驚愕するほどのこととは思わんな スペースは文字列に加えるってことだろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/296
297: デフォルトの名無しさん (ワッチョイ 5e63-kEEx) [sage] 2024/11/03(日) 13:45:35.99 ID:WzNRcFfL0 ちゃんとソースを公開すればみんなで治してくれるよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/297
298: デフォルトの名無しさん (アウアウエー Sada-GGiU) [] 2024/11/03(日) 16:06:15.80 ID:XxnHrPnRa バイバイおさるさん http://mevius.5ch.net/test/read.cgi/tech/1721137434/298
299: デフォルトの名無しさん (ワッチョイ 3679-NO1F) [sage] 2024/11/03(日) 17:27:36.06 ID:4RaSizfZ0 char []s = "うんこ" s[20] = 0; // どっか判り難いとこにこんなのが紛れてる 回答「(sに)もっとスペースを追加して!」 http://mevius.5ch.net/test/read.cgi/tech/1721137434/299
300: デフォルトの名無しさん (ワッチョイ 5e63-kEEx) [sage] 2024/11/03(日) 17:39:48.03 ID:WzNRcFfL0 どこか知らない国で "うんこ" が40バイトくらいある所があったりして http://mevius.5ch.net/test/read.cgi/tech/1721137434/300
301: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f532-JeGG) [sage] 2024/11/03(日) 19:33:15.95 ID:/vDzNoeA0 業務だとヨソの担当のモジュールに口出しするのがめんどいから対処療法で握りつぶすみたいなことはあるのかもしれん。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/301
302: 警備員[Lv.1][新芽] (ワッチョイ 1259-WgI6) [sage] 2024/11/03(日) 20:22:14.37 ID:5dhdDFeF0 s("※んこ"の値)は読み取り専用になるんじゃないかな 処理系によるかもしれないけど http://mevius.5ch.net/test/read.cgi/tech/1721137434/302
303: デフォルトの名無しさん (ワッチョイ 3679-NO1F) [sage] 2024/11/04(月) 01:39:12.77 ID:rgFUj3k30 >「ここにスペースを入れてみて」「もっと沢山、もっともっと」 この辺りコピペ怪文書にしか思えないんだが 境界チェックしない言語ならありふれたバグだし、元文書はちんぽとかだったんじゃないだろうか http://mevius.5ch.net/test/read.cgi/tech/1721137434/303
304: デフォルトの名無しさん (ササクッテロラ Sp79-P7MY) [sage] 2024/11/04(月) 13:45:59.93 ID:UGhFqLBmp どうせメモリーリークだろうな データ位置を変えると現象が変わるなんて典型的だろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/304
305: 警備員[Lv.5][新] (ワッチョイ 757b-WgI6) [sage] 2024/11/04(月) 13:48:37.25 ID:nJwTTfVk0 >>302 誤りでした http://mevius.5ch.net/test/read.cgi/tech/1721137434/305
306: デフォルトの名無しさん (ワッチョイ 5e63-kEEx) [sage] 2024/11/04(月) 14:02:09.24 ID:SHEOgeyw0 パンパース当てるのが正しい http://mevius.5ch.net/test/read.cgi/tech/1721137434/306
307: デフォルトの名無しさん (ワッチョイ 3679-NO1F) [sage] 2024/11/04(月) 20:44:45.70 ID:rgFUj3k30 おむつってあんま進化してないよな 吸収率だとか漏れだとかそんなのは上がってるだろうが、基本的な機能は変わらない 介護業界でも排泄介助っていう高齢者の汚物処理って割と大変な部類だと思うんだが そろそろおもつ革命を起こさないと業界崩壊するんじゃないの プログラミングでなんとかできませんかね http://mevius.5ch.net/test/read.cgi/tech/1721137434/307
308: デフォルトの名無しさん (ワッチョイ 3679-NO1F) [sage] 2024/11/04(月) 20:51:48.25 ID:rgFUj3k30 高齢者に限らず若い子でもうんこ漏らす時は漏らすし、そういう緊急時にも安心できるぐらいのものがそろそろ欲しいな 紙ベースで吸収率だとかで脳が退化してるおむつメーカーではおむつ革命はとても期待できないだろう http://mevius.5ch.net/test/read.cgi/tech/1721137434/308
309: デフォルトの名無しさん (ワッチョイ 0920-pds3) [sage] 2024/11/04(月) 21:52:48.49 ID:lap6rdZH0 介護対象に飲ませるうんこがあまり臭くなくなる薬みたいな技術は進化してるぞ http://mevius.5ch.net/test/read.cgi/tech/1721137434/309
310: デフォルトの名無しさん (ワッチョイ f532-Q1tn) [sage] 2024/11/04(月) 22:10:34.76 ID:TtMQ1IOc0 薬で臭くなくしたうんこだからといって介護対象に飲ませるのはどうかと思うぞ。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/310
311: デフォルトの名無しさん (ワッチョイ 0920-pds3) [sage] 2024/11/04(月) 22:15:25.35 ID:lap6rdZH0 >>295 こんなんじゃね #include <stdio.h> #include <string.h> #include <limits.h> int main(void) { char s[] = ""; // ←スペースを11個入れる sprintf(s, "%d", INT_MIN); puts(s); } http://mevius.5ch.net/test/read.cgi/tech/1721137434/311
312: デフォルトの名無しさん (ワッチョイ 0920-pds3) [] 2024/11/04(月) 22:17:04.25 ID:lap6rdZH0 >>310 完全に臭くなくなる訳ではないのでおk http://mevius.5ch.net/test/read.cgi/tech/1721137434/312
313: デフォルトの名無しさん (ワッチョイ 01c3-bxGr) [sage] 2024/11/04(月) 22:57:47.13 ID:nqjJRhEX0 ニホンゴ ムズカシイネ http://mevius.5ch.net/test/read.cgi/tech/1721137434/313
314: デフォルトの名無しさん (ワッチョイ 92ad-guIA) [] 2024/11/05(火) 05:14:52.21 ID:srt1vo+S0 逆に考えるんだ。うんこはどうしても出てしまう。だったらそれはそのままにしておけ。 介護する側がそれを気にせず処理出来るのであれば問題は消滅する。だから介護者が それを気にならなくなるような精神に効く薬を作れば良いんだ。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/314
315: デフォルトの名無しさん [sage] 2024/11/05(火) 06:59:24.91 ID:tCS75Iej0 >>295って実行時エラーの話なのかコンパイル時エラーの話なのかもわからなくない? http://mevius.5ch.net/test/read.cgi/tech/1721137434/315
316: デフォルトの名無しさん (ワッチョイ b5b4-8Jbz) [sage] 2024/11/05(火) 15:17:41.47 ID:wPeW8RQX0 NASAはネットなんてなかった1970年代にボイジャー1号打ち上げて 240億km離れててもプログラムを送受信してるのに俺らときたら http://mevius.5ch.net/test/read.cgi/tech/1721137434/316
317: デフォルトの名無しさん (アウアウエー Sada-GGiU) [sage] 2024/11/05(火) 21:46:02.31 ID:JaQWNq5Na どうみても脳筋エラー http://mevius.5ch.net/test/read.cgi/tech/1721137434/317
318: デフォルトの名無しさん (ワッチョイ 8101-Q1tn) [sage] 2024/11/05(火) 21:49:31.93 ID:qHb8dozk0 脳筋がCを使いません http://mevius.5ch.net/test/read.cgi/tech/1721137434/318
319: デフォルトの名無しさん (ワッチョイ 5e63-kEEx) [sage] 2024/11/05(火) 22:03:42.83 ID:MR2KM4Hj0 240億kmの伝書鳩 http://mevius.5ch.net/test/read.cgi/tech/1721137434/319
320: デフォルトの名無しさん (ワッチョイ 3679-NO1F) [sage] 2024/11/06(水) 09:37:06.45 ID:csbv8Qbd0 1970年代にもテレビやラヂオはあったわけでね… http://mevius.5ch.net/test/read.cgi/tech/1721137434/320
321: デフォルトの名無しさん (ワッチョイ 5e63-kEEx) [sage] 2024/11/07(木) 17:53:15.92 ID:RjbHlnZn0 1960年代はラジオ少年が秋葉原詣でしてたな http://mevius.5ch.net/test/read.cgi/tech/1721137434/321
322: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/07(木) 22:04:17.92 ID:E5qLHtEE0 質問失礼 LPTSTR lptStr = TEXT("テスト"); って書くとE0144とC2044ってエラーを吐くんだがプロパティの文字セットって項目を設定なしにすると正常に処理されるのはどういう理屈なの? const wchar_t[]からLPTSTRに変換できませんってメッセージ出るし型が違うのかなと思うが だとしたら何故文字設定いじれば解消するのかもよくわからない http://mevius.5ch.net/test/read.cgi/tech/1721137434/322
323: 警備員[Lv.1][新芽] (ワッチョイ e9eb-WgI6) [sage] 2024/11/07(木) 22:09:23.47 ID:QiubzAbP0 LPCTSTR ではダメですか? 当てずっぽうですが http://mevius.5ch.net/test/read.cgi/tech/1721137434/323
324: 警備員[Lv.1][新芽] (ワッチョイ e9eb-WgI6) [sage] 2024/11/07(木) 22:10:11.25 ID:QiubzAbP0 >>323 そういうことじゃないのか、ごめんなさい http://mevius.5ch.net/test/read.cgi/tech/1721137434/324
325: デフォルトの名無しさん (ワッチョイ f637-UxC2) [sage] 2024/11/08(金) 09:56:22.05 ID:tVfxyvn80 >>322 設定変えても依然エラーだが VS Community 2022 http://mevius.5ch.net/test/read.cgi/tech/1721137434/325
326: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/08(金) 10:31:35.11 ID:+8UCAN2P0 >>324 気持ちだけで十分よ http://mevius.5ch.net/test/read.cgi/tech/1721137434/326
327: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/08(金) 10:32:35.47 ID:+8UCAN2P0 >>325 2022だと設定項目見つからなかったから2012でやった、そしたら上記の結果になるんすよねえ http://mevius.5ch.net/test/read.cgi/tech/1721137434/327
328: デフォルトの名無しさん (ササクッテロラ Sp79-P7MY) [sage] 2024/11/08(金) 10:36:22.46 ID:ce4XJJ6Np 最近のVSはCの当たり前な構文が通用しないから困るよな http://mevius.5ch.net/test/read.cgi/tech/1721137434/328
329: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/08(金) 10:51:18.29 ID:+8UCAN2P0 >>328 Visual Studio側の問題なのこれ? http://mevius.5ch.net/test/read.cgi/tech/1721137434/329
330: デフォルトの名無しさん (ブーイモ MM96-UxC2) [sage] 2024/11/08(金) 11:51:09.67 ID:y6pbbxPDM >>327 2022で設定変えたって書いただろ あほなのか http://mevius.5ch.net/test/read.cgi/tech/1721137434/330
331: デフォルトの名無しさん (アウアウエー Sada-GGiU) [] 2024/11/08(金) 12:18:22.14 ID:F9yTI1pla LPTSTR lptStr = L"テスト"; http://mevius.5ch.net/test/read.cgi/tech/1721137434/331
332: デフォルトの名無しさん (アウアウエー Sada-GGiU) [] 2024/11/08(金) 12:20:09.93 ID:F9yTI1pla あと #define UNICODE #define _UNICODE だったかな http://mevius.5ch.net/test/read.cgi/tech/1721137434/332
333: デフォルトの名無しさん (アウアウエー Sada-GGiU) [] 2024/11/08(金) 12:28:34.80 ID:F9yTI1pla それでもだめなら 文字コードが違うんじゃないですかね http://mevius.5ch.net/test/read.cgi/tech/1721137434/333
334: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/08(金) 12:59:02.56 ID:+8UCAN2P0 >>330 どストレートな罵倒は久しぶりに聞いたよ 高校上がってからは聞かなくなったけどね http://mevius.5ch.net/test/read.cgi/tech/1721137434/334
335: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/08(金) 13:00:18.41 ID:+8UCAN2P0 >>331 ありがとう、だけどダメそうだ 文字コード関連のエラーなんだろうけどどうしたものか http://mevius.5ch.net/test/read.cgi/tech/1721137434/335
336: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f532-Q1tn) [sage] 2024/11/08(金) 13:02:23.75 ID:Me1tPYCI0 char と wchar_t の不整合じゃなくて const の有無の問題じゃないの? C++ で文字列リテラルまわりの扱いで仕様変更があったからそれに関係してるのかも? C++ での文字列リテラルの型は const char[] (ワイド文字リテラルの場合は const wchar_t[]) だが、文字列リテラルから直接変換する場合に限り char* (ワイド文字リテラルの場合は wchar_t*) に暗黙に変換して構わないというルールが C++03 まではあって、このルールは C++11 で削除されたという経緯がある。 つまり C++11 以降は文字列リテラルから暗黙には const を剥がすことが出来ない。 (キャストを書けば出来るけど。) C では文字列リテラルの型は元から char[] で、 const が付いてない。 だから const まわりの制限とは関係ないんだが、これは C の仕様のほうがおかしいし、 C++ と同様の判定をしたほうが理に適っているとマイクロソフトが考えることはあるかもしれない。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/336
337: デフォルトの名無しさん (アウアウエー Sada-GGiU) [] 2024/11/08(金) 13:18:44.37 ID:F9yTI1pla E0144 エンティティの初期化 型”cont wchar_t *"の値を使用して"wchar_t *"のエンティティを初期化することはできません C2044は関係無い http://mevius.5ch.net/test/read.cgi/tech/1721137434/337
338: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/08(金) 14:51:25.22 ID:+8UCAN2P0 >>336 なるほどね、LPTSTRがchar*だから代入できないって話になるのか それがわかったらエラー文にかいてあることが理解出来るね 昔の仕様だとconst charに見えて実際は違かったってこと? それなら今回のコードもエラー吐かないし悩まなくてよかったのに http://mevius.5ch.net/test/read.cgi/tech/1721137434/338
339: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/08(金) 14:52:37.02 ID:+8UCAN2P0 >>337 関係ないの?LPSTRに代入できませんって言ってるように見えるけど http://mevius.5ch.net/test/read.cgi/tech/1721137434/339
340: デフォルトの名無しさん (ササクッテロラ Sp79-P7MY) [sage] 2024/11/08(金) 16:25:31.55 ID:1lsgaMlnp signedとunsignedでも怒り狂うからなぁw いいんだよ、こっちは中身しってんだから余計なエラー吐くなよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/340
341: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f532-Q1tn) [sage] 2024/11/08(金) 17:24:12.05 ID:Me1tPYCI0 >>338 > 昔の仕様だとconst charに見えて実際は違かったってこと? C の規格としては本来的に文字列リテラルの型には const は付かない。 これは今も昔も同じ。 変更はない。 なので何かが変わったとしたらマイクロソフトの独自仕様。 私はそのへんに詳しいわけじゃないけど C++ の規格改定に引きずられた可能性は想像できるなぁというぼんやりした予想なので経緯はわからぬ。 でもまあ結果的に const の問題ってのは妥当なみたいだね。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/341
342: デフォルトの名無しさん (ワッチョイ 3679-NO1F) [sage] 2024/11/09(土) 14:04:43.61 ID:L+GgUCLJ0 LPTSTR lptStr = (LPTSTR)TEXT("テスト"); で警告出たりするのかな? 糞面倒だけどキャストで通るならそれ以上の対応不用 http://mevius.5ch.net/test/read.cgi/tech/1721137434/342
343: デフォルトの名無しさん (ワッチョイ f648-UxC2) [sage] 2024/11/09(土) 14:22:07.15 ID:12zpUv7J0 VS使ってるからたぶんCじゃなくてC++ こういうボンクラの自覚ないボンクラは相手しても疲れるだけ http://mevius.5ch.net/test/read.cgi/tech/1721137434/343
344: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/09(土) 18:12:46.73 ID:IeEwNzSH0 >>341 理解した constは付かないはずなのにリテラルにVisual Studioが勝手に付いてることにしてくるってことね わざわざありがとうスッキリしたよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/344
345: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/09(土) 18:13:16.97 ID:IeEwNzSH0 >>342 いけた たしかに面倒だけど仕方ないね http://mevius.5ch.net/test/read.cgi/tech/1721137434/345
346: デフォルトの名無しさん (ワッチョイ 7161-m4Ma) [] 2024/11/09(土) 18:17:26.89 ID:IeEwNzSH0 >>343 そんなこと言いながら何回もレスくれるなんて http://mevius.5ch.net/test/read.cgi/tech/1721137434/346
347: デフォルトの名無しさん (ワッチョイ 0920-pds3) [sage] 2024/11/09(土) 18:29:31.05 ID:mxjkBfxb0 >>315 どっちもいける 実行時エラー https://wandbox.org/permlink/r9w30EwoyKVxIguC > Segmentation fault コンパイル時エラー https://wandbox.org/permlink/yPJz2UPs8xHYPLAr > prog.c: In function 'main': > prog.c:8:17: error: '%d' directive writing 11 bytes into a region of size 1 [-Werror=format-overflow=] > 8 | sprintf(s, "%d", INT_MIN); > | ^~ > prog.c:8:5: note: 'sprintf' output 12 bytes into a destination of size 1 > 8 | sprintf(s, "%d", INT_MIN); > | ^~~~~~~~~~~~~~~~~~~~~~~~~ > cc1: all warnings being treated as errors http://mevius.5ch.net/test/read.cgi/tech/1721137434/347
348: デフォルトの名無しさん (ワッチョイ cdd5-MfT4) [] 2024/11/10(日) 00:27:12.07 ID:dkv1a77w0 左辺をLPCTSTRにすれば良くない? リテラルの文字列を可変にすること自体が本来は不要だし、右辺を可変にキャストするよりは左辺を不変として (LPCTSTRとして) 受け取れば良いと思う http://mevius.5ch.net/test/read.cgi/tech/1721137434/348
349: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-4Bi2) [sage] 2024/11/10(日) 09:35:26.26 ID:a6nPaG4v0 >>344 オンラインコンパイラで VS17.10 を確かめてみたが文字列リテラルには const は付かないぞ。 お前が間違って C++ を使ってるという >>343 の意見に一票。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/349
350: デフォルトの名無しさん (ワッチョイ e520-2uFP) [sage] 2024/11/10(日) 15:28:44.44 ID:E/UouhcZ0 >>322 ・Microsoft Visual Studio Community 2022 (64 ビット) を使用し「C++コンソールアプリ」で新規プロジェクト作成 ・ソリューションエクスプローラーでソースファイルにあるファイル名を*.cppから*.cへ変更 ・ファイル名を変更したファイルに下記をコピペ #include <windows.h> int main(void) { LPTSTR lptStr = TEXT("テスト"); } ・ビルド(B)→ソリューションのビルド(R) でフツーにビルド通ったわ。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/350
351: デフォルトの名無しさん (アウアウエー Sa13-vkNS) [] 2024/11/11(月) 11:10:09.47 ID:RXw/cl7Za つまりスレタイ嫁ということか http://mevius.5ch.net/test/read.cgi/tech/1721137434/351
352: デフォルトの名無しさん (ワッチョイ b507-4Bi2) [sage] 2024/11/11(月) 11:32:56.82 ID:CKwZRMfb0 >>343 は速攻ぶったたいてるが、学生か初学者はこういう経験しとくもんだ Cは汗に似て泥臭いんだよ 俺もあとで追試しよっと テキトーでやってて知識整理できてないわ http://mevius.5ch.net/test/read.cgi/tech/1721137434/352
353: デフォルトの名無しさん (ワッチョイ 23ab-v1sd) [sage] 2024/11/12(火) 18:11:56.60 ID:bmRwPCyO0 >>322 コンパイラオプションを見れば明らかになるじゃろう。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/353
354: デフォルトの名無しさん (JP 0H93-qgn8) [] 2024/11/13(水) 18:56:16.48 ID:5p447UHqH sssp://img.5ch.net/ico/nida.gif EchoAPIがVS Codeのワークフローにピッタリで、APIテストの能力がグッとアップしったって聞いて http://mevius.5ch.net/test/read.cgi/tech/1721137434/354
355: デフォルトの名無しさん (アウアウエー Sa13-vkNS) [] 2024/11/15(金) 18:07:01.60 ID:yZ5Bkpe2a まるちんこしね http://mevius.5ch.net/test/read.cgi/tech/1721137434/355
356: デフォルトの名無しさん (ワッチョイ 3b2d-hB9O) [sage] 2024/11/22(金) 19:50:13.47 ID:KyG89VCU0 Q. doubleをprintfで表示するには%lfでいいの? A. double 型を printf で表示する場合、%lf ではなく %f を使用するのが一般的です。 理由: printf の可変長引数において、float 型は double 型に自動的に昇格されます。 そのため、%f は double 型の値も受け取ることができます。 %lf は scanf で double 型の値を読み込む際に使用されますが、 printf では %f と同じ意味として扱われます (C99規格以降)。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/356
357: デフォルトの名無しさん (ワッチョイ bf5f-FO3g) [] 2024/11/24(日) 19:40:17.88 ID:g9nxxeRj0 これが同じ値書いてくれないのは普通だったんだっけ. #include <stdio.h> int main() { int s=31; unsigned long i = 1 << 31; unsigned long j = 1 << 31; unsigned long k; while(i) { k = 1 << s; printf("%lu,%lu,%lu¥n",i,j,k); i = (unsigned)i>>1; j >>= 1; s--; } return 0; } http://mevius.5ch.net/test/read.cgi/tech/1721137434/357
358: デフォルトの名無しさん (ワッチョイ ff63-cdGy) [sage] 2024/11/24(日) 19:55:59.76 ID:VUrUqN1f0 手元にあるGCCとMS-C(32bit)は 同じ値が出てました http://mevius.5ch.net/test/read.cgi/tech/1721137434/358
359: デフォルトの名無しさん (ワッチョイ d7d8-7ouQ) [] 2024/11/24(日) 20:09:10.15 ID:KIy2cazo0 質問失礼します ダイアログボックスについて学習しようとしているのですが、サンプルのリソースをコピペしたところ、ダイアログボックスのIDが認識されなく手詰まりになってしまっています。 どなたかご助力ください。 TEST DIALOG (座標を書くと書き込みできない) C2059 C2061 以上のソースでエラーを吐いてしまいます。リソースをベタ打ちで記述する参考サイトが少ないので判断がつきません。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/359
360: デフォルトの名無しさん (ワッチョイ ff63-cdGy) [sage] 2024/11/24(日) 20:28:06.09 ID:VUrUqN1f0 記述に文法上の誤りがあるって事です。 コピペで失敗しているのか、 元々のサンプルに誤りがあるかは これだけでは分かりません 文法の基本から学び直して 自分で見つけるしかないかもしれません http://mevius.5ch.net/test/read.cgi/tech/1721137434/360
361: デフォルトの名無しさん (ワッチョイ bf5f-FO3g) [] 2024/11/24(日) 20:47:32.93 ID:Hl1pEu0p0 >> 358 試していただきありがとうございます. FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67) Target: x86_64-unknown-freebsd14.1 と,gccは共に jの値がおかしいのです. 試しに, unsigned long j = 1 << 31; を unsigned int j = 1 << 31; にすると同じ値になる. これはコンパイラのBUGかなぁ. http://mevius.5ch.net/test/read.cgi/tech/1721137434/361
362: 警備員[Lv.1][新芽] (ワッチョイ 9fe5-fjqo) [sage] 2024/11/24(日) 22:17:04.46 ID:/KMFo2rr0 よく分からないけど unsigned long i = 1 << 31; unsigned long j = 1 << 31; を unsigned long i = 1L << 31; unsigned long j = 1L << 31; とするとうまくいく? clang どちらでも同じ結果になりそうだけど 見当違いだったらごめんなさい http://mevius.5ch.net/test/read.cgi/tech/1721137434/362
363: 警備員[Lv.1][新芽] (ワッチョイ 9fe5-fjqo) [sage] 2024/11/24(日) 22:25:28.27 ID:/KMFo2rr0 gcc -S でアセンブラ出してみてみたけど、 いや、アセンブラよくわからないんだけど、 修正前の iと jは初期化時にいずれも符号拡張されて大きな値になっていて その後なぜか iの方は下32ビットで、jの方は64ビットで計算されているようで、正しいのはむしろ jのように見えたがごめんなさい 本当にアセンブラ分からないので多分間違ってます… http://mevius.5ch.net/test/read.cgi/tech/1721137434/363
364: デフォルトの名無しさん (ワッチョイ 9f61-vAaR) [sage] 2024/11/24(日) 22:26:25.59 ID:zY64cYUd0 gcc, clang sizeof(int) == 32 sizeof(unsigned long) == 64 での出力 18446744071562067968,18446744071562067968,18446744071562067968 1073741824,9223372035781033984,1073741824 536870912,4611686017890516992,536870912 省略 8,68719476728,8 4,34359738364,4 2,17179869182,2 1,8589934591,1 これはこれで正しいと思うが http://mevius.5ch.net/test/read.cgi/tech/1721137434/364
365: 警備員[Lv.2][新芽] (ワッチョイ 9fe5-fjqo) [sage] 2024/11/24(日) 22:45:06.29 ID:/KMFo2rr0 あ、iは unsigned (int)でキャストしてるのか http://mevius.5ch.net/test/read.cgi/tech/1721137434/365
366: デフォルトの名無しさん (ワッチョイ bf5f-FO3g) [] 2024/11/24(日) 23:09:31.94 ID:Hl1pEu0p0 わかりやすく,intのものとcastかけたのにしてみました. これだとやはり,pの値だけ変でした. 元々は,binaryで数を8bit 16bit 32bitで表示する関数が,8,16が普通で32だけ変なので気がついたのでした.なんでintだと符合拡張されなくてlongだとされるかが謎. #include <stdio.h> int main() { int s=31; unsigned long i = 1 << 31; unsigned int j = 1 << 31; unsigned long p = 1 << 31; unsigned long k; while(i) { k = 1 << s; printf("%lu,%u,%lu,%lu¥n",i,j,k,p); i = (unsigned)i>>1; j >>= 1; p >>= 1; s--; } return 0; } http://mevius.5ch.net/test/read.cgi/tech/1721137434/366
367: デフォルトの名無しさん (ワッチョイ bf5f-FO3g) [] 2024/11/24(日) 23:16:12.94 ID:Hl1pEu0p0 unsigned long p = 1 << 31; を unsigned long p = 1L << 31; にしたら同じ値になりました. ううむ,なぜ unsigned int j = 1 << 31; だとうまくいって,longだと1Lにしないとうまくいかんのだ. http://mevius.5ch.net/test/read.cgi/tech/1721137434/367
368: 警備員[Lv.4][新芽] (ワッチョイ b72e-fjqo) [sage] 2024/11/24(日) 23:36:41.28 ID:BVpPJ8iH0 右辺が 1<<31だと 左辺が intだと0x80000000がそのまま、 longだと 0xffffffff80000000に拡張されて転記されるからでは http://mevius.5ch.net/test/read.cgi/tech/1721137434/368
369: 警備員[Lv.4][新芽] (ワッチョイ b72e-fjqo) [sage] 2024/11/24(日) 23:49:31.80 ID:BVpPJ8iH0 unsigned long i = (unsigned long) 1 << 31; とすれば iは 0x80000000になるかと http://mevius.5ch.net/test/read.cgi/tech/1721137434/369
370: 警備員[Lv.4][新芽] (ワッチョイ b72e-fjqo) [sage] 2024/11/24(日) 23:50:27.79 ID:BVpPJ8iH0 1lとするのと同じだけど http://mevius.5ch.net/test/read.cgi/tech/1721137434/370
371: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-hCSs) [sage] 2024/11/25(月) 02:42:55.67 ID:EAdMpn4b0 >>367 言語仕様的に解釈すると…… シフト演算子の結果の型は左オペランドを整数拡張した後の型と同じになる。 整数リテラルは int の範囲で表せる限り int なので 1 は int 。 int は整数拡張の必要がないので 1<<31 の結果の型も int 。 そして結果の型が signed かつ結果の値が結果の型で表現可能な範囲にないときの動作は未定義なので 2147483648 が int (おそらく質問者の環境では 32 ビット) の最大値である 2147483647 を越えていて未定義の挙動となる。 不定とか処理系定義ではなく未定義と明記されてる。 つまり言語仕様上は何が起きても良いということ。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/371
372: デフォルトの名無しさん (ワッチョイ ffd6-G09H) [sage] 2024/11/25(月) 07:22:58.48 ID:NtppUMW10 6.3.1.3のこれじゃないの Otherwise, if the new type is unsigned, the value is converted by repeatedly adding or subtracting one more than the maximum value that can be represented in the new type until the value is in the range of the new type. http://mevius.5ch.net/test/read.cgi/tech/1721137434/372
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 630 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s