!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
C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.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言語なら俺に聞け 162
https://mevius.5ch.net/test/read.cgi/tech/1698653580/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 163
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7bba-Lem2)
2024/07/16(火) 22:43:54.18ID:ZrsCjURC0401デフォルトの名無しさん (ワッチョイ bf79-q0Tp)
2024/11/30(土) 18:17:30.16ID:54hbVEvk0 BITMAPなんちゃらに詳しくなった所でWindowsの内部構造を知ったことにはならないんだがぁ?
現行Windows11の内部構造なんてきしょすぎてそもそも知りたくもないわ
現行Windows11の内部構造なんてきしょすぎてそもそも知りたくもないわ
402デフォルトの名無しさん (ワッチョイ ff63-cdGy)
2024/11/30(土) 18:33:02.64ID:VtvuoLT+0 そういう人はソフト開発に向いてないよ
403デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 18:37:21.74ID:k7UOR52k0 これだけ見て分かるわけ無いよ
max = 1 << bmpCoreHeader.bcBitCount;
for (iCountの初期値が無いよ、普通0からだよね; iCount < max; iCount++) {
// テーブルRGB値をブラシの色に設定?
brush = CreateSolidBrush(...);
// RGBで色指定したブラシで塗る?hdcが変わらんようだが何回も呼ぶ意味があるの?
SelectObject(hdc, brush);
// これ以降があるのか…
}
max = 1 << bmpCoreHeader.bcBitCount;
for (iCountの初期値が無いよ、普通0からだよね; iCount < max; iCount++) {
// テーブルRGB値をブラシの色に設定?
brush = CreateSolidBrush(...);
// RGBで色指定したブラシで塗る?hdcが変わらんようだが何回も呼ぶ意味があるの?
SelectObject(hdc, brush);
// これ以降があるのか…
}
404デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 18:53:59.75ID:k7UOR52k0 bmpCoreHeader.bcBitCount の範囲チェックが必要そう
uint64_t max;
max = 1 << 64; // max == 0x8000000000000000 で意味がありそう
max = 1 << 65; // これ64bit整数の範囲超えているよね、プロセッサ依存の値になる予感
uint64_t max;
max = 1 << 64; // max == 0x8000000000000000 で意味がありそう
max = 1 << 65; // これ64bit整数の範囲超えているよね、プロセッサ依存の値になる予感
405デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 19:19:34.08ID: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なのか
これ難しいね
uint64_t seed, max
seed = 1;
max = seed << 63; // 0x80000000 で期待どおり
max = 1ull << 63; // 0x80000000 これも期待どおり
max = 1 << 63; // 即値1のレジスタ範囲が足りない?
max = 1 << 63; // 即値1だと32bitなのか
406デフォルトの名無しさん (スプッッ Sd8b-G09H)
2024/11/30(土) 19:23:29.64ID:ePDG6JlId カラーパレットを使うのは1,4,8って決まってるんだが
407青木康善 (アウアウウー Sa5b-8bf6)
2024/11/30(土) 19:52:07.91ID:exhSsXMya トリプルポインタが理解不能です。
408デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 20:06:07.06ID:k7UOR52k0 1, 4, 8以外のエラー処理が無ければ手抜きプログラムだよ
409デフォルトの名無しさん (ワッチョイ bf79-q0Tp)
2024/11/30(土) 21:42:40.50ID:54hbVEvk0 これが俗に言う無能な働き者かぁ…
410デフォルトの名無しさん (ワッチョイ 57c3-EYTo)
2024/11/30(土) 22:31:58.70ID:cI+uLRSv0 粘着キショい
411デフォルトの名無しさん (ササクッテロロ Sp10-8wrk)
2024/12/01(日) 11:20:07.96ID:HNZEO20Lp >>407
理解してる俺でもデバッグん時に面倒だから使わない
理解してる俺でもデバッグん時に面倒だから使わない
412デフォルトの名無しさん (ワッチョイ 9663-WFUB)
2024/12/01(日) 11:21:42.42ID:+XByeWPN0 理解するな、感じるんだ!
413デフォルトの名無しさん (ワッチョイ fb6e-Qs+Z)
2024/12/02(月) 07:39:26.68ID:UIzNnBqa0 スマホ世代もCってるなんて頼もしい限りだな
https://pbs.twimg.com/media/GdrvuRtWgAA1DOe.jpg
https://pbs.twimg.com/media/GdrvuRtWgAA1DOe.jpg
414デフォルトの名無しさん (ササクッテロロ Sp10-8wrk)
2024/12/02(月) 10:00:18.95ID:cKcAe5N2p なんだその数字w
415はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-LsAq)
2024/12/02(月) 12:52:17.82ID:5A4jg9rQ0 >>413
なんていうアプリで書いてるんだろ?
なんていうアプリで書いてるんだろ?
416デフォルトの名無しさん
2024/12/02(月) 16:27:58.74ID:sZTu4RGZ0417デフォルトの名無しさん (ワッチョイ 9663-WFUB)
2024/12/02(月) 16:44:39.99ID:mvW+hvRB0 無料版もあるみたいだ。違いは分からなかった。
/dp/B01CEZQGX8
/dp/B01CEZQGX8
なんかEchoAPI、さまざまなAPIシナリオをモックするのに役立って、フロントエンドの作業を独立して行えるようになるよ
419デフォルトの名無しさん (ワッチョイ 62ad-sHi4)
2024/12/05(木) 08:13:19.15ID:XxVPE2wx0 前はAIDEってのもあったような
自分も購入済みだったけどストアから消えた
自分も購入済みだったけどストアから消えた
420デフォルトの名無しさん (ワッチョイ ca48-Q86W)
2024/12/05(木) 08:18:47.93ID:GShkk8fF0 >>418ならただの宣伝マルチポストなのでさっさとNGしておくように
421デフォルトの名無しさん (アウアウ Sa4f-f5HH)
2024/12/08(日) 09:05:36.00ID:NBQmwlWPa char text[32] = "count="
sptintf(text, "%s%d", text, 100);
↑これって問題ない?
sptintf(text, "%s%d", text, 100);
↑これって問題ない?
422デフォルトの名無しさん (ワッチョイ a794-InQL)
2024/12/08(日) 09:31:43.48ID:ukMyBbJC0 オーバーフローを懸念。
423デフォルトの名無しさん (ワッチョイ bf5e-dt5O)
2024/12/08(日) 12:39:42.22ID:xllqP0wk0 snprintf
424はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4732-B9Rp)
2024/12/08(日) 13:05:39.35ID:6js3fqHP0 >>421
sprintf のことだよね?
問題はある。
領域が重なるオブジェクト間でコピーが行われるときの動作は未定義とするという仕様になってる。
それと関数シグネチャを見ればわかるが引数のところに restrict ってついてるでしょ。
その性質上、他の引数がこれと領域が被ってはいけないというサインだ。
まあ引数を使わない関数であれば restrict 修飾されたポインタが指す領域がかぶってもただちに違反ではないが、常識的には渡す以上は使われるものと想定すべきだよね。
sprintf のことだよね?
問題はある。
領域が重なるオブジェクト間でコピーが行われるときの動作は未定義とするという仕様になってる。
それと関数シグネチャを見ればわかるが引数のところに restrict ってついてるでしょ。
その性質上、他の引数がこれと領域が被ってはいけないというサインだ。
まあ引数を使わない関数であれば restrict 修飾されたポインタが指す領域がかぶってもただちに違反ではないが、常識的には渡す以上は使われるものと想定すべきだよね。
425デフォルトの名無しさん (ワッチョイ e7fa-jsat)
2024/12/08(日) 16:35:15.95ID:iOnFgjmu0426デフォルトの名無しさん (ワッチョイ 7f63-xJXv)
2024/12/08(日) 20:16:31.35ID:rVbvHhAN0 最近の小学校ではこんな宿題出るのか
末恐ろしいと言うか、頼もしいというか
末恐ろしいと言うか、頼もしいというか
427デフォルトの名無しさん
2024/12/09(月) 01:07:25.53ID:ToKnc/9y0 コンピュータの授業とか普通にあるんだろ?今って
俺からすると羨ましい限りだわ
でもダンスの授業はいらん
俺からすると羨ましい限りだわ
でもダンスの授業はいらん
428デフォルトの名無しさん (ワッチョイ bf79-/9Tr)
2024/12/09(月) 01:41:05.76ID:izrgU9L90 元々芸術科目や体育は面倒な存在だし
ダンスはそれらが合わさって一見最強に見えるだけで専門科目に比べれば実は大した内容じゃない
子供は加減の付け方を知らないから物凄い壁に見えるんだろう
ダンスはそれらが合わさって一見最強に見えるだけで専門科目に比べれば実は大した内容じゃない
子供は加減の付け方を知らないから物凄い壁に見えるんだろう
429はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 67c7-B9Rp)
2024/12/09(月) 01:48:04.91ID:hHB0rnnr0 1990 年代頃なら中学校でコンピュータの授業はあったがプログラミングがちょっとでも出来るようになるほどではなく使い方に慣れるという程度だったと思う。
ただ、学校に設備や資料はあったから興味があれは詳しくなれるチャンスはあった。
設備をどのくらい解放するかは学校の体制によるだろうけど。
ただ、学校に設備や資料はあったから興味があれは詳しくなれるチャンスはあった。
設備をどのくらい解放するかは学校の体制によるだろうけど。
430デフォルトの名無しさん (ワッチョイ dfad-pQ4B)
2024/12/09(月) 10:00:06.94ID:hbK9EAUD0 >>427
踊りながら英語でコンピュータを使え
踊りながら英語でコンピュータを使え
431デフォルトの名無しさん (ワッチョイ dff4-tB0+)
2024/12/09(月) 13:23:27.80ID:wWCmXoxS0 科学 + 5ch
【AI】AIはわずか2時間の対話で人間の性格をコピーできる [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1733576027/
コメントに面白いことが書かれている
【AI】AIはわずか2時間の対話で人間の性格をコピーできる [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1733576027/
コメントに面白いことが書かれている
432デフォルトの名無しさん (ワッチョイ 7f63-xJXv)
2024/12/09(月) 13:52:01.90ID:IOR7vjsa0 2時間で初等教育から大学院レベルまで学習完了したら
人間要らなくなりそうだな
人間要らなくなりそうだな
433デフォルトの名無しさん (ワッチョイ e701-f5HH)
2024/12/09(月) 18:02:12.33ID:rC3URswf0 >>429
たしか教師がクソすぎて失敗したんだよなw
たしか教師がクソすぎて失敗したんだよなw
434デフォルトの名無しさん (ワッチョイ dfad-pQ4B)
2024/12/09(月) 19:36:33.91ID:hbK9EAUD0 やがて全ての仕事がAIに直結されたロボットによって置き換えられ、人類絶滅。
地球はAIのみが存在する世界になり、真空でもそのまま動くロボットが宇宙征服。
地球はAIのみが存在する世界になり、真空でもそのまま動くロボットが宇宙征服。
435デフォルトの名無しさん (ワッチョイ 6761-/Pym)
2024/12/09(月) 21:34:01.67ID:OpvCpgOo0 チェックボックスとかラジオボタンの状態を保存したいんだけどなんて調べればええんすの?
現状ウィンドウを破棄する前にコントロールの内容を取得して状態に合わせた変数を初期化ファイルに保存、再起動時に変数に対応した状態に再設定するみたいなのしか思いつかん
冗長になって見づらいだろうし代替案を知りたい
現状ウィンドウを破棄する前にコントロールの内容を取得して状態に合わせた変数を初期化ファイルに保存、再起動時に変数に対応した状態に再設定するみたいなのしか思いつかん
冗長になって見づらいだろうし代替案を知りたい
436デフォルトの名無しさん (ワッチョイ 7f63-xJXv)
2024/12/09(月) 21:38:21.41ID:IOR7vjsa0 その通りで良いと思います
www最近、EchoAPIを使い始めたところ、効率的なAPIテストツールを提供してくれるおかげで、開発プロセスが向上した!
438デフォルトの名無しさん (ワッチョイ 6761-/Pym)
2024/12/10(火) 09:40:44.51ID:9vz9QL6n0 >>436
これで行くしかないのか
これで行くしかないのか
439デフォルトの名無しさん (ワッチョイ e707-f5HH)
2024/12/10(火) 10:01:08.05ID:gzrtf0Gl0 対応表をだーっと並べる、control_state_read_and_write(bool is_write, ...) みたいな関数を置く、など
割り切ってしまえば工夫のしがいはある
ただ、そのときはよくても、あとになってみたら黒魔術でしかなかったりする
愚直なのもいいぞ
割り切ってしまえば工夫のしがいはある
ただ、そのときはよくても、あとになってみたら黒魔術でしかなかったりする
愚直なのもいいぞ
440デフォルトの名無しさん (ワッチョイ ff5a-gNLw)
2024/12/10(火) 17:10:24.87ID:TsXGEoU20 >>435
何がどう"冗長になって見づらい"のか?
何がどう"冗長になって見づらい"のか?
441デフォルトの名無しさん (ワッチョイ bf79-/9Tr)
2024/12/10(火) 19:03:49.02ID:ruXLR+AW0 属人化だとか 尻アナルライブだとかあったような
442デフォルトの名無しさん (ワッチョイ 7f63-xJXv)
2024/12/10(火) 19:06:39.85ID:RLBTgK1d0 身体に刻む学習方法
443デフォルトの名無しさん (アウアウ Sa4f-f5HH)
2024/12/10(火) 21:11:22.07ID:RajTC0DHa >>422-424
ありがとん
ありがとん
444デフォルトの名無しさん (アウアウ Sa4f-f5HH)
2024/12/10(火) 21:43:52.59ID:RajTC0DHa これでなんか機能した
TCHAR buf[255];
this->GetWindowText(title, 255);
int len = _tcsclen(buf);
_sntprintf(buf + len, 255, " %d", uiWindowCount);
this->SetWindowText(buf);
TCHAR buf[255];
this->GetWindowText(title, 255);
int len = _tcsclen(buf);
_sntprintf(buf + len, 255, " %d", uiWindowCount);
this->SetWindowText(buf);
445デフォルトの名無しさん (ワッチョイ bf79-/9Tr)
2024/12/10(火) 21:51:03.48ID:ruXLR+AW0 this->
ナニコレ
もしかしてC言語スレでC++使えるぞあぴーるですか!
すげー
ナニコレ
もしかしてC言語スレでC++使えるぞあぴーるですか!
すげー
446はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4732-f5HH)
2024/12/10(火) 22:13:12.06ID:ujXLUuNp0447デフォルトの名無しさん (アウアウ Sa4f-f5HH)
2024/12/11(水) 07:46:28.90ID:P/b6xwK7a API自体はC言語なんでそこらへんはスルーでお願い
448はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4732-B9Rp)
2024/12/11(水) 14:36:37.44ID:fIut9/tx0
最近のRESTful APIについての議論に触発されてEchoAPIを試してみたところ、エンドポイントのシミュレーションツールがテストプロセスを非常に効率化してくれました。
450デフォルトの名無しさん (ワッチョイ 7f63-xJXv)
2024/12/11(水) 23:04:37.50ID:xKzgcnaC0 MSは採用していないのかな?
なんでこんなにバグが多いんだろう
なんでこんなにバグが多いんだろう
451デフォルトの名無しさん (ワッチョイ 33b8-iztn)
2024/12/15(日) 15:13:40.89ID:jrfqO5QN0 1つめのプロシージャで宣言した変数を2つ目のプロシージャで使うって頑張れば可能?
それともグローバル変数宣言したほうがいい?
それともグローバル変数宣言したほうがいい?
452デフォルトの名無しさん (ワッチョイ a301-aNNs)
2024/12/15(日) 15:17:17.63ID:Vq+PRAKz0 引数で渡せばいいんじゃね
453デフォルトの名無しさん (ワッチョイ 33b8-iztn)
2024/12/15(日) 15:23:28.37ID:jrfqO5QN0 >>452
それも考えたんだけど、プロシージャ作るときライブラリ側が指定した引数以外渡せないんじゃない?
それも考えたんだけど、プロシージャ作るときライブラリ側が指定した引数以外渡せないんじゃない?
454デフォルトの名無しさん (ワッチョイ be63-Vy5I)
2024/12/15(日) 15:31:40.27ID:wmU+aa0b0 そのプロシージャーを同一モジュール内lに記述して、
変数をスタティック宣言する、とか
変数をスタティック宣言する、とか
455デフォルトの名無しさん (ワッチョイ 33b8-iztn)
2024/12/15(日) 15:38:22.49ID:jrfqO5QN0456デフォルトの名無しさん (ワッチョイ be63-Vy5I)
2024/12/15(日) 15:45:22.53ID:wmU+aa0b0 ちょっと違う様な気がする
そのファイル内にある全ての関数から参照出来る宣言です
スタティック宣言を調べて見て
そのファイル内にある全ての関数から参照出来る宣言です
スタティック宣言を調べて見て
457デフォルトの名無しさん (ワッチョイ 33b8-iztn)
2024/12/15(日) 15:46:49.05ID:jrfqO5QN0458デフォルトの名無しさん (ワッチョイ 33b8-iztn)
2024/12/15(日) 16:32:34.62ID:jrfqO5QN0 調べてみたけど関数内に別の関数の処理はかけないっぽい?
とりあえず自前のソース書き換えてみたけどC2275が出てしまう
とりあえず自前のソース書き換えてみたけどC2275が出てしまう
459デフォルトの名無しさん (ブーイモ MM8a-1w4P)
2024/12/15(日) 16:54:06.72ID:Wjdp3H7kM モジュールとかプロシージャはc言語の用語ではないよ
誤解を生むからなるべく正しい用語で
あるいはソース書け
誤解を生むからなるべく正しい用語で
あるいはソース書け
460デフォルトの名無しさん (ワッチョイ a301-2Zui)
2024/12/15(日) 17:04:08.92ID:5Q71kCB70 Cで作ったソフトにアイコンをつける方法ありますか?
コンパイラはmingw
コンパイラはmingw
461はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-782k)
2024/12/15(日) 17:07:42.25ID:SAQ/jMe00 >>460
リソーススクリプトを書いて windres コマンドでコンパイルしてリンク。
リソーススクリプトを書いて windres コマンドでコンパイルしてリンク。
462デフォルトの名無しさん (ワッチョイ 3338-UX28)
2024/12/15(日) 17:11:49.15ID:jrfqO5QN0 >>459
ウィンドウプロシージャでおk?
ウィンドウプロシージャでおk?
463はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-782k)
2024/12/15(日) 17:25:02.46ID:SAQ/jMe00464デフォルトの名無しさん (ワッチョイ 4a12-O1Z7)
2024/12/15(日) 20:08:51.95ID:7bvd8wX+0 >>458
よくある質問に書いてあんだからそれを読めよ
よくある質問に書いてあんだからそれを読めよ
465デフォルトの名無しさん (ワッチョイ 4aa2-SaU4)
2024/12/15(日) 21:32:26.28ID:8K4C8OcF0 2つ目のプロシージャってなんやねん
466デフォルトの名無しさん (オッペケ Srb3-aNNs)
2024/12/16(月) 07:18:55.27ID:Y4GCxOlhr 今北
何のデータかわからんが、だれに属しているデータなのやら
「全然関係ないところ」には、置かないほうがいいぞ少なくとも
何のデータかわからんが、だれに属しているデータなのやら
「全然関係ないところ」には、置かないほうがいいぞ少なくとも
467デフォルトの名無しさん (ワッチョイ 3369-iztn)
2024/12/16(月) 18:03:11.25ID:o/MtQx1A0 下記のコードのsizeof(buf)/sizeof(TCHAR)ってなんの意味があるの?
ただのsizeof(buf)じゃだめ?
static int num;
TCHAR buf[8];
stprintf_s(buf,sizeof(buf)/sizeof(TCHAR), TEXT("%d"), num);
ただのsizeof(buf)じゃだめ?
static int num;
TCHAR buf[8];
stprintf_s(buf,sizeof(buf)/sizeof(TCHAR), TEXT("%d"), num);
468デフォルトの名無しさん (ワッチョイ 3369-iztn)
2024/12/16(月) 18:17:40.10ID:o/MtQx1A0 >>463
なるほどね、それで行けるかありがとう
なるほどね、それで行けるかありがとう
469デフォルトの名無しさん (ワッチョイ 3369-iztn)
2024/12/16(月) 18:18:31.53ID:o/MtQx1A0 >>466
自分の知識だと外に置くくらいしか思いつかんかった
自分の知識だと外に置くくらいしか思いつかんかった
470デフォルトの名無しさん (ワッチョイ 666d-1w4P)
2024/12/16(月) 18:20:09.41ID:/03Ox5VG0 TCHARは_UNICODEのマクロの定義の有無によって16bitまたは8bitになる
471はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-aNNs)
2024/12/16(月) 18:26:34.86ID:26oXJeTE0 >>467
> ただのsizeof(buf)じゃだめ?
だめ。
TCHAR はコンパイル時に ANSI モードか Unicode モードかで定義が切り替わる。
ANSI モードのときは char で Unicode モードのときは WCHAR と同じ。
_stprintf_s も ANSI モードのときは sprintf_s に置き換えられて Unicode モードのときは swprintf_s になる。
swprintf_s のときの第一引数は文字数 (この場合は UTF-16 でのコードポイントの数) なのでバイト数である sizeof(buf) を渡しても駄目。
ANSI モードでしかコンパイルしないのであれば別に割らなくても大丈夫だけど、それならそもそも切り替えを前提としたマクロを使う必要ないしな……。
> ただのsizeof(buf)じゃだめ?
だめ。
TCHAR はコンパイル時に ANSI モードか Unicode モードかで定義が切り替わる。
ANSI モードのときは char で Unicode モードのときは WCHAR と同じ。
_stprintf_s も ANSI モードのときは sprintf_s に置き換えられて Unicode モードのときは swprintf_s になる。
swprintf_s のときの第一引数は文字数 (この場合は UTF-16 でのコードポイントの数) なのでバイト数である sizeof(buf) を渡しても駄目。
ANSI モードでしかコンパイルしないのであれば別に割らなくても大丈夫だけど、それならそもそも切り替えを前提としたマクロを使う必要ないしな……。
472デフォルトの名無しさん (ワッチョイ 3369-iztn)
2024/12/16(月) 22:06:23.18ID:o/MtQx1A0 Unicodeになるとなんで割る必要が出てくるのかいまいち掴めないなあ
BuffのサイズをTCHARのサイズで割ってどうしてサイズが出せるの?
BuffのサイズをTCHARのサイズで割ってどうしてサイズが出せるの?
473デフォルトの名無しさん (ワッチョイ 666d-1w4P)
2024/12/16(月) 22:41:01.10ID:/03Ox5VG0474はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-782k)
2024/12/16(月) 22:48:31.98ID:26oXJeTE0 配列の大きさを得るために配列のバイト数を配列要素のバイト数で割るのはごく一般的なイディオムなので何がわからないのかわからない。
これらのアイデアを実装するために取り組んでいる中で、EchoAPIが設計ワークフローを本当に効率化してくれた
476デフォルトの名無しさん
2024/12/17(火) 00:02:56.65ID:KLd2kDAJ0 >>472
Unicodeの場合、2バイトで1文字を表現
@@AABBCCDDEEFFGGHH で9文字、18バイト
ANSIの場合、
@ABCDEFGH で9文字、9バイト
> sizeof(buf)/sizeof(TCHAR)
sizeof(buf)が指すのはバイト数、Unicodeなら18、ANSIなら9
sizeof(TCHAR)が指すのは1文字のバイト数、Unicodeなら2、ANSIなら1
そして stprintf_s の引数 sizeOfBufferはバイト数ではなく「格納する最大文字数」であること
引数がバイト数ならsizeof(buf)でいいけど、引数が文字数を求めているならsizeof(buf)ではおかしくなる
上の例で言えば、Unicodeは18バイト9文字で本来は9とするところを18と指定してしまうことになる
すると関数側はバッファが18文字分(バイトで32バイト)あると勘違いするわけでバッファオーバーフローを起こす
sizeof(buf)/sizeof(TCHAR) は18バイトの領域があって、それを1文字のバイト数で割って「9文字」ということ
Unicodeの場合、2バイトで1文字を表現
@@AABBCCDDEEFFGGHH で9文字、18バイト
ANSIの場合、
@ABCDEFGH で9文字、9バイト
> sizeof(buf)/sizeof(TCHAR)
sizeof(buf)が指すのはバイト数、Unicodeなら18、ANSIなら9
sizeof(TCHAR)が指すのは1文字のバイト数、Unicodeなら2、ANSIなら1
そして stprintf_s の引数 sizeOfBufferはバイト数ではなく「格納する最大文字数」であること
引数がバイト数ならsizeof(buf)でいいけど、引数が文字数を求めているならsizeof(buf)ではおかしくなる
上の例で言えば、Unicodeは18バイト9文字で本来は9とするところを18と指定してしまうことになる
すると関数側はバッファが18文字分(バイトで32バイト)あると勘違いするわけでバッファオーバーフローを起こす
sizeof(buf)/sizeof(TCHAR) は18バイトの領域があって、それを1文字のバイト数で割って「9文字」ということ
477デフォルトの名無しさん
2024/12/17(火) 00:05:50.03ID:KLd2kDAJ0 丸付き数字自体が1文字1バイトって意味じゃないからな
内部表現を表すために使用しただけで数字がx文字目として見て
内部表現を表すために使用しただけで数字がx文字目として見て
478デフォルトの名無しさん (アウアウエー Sae2-N2kD)
2024/12/17(火) 10:25:09.48ID:hEkGaD6xa _countof()
479デフォルトの名無しさん (ワッチョイ 666d-1w4P)
2024/12/17(火) 12:09:40.76ID:2fZmW/080 いやvc++使ってんならstd::sizeでいい
480デフォルトの名無しさん (ササクッテロロ Spb3-DtHK)
2024/12/17(火) 12:36:10.86ID:5c2Y3gwMp C言語スレだろw
481デフォルトの名無しさん (ワッチョイ be63-Vy5I)
2024/12/17(火) 12:49:19.32ID:6SQ8uEd20 そこは禁欲しましょう
482デフォルトの名無しさん (ワッチョイ 33ef-iztn)
2024/12/18(水) 01:25:30.31ID:ILkVh3nA0483デフォルトの名無しさん
2024/12/18(水) 02:49:26.43ID:NqM0X43U0 >>482
ANSIはバイト=文字数
そもそも論理的な文字数じゃなくて処理単位での文字数ね
だから strlen("あいう") = 6
strlen("123あ67い0") = 10 // 数字は半角(1バイト)、ひらがなは全角(2バイト)
Unicodeの場合でも正しい文字数になるわけじゃない、サロゲートペアの場合に文字数は2(4バイト)になる
ANSIはバイト=文字数
そもそも論理的な文字数じゃなくて処理単位での文字数ね
だから strlen("あいう") = 6
strlen("123あ67い0") = 10 // 数字は半角(1バイト)、ひらがなは全角(2バイト)
Unicodeの場合でも正しい文字数になるわけじゃない、サロゲートペアの場合に文字数は2(4バイト)になる
484はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-782k)
2024/12/18(水) 09:23:44.77ID:w442kBzm0 Unicode だとサロゲートペアを脇においても異体字だの合成だのといったものがあるし、人間が紙の上に書くときの直感的な感覚で言うところの「文字数」とは定義が違うので、各文字コードの仕組みを知っておくしか仕方がない。
485デフォルトの名無しさん (ワッチョイ 3339-iztn)
2024/12/18(水) 17:31:07.70ID:ILkVh3nA0486デフォルトの名無しさん (ワッチョイ 8b93-1p0V)
2024/12/18(水) 17:41:39.49ID:NuF84nX60 文字コード問題よりC言語で作れってほうがハゲりそうだ
487デフォルトの名無しさん (ワンミングク MMda-UGgi)
2024/12/18(水) 17:56:26.27ID:2i1n2GHXM 固定長ならそこまで禿げないかと
488デフォルトの名無しさん (ワッチョイ 66be-1w4P)
2024/12/18(水) 18:24:42.01ID:ccS3E3GJ0489デフォルトの名無しさん (ワッチョイ 2679-qWVo)
2024/12/18(水) 18:25:51.62ID:U+/f/ac80 CがC++だったとしても変わらんでしょ
VSCodeはレンダリングの都合でWebルレームワークとjavascriptで作られてるからC/C++製エディタと比較して遅いというデメリットがある
VSCodeはレンダリングの都合でWebルレームワークとjavascriptで作られてるからC/C++製エディタと比較して遅いというデメリットがある
490デフォルトの名無しさん (ワッチョイ 66be-1w4P)
2024/12/18(水) 18:34:50.50ID:ccS3E3GJ0 c言語で文字列処理はクソ面倒でしょ
ライブラリの整備からやる必要がある上にコードがとっ散らかる
ライブラリの整備からやる必要がある上にコードがとっ散らかる
491デフォルトの名無しさん (ワッチョイ 2679-qWVo)
2024/12/18(水) 18:36:51.22ID:U+/f/ac80 Windowsの場合使用フォントに応じて描画幅を返すAPIに丸投げできるから大した手間にならないが
メモ帳の「右端で折り返す」相当を実装する場合右端のどこで切るかでその人センスが露になる
メモ帳の「右端で折り返す」相当を実装する場合右端のどこで切るかでその人センスが露になる
492デフォルトの名無しさん (ワッチョイ 2679-qWVo)
2024/12/18(水) 18:41:35.77ID:U+/f/ac80 >>480
何か誤解があるみたいだが開発言語にCを選ぶようなやつがそんなのを面倒に感じる事はないんだよ
何か誤解があるみたいだが開発言語にCを選ぶようなやつがそんなのを面倒に感じる事はないんだよ
493はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-aNNs)
2024/12/18(水) 22:35:54.78ID:w442kBzm0 アプリケーションを作るにあたって TCHAR が必要になる状況はそれほどない。
Unicode 対応をきちんとやるならそれとは別に ANSI 版も作るという必要性はないし、両方を作る必要性がないなら切り替えを意識する必要もないから。
最初から WCHAR で書けばよい。
ライブラリとしてまとめるならどちらにも対応したほうが良いこともあるかもしれんけど。
Unicode 対応をきちんとやるならそれとは別に ANSI 版も作るという必要性はないし、両方を作る必要性がないなら切り替えを意識する必要もないから。
最初から WCHAR で書けばよい。
ライブラリとしてまとめるならどちらにも対応したほうが良いこともあるかもしれんけど。
494デフォルトの名無しさん (ワッチョイ be63-Vy5I)
2024/12/18(水) 23:14:04.02ID:1nhczz8f0 テキストエディタ、アセンブラで作った奴いるだろう
ハゲてはいなかったと思う
ハゲてはいなかったと思う
495デフォルトの名無しさん (アウアウエー Sae2-N2kD)
2024/12/19(木) 15:05:41.21ID:p9TYuGiMa >>483
strlen("123あ67い0") == 12 // utf-8
strlen("123あ67い0") == 12 // utf-8
496デフォルトの名無しさん (ワッチョイ be63-Vy5I)
2024/12/19(木) 15:35:21.01ID:boHB/shj0 strcat()、実装大変そうだな
497デフォルトの名無しさん (ワッチョイ eaad-NYGQ)
2024/12/19(木) 18:03:52.50ID:KNZC4rFA0 UTF-8のバイト数ではなく文字列の長さを調べるソース
https://drive.google.com/drive/folders/10jgzKVUYPXQhC566bBmrqnnBLJI4pEbL
https://drive.google.com/drive/folders/10jgzKVUYPXQhC566bBmrqnnBLJI4pEbL
498デフォルトの名無しさん (ブーイモ MMbf-1w4P)
2024/12/19(木) 18:29:36.25ID:ByBpVqn8M499デフォルトの名無しさん (ワッチョイ eaad-NYGQ)
2024/12/19(木) 18:32:55.82ID:KNZC4rFA0500デフォルトの名無しさん (ワッチョイ 4a5b-SaU4)
2024/12/19(木) 18:34:44.41ID:hCGKCs/t0 👩🏽👩🏿👧🏻👧🏽
501デフォルトの名無しさん (ブーイモ MMbf-1w4P)
2024/12/19(木) 18:41:15.54ID:ByBpVqn8M■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 東京株式市場 インバウンド関連株が下落 中国政府の渡航自粛要請で [バイト歴50年★]
- 5:55:55.555
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 戦争は無くならないし殺人は起きるし女はレイプされるし子供は餓死するし
- 日経時間外、5万円割れ 垂直落下始まる [402859164]
- 高市さんに土下座してもらったら一発解決なのに何でやらないんだろ??
- 【悲報】男性人気アイドルグループJO1、中国公演中止wwwwwwwwwwwwwwwwwwwwwwwwwww
