!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:ZrsCjURC02デフォルトの名無しさん (アウアウエー Sa02-hIhh)
2024/07/16(火) 23:09:40.55ID:zAWhziLLa O2
4デフォルトの名無しさん (ワッチョイ b132-HYxY)
2024/07/17(水) 02:16:43.37ID:rcKIBlXh05デフォルトの名無しさん (スプッッ Sda5-cSaw)
2024/07/19(金) 12:09:58.52ID:7xb1gIFBd6デフォルトの名無しさん (ワッチョイ be2d-Xdjv)
2024/08/13(火) 10:33:10.70ID:0tpsfiHy0 C99以降のC言語では、main関数が正常に終了した場合、
明示的にreturn 0;を記述しなくても、コンパイラが自動的にreturn 0;を
挿入することが規定されています。
これにより、main関数の最後にreturn文を省略することが可能になりました。
これまじ?
いや省略できるのは知ってたけど
書かなくても言語仕様的に正しいってことなのでは
明示的にreturn 0;を記述しなくても、コンパイラが自動的にreturn 0;を
挿入することが規定されています。
これにより、main関数の最後にreturn文を省略することが可能になりました。
これまじ?
いや省略できるのは知ってたけど
書かなくても言語仕様的に正しいってことなのでは
7デフォルトの名無しさん (ワッチョイ 2e2a-Fna2)
2024/08/13(火) 10:54:13.55ID:rWI8dcbL08デフォルトの名無しさん (ワッチョイ c25c-PXPr)
2024/08/13(火) 11:02:03.46ID:zgXpATPx0 C++の方は最初からそうじゃなかったっけ?
9デフォルトの名無しさん (ワッチョイ 2e63-mJNK)
2024/08/13(火) 11:04:04.36ID:iZOfVN0Y0 ところで、main以外はどうなんだろう
mainだけ特別って事なのかな?OSとも絡むし
mainだけ特別って事なのかな?OSとも絡むし
10はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-6HV9)
2024/08/13(火) 11:58:17.89ID:ZDyvNux60 >>9
retunr 0; が補われるルールは main だけの特別扱いだけど……。
関連する変な規則として C では関数の返却値の型が void ではないときに return せずに } に到達、かつ、関数の呼び出し元が値を使おうとするのは未定義ということになってる。
逆に言えば } に到達するだけなら OK ってことね。
C++ だと関数の返却値の型が void でないときに return せずに } に到達するだけで駄目という違いがある。
retunr 0; が補われるルールは main だけの特別扱いだけど……。
関連する変な規則として C では関数の返却値の型が void ではないときに return せずに } に到達、かつ、関数の呼び出し元が値を使おうとするのは未定義ということになってる。
逆に言えば } に到達するだけなら OK ってことね。
C++ だと関数の返却値の型が void でないときに return せずに } に到達するだけで駄目という違いがある。
11デフォルトの名無しさん (ワッチョイ 6e83-2R4J)
2024/08/13(火) 20:38:38.66ID:Yor/eSuX0 >>9
値を返さない関数ならreturnは省略できる
値を返す関数だと戻り値が不定になる
(多分コンパイルでwarningが出るか最近のではerrorになるだろうな)
そのくらい一度も試したことないのか?
値を返さない関数ならreturnは省略できる
値を返す関数だと戻り値が不定になる
(多分コンパイルでwarningが出るか最近のではerrorになるだろうな)
そのくらい一度も試したことないのか?
12デフォルトの名無しさん (アウアウエー Sa4a-ZlnX)
2024/08/14(水) 08:45:20.95ID:92pG5tQ9a CPUが最後に処理したアキュムレータの内容が
戻り値として有効になってるケースが多い
違う実装があったら教えてくれ
戻り値として有効になってるケースが多い
違う実装があったら教えてくれ
13デフォルトの名無しさん (ワッチョイ 65c8-tndV)
2024/08/14(水) 09:29:38.29ID:o5Tm+MCf0 戻さないで自動的に挿入されるのならvoidでいいやん
14デフォルトの名無しさん (ワッチョイ 6e83-2R4J)
2024/08/14(水) 16:14:28.35ID:91FNum+4015デフォルトの名無しさん (ワッチョイ 42ad-ZlnX)
2024/08/17(土) 12:40:14.00ID:P2kCpMMm016はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-6HV9)
2024/08/17(土) 17:19:02.88ID:w43wc/GB0 >>12
最適化が絡むとなんでも起こる。
GCC でやってみた。
https://godbolt.org/z/rzoEqdYWz
インライン化と合わさったときはおそらく
「なんでもいいなら事前に適当な定数 (この場合はゼロ) に置き換えてええやろ」ということが起こってる。
インライン化を抑止したらそのときに入ってたでたらめな値になる。
最適化が絡むとなんでも起こる。
GCC でやってみた。
https://godbolt.org/z/rzoEqdYWz
インライン化と合わさったときはおそらく
「なんでもいいなら事前に適当な定数 (この場合はゼロ) に置き換えてええやろ」ということが起こってる。
インライン化を抑止したらそのときに入ってたでたらめな値になる。
17デフォルトの名無しさん (ワッチョイ 9f2a-0AGY)
2024/08/18(日) 12:47:05.86ID:z2E2wJpW018デフォルトの名無しさん (ワッチョイ 7fad-9uNt)
2024/08/19(月) 14:50:35.14ID:2a6IfSVu0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
