[過去ログ]
C言語なら俺に聞け 163 (1002レス)
C言語なら俺に聞け 163 http://mevius.5ch.net/test/read.cgi/tech/1721137434/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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://meviu
s.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.cg
i/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
373: デフォルトの名無しさん (ワッチョイ bf5f-FO3g) [] 2024/11/25(月) 08:27:04.40 ID:qsrJNZhH0 6.3.1.3 符号付き整数型及び符号無し整数型 整数型の値を̲Bool型以外の他の整数型に変換する場合, その値が新しい型で表現可能なとき,値は変化しない。 新しい型で表現できない場合,新しい型が符号無し整数型であれば,新しい型で表現しうる最大の数に 1加えた数を加えること又は減じることを,新しい型の範囲に入るまで繰り返すことによって得られる値 に変換する(49)。 なるほど,1がintで<<31すると負の最大値となって,uns
ignedとして表せないからか. 皆様,ありがとうございました. http://mevius.5ch.net/test/read.cgi/tech/1721137434/373
374: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-hCSs) [sage] 2024/11/25(月) 09:22:18.85 ID:EAdMpn4b0 >>372-373 いいえ。 シフト演算の段階で既に未定義を踏んでいるので型変換は関係ないです。 6.5.7 をご覧ください。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/374
375: デフォルトの名無しさん (ワッチョイ 9fc2-ZGYG) [] 2024/11/25(月) 09:32:20.82 ID:SsaYg1Am0 科学 + ンニュース 5ch 保守派もリベラル派も「自分の政治的信念に合致したニュース」を信じやすいという研究結果 [すらいむ★] https://itest.5ch.net/egg/test/read.cgi/scienceplus/1732447647 コメントも含めて読むと 陰謀論が収まら無い理由が判明する http://mevius.5ch.net/test/read.cgi/tech/1721137434/375
376: デフォルトの名無しさん (ワッチョイ ffd6-G09H) [sage] 2024/11/25(月) 09:46:02.42 ID:NtppUMW10 なるほど、32bitのみでやるときも1u<<31にしないといけないのか http://mevius.5ch.net/test/read.cgi/tech/1721137434/376
377: デフォルトの名無しさん (ササクッテロ Spcb-8bf6) [sage] 2024/11/25(月) 10:29:04.22 ID:G+C3M6QHp なぜ浮動小数型をシフトしようとした? http://mevius.5ch.net/test/read.cgi/tech/1721137434/377
378: デフォルトの名無しさん (ワッチョイ bfdf-FO3g) [] 2024/11/25(月) 13:39:22.46 ID:YjGMGS1I0 >> 374 なるほど,そっちで既に未定義だったか. 6.5.7 ビット単位のシフト演算子 構文規則 シフト式: 加減式 シフト式 << 加減式 シフト式 >> 加減式 制約 各オペランドは,整数型をもたなければならない。 意味規則 整数拡張を各オペランドに適用する。結果の型は,左オペランドを拡張した後の型とする。右オペランドの値が負であるか,又は拡張した左オペランドの幅以上の場合,その動作は,未定義とする。 E1<<E2の結
果は,E1をE2ビット分左にシフトした値とする。空いたビットには0を詰める。E1が符号無し整数型をもつ場合,結果の値は,E1×2E2の,結果の型で表現可能な最大値より1大きい値を法と する剰余とする。E1が符号付き整数型と非負の値をもち,E1×2E2が結果の型で表現可能である場合,それが結果の値となる。それ以外の場合,その動作は未定義とする。 E1>>E2の結果は,E1をE2ビット分右にシフトした値とする。E1が符号無し整数型をもつ場合,又はE1が符号付き整数型と非負の値をもつ場合,結果の値は,E1/2E2の商の整数部分とする。E1が符号付き
整数型と負の値をもつ場合,結果の値は処理系定義とする。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/378
379: デフォルトの名無しさん (JP 0Hdf-6m00) [] 2024/11/26(火) 22:12:07.51 ID:JxXv+doZH VS CodeでEchoAPIを使うと、ツールを切り替えずにAPIテストをシームレスに管理できるようになったよ! http://mevius.5ch.net/test/read.cgi/tech/1721137434/379
380: デフォルトの名無しさん (ワッチョイ d761-7ouQ) [] 2024/11/29(金) 15:48:48.81 ID:QX01Nly20 以下のサンプルプログラムが理解できず困っています。 該当プログラムは、コマンドラインから読み込んだBMPの色データを矩形として並べていくというものの一部を抜粋しています。 以下のfor文は カラーテーブルの数を取得する→ ブラシを設定する→ 先頭の構造体メンバからiCount先の構造体メンバを指定→ iCountにインクリメント という流れだと考えられると思うのですが、1に対し1カラービット分左シフトとなっている部分がどういったロジックによっ
て数の取得が実現されているのかわかりません。 質問は2点あり、どのようにしてテーブル数を取得しているのか、コードの理解は正しいのかについてお答えしていただければと思います。 サンプルコード #include <windows.h> BITMAPFILEHEADER bmpFileHeader; BITMAPCOREHEADER bmpCoreHeader; RGBTRIPLE *prtColor; for ( ; iCount < (1 << bmpCoreHeader.bcBitCount) ; iCount++) { SelectObject(hdc , CreateSolidBrush( RGB( (prtColor + iCount)->rgbtRed , (prtColor + iCount)->rgbtGreen , (prtColor + iCount)->r
gbtBlue )) http://mevius.5ch.net/test/read.cgi/tech/1721137434/380
381: デフォルトの名無しさん (スプッッ Sd3f-G09H) [sage] 2024/11/29(金) 16:12:14.82 ID:YWo8X0edd bcBitCountはピクセルあたりビット数で1,4,8,24だそう nビットで表せる値は2^n通りで、これは左シフト1<<nで計算できる http://mevius.5ch.net/test/read.cgi/tech/1721137434/381
382: デフォルトの名無しさん (ワッチョイ ff76-J7R8) [] 2024/11/29(金) 23:08:43.43 ID:5pZynS2U0 # 質問されていない部分だけど… iCountと比較する値はループ内で変動しないよね? だったら毎回計算せずにループ前で計算して別変数に記憶しておくほうがよくないかい? http://mevius.5ch.net/test/read.cgi/tech/1721137434/382
383: デフォルトの名無しさん (ワッチョイ ffd6-G09H) [sage] 2024/11/30(土) 00:28:19.69 ID:b6kb1MmL0 今時のコンパイラは十分賢いので気にすることない http://mevius.5ch.net/test/read.cgi/tech/1721137434/383
384: デフォルトの名無しさん (ワッチョイ ff63-cdGy) [sage] 2024/11/30(土) 00:37:35.21 ID:VtvuoLT+0 ユーザーの犯したバグも直してくれるとありがたいなあ http://mevius.5ch.net/test/read.cgi/tech/1721137434/384
385: デフォルトの名無しさん (ワッチョイ ff76-J7R8) [sage] 2024/11/30(土) 00:47:56.34 ID:k7UOR52k0 シフトでも掛算でもどっちでもいいけど 質問者のように読んで悩むのは問題 コメント書いておけ ループ内毎回計算か最適化でループ外に出したかは コンパイル後の逆アセンブルとかで確認するの? だったら間違いないようにループ外に出す方が良い癖にもなると思うのだが http://mevius.5ch.net/test/read.cgi/tech/1721137434/385
386: デフォルトの名無しさん (ワッチョイ bf79-q0Tp) [sage] 2024/11/30(土) 09:43:24.89 ID:54hbVEvk0 380の知能では最適化したつもりが新たなバグを埋め込む事になるかもしれん 自身の身の丈に合ったコードにしとけ 未来の自分が賢くなってる事を信じて http://mevius.5ch.net/test/read.cgi/tech/1721137434/386
387: デフォルトの名無しさん (アウアウエー Sadf-wjfe) [] 2024/11/30(土) 09:49:47.60 ID:l0dFcapba #include <windows.h> BITMAPFILEHEADER bmpFileHeader; BITMAPCOREHEADER bmpCoreHeader; RGBTRIPLE *prtColor; ↑ この間に何も描かれてないのは投稿者が勝手に削除したの?元から無いの? ↓ for ( ; iCount < (1 << bmpCoreHeader.bcBitCount) ; iCount++) { SelectObject(hdc , CreateSolidBrush( RGB( (prtColor + iCount)->rgbtRed , (prtColor + iCount)->rgbtGreen , (prtColor + iCount)->rgbtBlue )) http://meviu
s.5ch.net/test/read.cgi/tech/1721137434/387
388: デフォルトの名無しさん (ワッチョイ ff76-J7R8) [sage] 2024/11/30(土) 11:23:36.84 ID:k7UOR52k0 なんでこんなに読めないのか理由がわかった 変数名や字下げや「,」前のブランクなど 論理そのもの以前にコーディングの美しさが全然無い http://mevius.5ch.net/test/read.cgi/tech/1721137434/388
389: デフォルトの名無しさん (ワッチョイ ff63-cdGy) [sage] 2024/11/30(土) 11:53:49.47 ID:VtvuoLT+0 この掲示板書き込むと、スペースやタブは消されちゃうんだよな。 だから綺麗に整形した状態でソース載せたいなら、 全角スペース使うしかない。 あるいはソース公開出来るサイトにアップロードして、 そのリンクを張るなりする。 そういうサイトは、>>1 に書いてある。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/389
390: デフォルトの名無しさん (ワッチョイ bfd9-6oxW) [sage] 2024/11/30(土) 12:18:13.55 ID:tlb45efI0 美しさとか言い出したら自転車置き場の議論なるからやめとけ http://mevius.5ch.net/test/read.cgi/tech/1721137434/390
391: デフォルトの名無しさん (ワッチョイ ff63-cdGy) [sage] 2024/11/30(土) 12:21:38.32 ID:VtvuoLT+0 https://mevius.5ch.net/test/read.cgi/tech/1402617355/ 色々試し書きしたいなら、テストスレがあるから、そこでやって http://mevius.5ch.net/test/read.cgi/tech/1721137434/391
392: デフォルトの名無しさん (ワッチョイ ff76-J7R8) [sage] 2024/11/30(土) 15:56:34.50 ID:k7UOR52k0 python自体のスタイルPEP8に加えてCについてのPEP7も整備されているのに https://peps.python.org/pep-0007/ あえてそれに背くコーディングをする理由が見つからない GNUのへんてこコーディングも規約文章は整備されている http://mevius.5ch.net/test/read.cgi/tech/1721137434/392
393: デフォルトの名無しさん (ワッチョイ bf79-q0Tp) [sage] 2024/11/30(土) 16:28:54.09 ID:54hbVEvk0 他人のふんどしででかい顔のpythonは存在自体がきしょくってぇ そんなもん使ってる奴の押し付けに従う気にはとてもなれないって感じぃ http://mevius.5ch.net/test/read.cgi/tech/1721137434/393
394: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-hCSs) [sage] 2024/11/30(土) 16:41:54.15 ID:VBYh6hCP0 自分の使ってるテキストエディタにコピペして整形を実行したら一瞬でどうとでもなるんだからどうでもいいだろ。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/394
395: デフォルトの名無しさん (ワッチョイ ff76-J7R8) [sage] 2024/11/30(土) 17:05:29.66 ID:k7UOR52k0 func(a , b , c ); func(a, b, c); 上から下への変換はインデントとは異なりやっかい http://mevius.5ch.net/test/read.cgi/tech/1721137434/395
396: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-hCSs) [sage] 2024/11/30(土) 17:22:56.29 ID:VBYh6hCP0 >>395 どんな古臭いフォーマッタを使ってるんだ? http://mevius.5ch.net/test/read.cgi/tech/1721137434/396
397: デフォルトの名無しさん (ワッチョイ d761-7ouQ) [] 2024/11/30(土) 17:25:06.78 ID:9y3I76FS0 >>381 シフト演算を行った場合、10進数の1に対して乗算を行うわけではなく、2進数に対して行うという認識で良いでしょうか? すなわち、この場合を10進数で表すと、1ではなくて2に対して、1,4,8,24、のいずれかを冪乗し、何通りの色の組み合わせがあるのかを確かめることができるというわけですね。 >>382 コピペしただけなのでとりあえず理解をと思い書き込みました。自身で書くときはそうしたほうがわかりやすいかもしれませんね。 http:
//mevius.5ch.net/test/read.cgi/tech/1721137434/397
398: デフォルトの名無しさん (ワッチョイ d761-7ouQ) [] 2024/11/30(土) 17:25:18.86 ID:9y3I76FS0 >>385 少し別添えで記述されてはいたのですが、それだけでは理解に至らなく書き込みした次第です。 >>386 そうなんです、私も身の丈に合うコードにしたいのは山々なのです。 ところで、初級者向けのGUI作成の手引書を教えていだだけませんか?もちろん、ここ5年以内の環境で >>387 勝手ながら削除しています。素人考えなのは承知です。 仕事柄、利権や法にはうるさくあらねばなりませんので、リスク回避です。 http://mevius.5ch.n
et/test/read.cgi/tech/1721137434/398
399: デフォルトの名無しさん (ワッチョイ bf79-q0Tp) [sage] 2024/11/30(土) 18:05:05.65 ID:54hbVEvk0 Cは知っといた方がいいけど GUIをやりたいならこのスレに居るのは時間の無駄なんだが そのBITMAPなんちゃらも以下の環境では気にしなくていい GUI開発おすすめ言語 iOS macOSアプリ Swift、Objective-C Androidアプリ Kotlin、Java Webアプリ Kotlin、Java Windows C# なおWeb系はHTML/CSS、JavaScript/TypeScriptは必須と思って頂きたい http://mevius.5ch.net/test/read.cgi/tech/1721137434/399
400: デフォルトの名無しさん (ワッチョイ ff63-cdGy) [sage] 2024/11/30(土) 18:12:39.34 ID:VtvuoLT+0 Windowsの内部構造を知るのは時間の無駄なのか http://mevius.5ch.net/test/read.cgi/tech/1721137434/400
401: デフォルトの名無しさん (ワッチョイ bf79-q0Tp) [sage] 2024/11/30(土) 18:17:30.16 ID:54hbVEvk0 BITMAPなんちゃらに詳しくなった所でWindowsの内部構造を知ったことにはならないんだがぁ? 現行Windows11の内部構造なんてきしょすぎてそもそも知りたくもないわ http://mevius.5ch.net/test/read.cgi/tech/1721137434/401
402: デフォルトの名無しさん (ワッチョイ ff63-cdGy) [sage] 2024/11/30(土) 18:33:02.64 ID:VtvuoLT+0 そういう人はソフト開発に向いてないよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/402
403: デフォルトの名無しさん (ワッチョイ ff76-J7R8) [sage] 2024/11/30(土) 18:37:21.74 ID:k7UOR52k0 これだけ見て分かるわけ無いよ max = 1 << bmpCoreHeader.bcBitCount; for (iCountの初期値が無いよ、普通0からだよね; iCount < max; iCount++) { // テーブルRGB値をブラシの色に設定? brush = CreateSolidBrush(...); // RGBで色指定したブラシで塗る?hdcが変わらんようだが何回も呼ぶ意味があるの? SelectObject(hdc, brush); // これ以降があるのか… } http://mevius.5ch.net/test/read.cgi/tech/1721137434/
403
404: デフォルトの名無しさん (ワッチョイ ff76-J7R8) [sage] 2024/11/30(土) 18:53:59.75 ID:k7UOR52k0 bmpCoreHeader.bcBitCount の範囲チェックが必要そう uint64_t max; max = 1 << 64; // max == 0x8000000000000000 で意味がありそう max = 1 << 65; // これ64bit整数の範囲超えているよね、プロセッサ依存の値になる予感 http://mevius.5ch.net/test/read.cgi/tech/1721137434/404
405: デフォルトの名無しさん (ワッチョイ ff76-J7R8) [sage] 2024/11/30(土) 19:19:34.08 ID:k7UOR52k0 64bitシフトでも溢れた これ難しいね uint64_t seed, max seed = 1; max = seed << 63; // 0x80000000 で期待どおり max = 1ull << 63; // 0x80000000 これも期待どおり max = 1 << 63; // 即値1のレジスタ範囲が足りない? max = 1 << 63; // 即値1だと32bitなのか http://mevius.5ch.net/test/read.cgi/tech/1721137434/405
406: デフォルトの名無しさん (スプッッ Sd8b-G09H) [sage] 2024/11/30(土) 19:23:29.64 ID:ePDG6JlId カラーパレットを使うのは1,4,8って決まってるんだが http://mevius.5ch.net/test/read.cgi/tech/1721137434/406
407: 青木康善 (アウアウウー Sa5b-8bf6) [sage] 2024/11/30(土) 19:52:07.91 ID:exhSsXMya トリプルポインタが理解不能です。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/407
408: デフォルトの名無しさん (ワッチョイ ff76-J7R8) [sage] 2024/11/30(土) 20:06:07.06 ID:k7UOR52k0 1, 4, 8以外のエラー処理が無ければ手抜きプログラムだよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/408
409: デフォルトの名無しさん (ワッチョイ bf79-q0Tp) [sage] 2024/11/30(土) 21:42:40.50 ID:54hbVEvk0 これが俗に言う無能な働き者かぁ… http://mevius.5ch.net/test/read.cgi/tech/1721137434/409
410: デフォルトの名無しさん (ワッチョイ 57c3-EYTo) [sage] 2024/11/30(土) 22:31:58.70 ID:cI+uLRSv0 粘着キショい http://mevius.5ch.net/test/read.cgi/tech/1721137434/410
411: デフォルトの名無しさん (ササクッテロロ Sp10-8wrk) [sage] 2024/12/01(日) 11:20:07.96 ID:HNZEO20Lp >>407 理解してる俺でもデバッグん時に面倒だから使わない http://mevius.5ch.net/test/read.cgi/tech/1721137434/411
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 591 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s