[過去ログ]
C言語なら俺に聞け 163 (1002レス)
C言語なら俺に聞け 163 http://mevius.5ch.net/test/read.cgi/tech/1721137434/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 636 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s