C言語なら俺に聞け 164at TECH
C言語なら俺に聞け 164 - 暇つぶし2ch1:デフォルトの名無しさん
25/07/23 15:30:01.81 eCR5cXRr0.net
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
URLリンク(paiza.io)
URLリンク(ideone.com)
URLリンク(codepad.org)

C17
URLリンク(www.open-std.org)

C11
URLリンク(www.open-std.org)

C23 最新ドラフト
URLリンク(www.open-std.org)

C99
URLリンク(www.open-std.org)
URLリンク(kikakurui.com)

C FAQ 日本語訳
URLリンク(www.kouno.jp)

JPCERT C コーディングスタンダード
URLリンク(www.jpcert.or.jp)

※前スレ
C言語なら俺に聞け 163
スレリンク(tech板)
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

187:はちみつ餃子
25/11/26 10:42:02.61 ZGYu6bhA0.net
念のために仕様をよく読んで検討したら wchar_t が char の別名として定義されることは理屈の上では認められることを発見した。
そしてその上で文字列リテラルとワイド文字リテラルが異なる符号体系を持つということも可能ではある。
もしそういう処理系なら >>185 の事例は型が合った上で誤作動 (プログラマの想定と異なる動作) を引き起こすかもしれない。

実際にそういう処理系があるのかどうか知らんけど libc のドキュメント中で組み込みシステムではそういうのも妥当かもしれないという言及がある。
URLリンク(www.gnu.org)

188:デフォルトの名無しさん
25/11/26 11:37:21.77 g4n+mUAPa.net
>>186
VCで確認したら警告は出たがエラーではないので実行出来た上で誤作動(描かれた通りには動いている)
警告レベル替えればエラーにも出来るんだろうけど
文字列リテラルポインタからワイド文字列リテラルポインタへの自動キャスト(あるいはその逆のキャスト)以外のところにも影響出てエラーだらけになるかも
文字列リテラルポインタからワイド文字列リテラルポインタへの自動キャスト(あるいはその逆のキャスト)限定でエラーにならないかな

189:はちみつ餃子
25/11/26 15:23:02.27 ZGYu6bhA0.net
>>188
MSVC がそんな馬鹿げた仕組みとは驚きだな。
合わない型 (本来は暗黙の型変換も認められない型) は一律にエラーになるべきだけれど、とりあえず自分のコードで型が合わないケースをエラーにしたいなら
#pragma warning(error : 4133)
とするくらいが落としどころじゃないかと思う。


2から表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch