!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.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言語なら俺に聞け 155
https://mevius.5ch.net/test/read.cgi/tech/1589120427/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 156
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9bb7-/QqT)
2020/09/28(月) 14:41:30.00ID:QxfbhGyV02はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 123e-mHP9)
2020/09/28(月) 17:15:25.66ID:VnC2vdM30 2get
https://mevius.5ch.net/test/read.cgi/tech/1589120427/979
スタートアップを差し替えられるのは MS-DOS 時代の bcc または msc6(msvc6 とは違います!!!) くらいしか思い浮かばないのです…
スタートアップを差し替えられるのは MS-DOS 時代の bcc または msc6(msvc6 とは違います!!!) くらいしか思い浮かばないのです…
4デフォルトの名無しさん (ワッチョイ 12ad-4LA+)
2020/09/29(火) 04:43:56.48ID:EnsnwIhp0 リンカでリンクすれば良いだけでは?
5デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/29(火) 08:52:38.84ID:Pb7kfi6i0 gccなんかld -Tでどうにでもできるやん
6デフォルトの名無しさん (ワッチョイ b37c-N+m6)
2020/10/04(日) 09:52:20.51ID:sdY50qgq0 ttps://ideone.com/FVBJ8Q
最後の結果が納得いかないのですが
こういうものなのでしょうか?
最後の結果が納得いかないのですが
こういうものなのでしょうか?
7デフォルトの名無しさん (ワッチョイ ffad-EdVv)
2020/10/04(日) 13:02:04.66ID:4IGvE5yV0 >>6
内部で2進数になっててそれを10進数に変換しているので仕方がない。
完全な形でなんとかしたい場合は内部で10進数で保持したり計算したりしてくれるライブラリを使ってそれ用にプログラムを作るしかない。
自分で工夫してやる場合は整数で計算後に割るとかだな。
内部で2進数になっててそれを10進数に変換しているので仕方がない。
完全な形でなんとかしたい場合は内部で10進数で保持したり計算したりしてくれるライブラリを使ってそれ用にプログラムを作るしかない。
自分で工夫してやる場合は整数で計算後に割るとかだな。
8デフォルトの名無しさん (エムゾネ FF1f-gW4a)
2020/10/04(日) 13:05:33.55ID:jSKQ3LlrF %f って四捨五入してる訳じゃないんです?
9デフォルトの名無しさん (ブーイモ MMe7-D180)
2020/10/04(日) 14:51:56.18ID:cq4wRGXQM 切り捨てじゃない?
10デフォルトの名無しさん (ワッチョイ 534e-ylWU)
2020/10/04(日) 15:38:21.66ID:LHD68+0w0 そこでCOBOLですよ。
やはり初心者にはCOBOL
やはり初心者にはCOBOL
11デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/04(日) 17:44:38.81ID:OhT0M+ch0 void型の値を変数に格納するにはどうすればいいですか?
int main(void) { (void)5; }
というコードではコンパイル時にてエラーが出ないため、void型の値はC言語において定義されたものだと思いました。
でもそのvoid値を格納するための変数を以下のように宣言すると、エラーが出てしまいます。
int main(void) { void hoge; }
また、void型が占有するメモリサイズを調べる前段階として、printf関数に渡す前に、以下のコードを実行してみてもエラーが出ます。
int main(void) { sizeof ((void)5); }
どうすれば、void型の値を変数に格納できますか?
なお、C言語環境を構築するのが面倒そうなので、構築が簡単なVisualC++環境で未だにC言語の勉強してます。
int main(void) { (void)5; }
というコードではコンパイル時にてエラーが出ないため、void型の値はC言語において定義されたものだと思いました。
でもそのvoid値を格納するための変数を以下のように宣言すると、エラーが出てしまいます。
int main(void) { void hoge; }
また、void型が占有するメモリサイズを調べる前段階として、printf関数に渡す前に、以下のコードを実行してみてもエラーが出ます。
int main(void) { sizeof ((void)5); }
どうすれば、void型の値を変数に格納できますか?
なお、C言語環境を構築するのが面倒そうなので、構築が簡単なVisualC++環境で未だにC言語の勉強してます。
12はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/04(日) 18:06:44.78ID:hQVA1bdd0 >>8-9
JISX3010:2003 を確認してみたら 7.19.6.1 内に「適切な桁数へ値の丸めも行う」という記述は見つけた。
浮動小数点の扱いについてはいくつかの動作モデルが認められている旨が 5.2.4.2.2 にあり、
処理系がどれを選択したのかは float.h で定義されるいくつかのマクロでわかることになってる。
数学的なめんどい理屈があって、どのモデルであったとしても
十進数として見たときには切り捨てとも四捨五入とも言えないと思う。
JISX3010:2003 を確認してみたら 7.19.6.1 内に「適切な桁数へ値の丸めも行う」という記述は見つけた。
浮動小数点の扱いについてはいくつかの動作モデルが認められている旨が 5.2.4.2.2 にあり、
処理系がどれを選択したのかは float.h で定義されるいくつかのマクロでわかることになってる。
数学的なめんどい理屈があって、どのモデルであったとしても
十進数として見たときには切り捨てとも四捨五入とも言えないと思う。
13はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/04(日) 18:12:48.79ID:hQVA1bdd0 >>11
JIS3010:2003 の 6.3.2.2 にこういう規定が書かれている。
> (型 void をもつ式) の (存在しない) 値は、いかなる方法でも使ってはならない。
> ボイド式には、暗黙の型変換も明示的な型変換 (void への型変換を除く。) も適用してはならない。
> 他の型の式をボイド式として評価する場合、その値又は指示子は捨てる。
> (ボイド式は副作用のために評価する。)
つまり void は値を捨てるという意図を便宜的に型として表したものであって、
void 型にした時点でその値を利用しないという表明になる。
JIS3010:2003 の 6.3.2.2 にこういう規定が書かれている。
> (型 void をもつ式) の (存在しない) 値は、いかなる方法でも使ってはならない。
> ボイド式には、暗黙の型変換も明示的な型変換 (void への型変換を除く。) も適用してはならない。
> 他の型の式をボイド式として評価する場合、その値又は指示子は捨てる。
> (ボイド式は副作用のために評価する。)
つまり void は値を捨てるという意図を便宜的に型として表したものであって、
void 型にした時点でその値を利用しないという表明になる。
14デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/04(日) 18:36:30.14ID:OhT0M+ch0 >>13
・microsoftなどの処理系開発者には、プログラマがコード上でvoid型の型も値も利用できない仕様となるように求める。
・プログラマがvoid型への明示的な型変換を求めた場合は、目的の値も型も何も返さないが、C言語の裏側でゴニョゴニョと何か分からない用途に利用される
ということですか?
・microsoftなどの処理系開発者には、プログラマがコード上でvoid型の型も値も利用できない仕様となるように求める。
・プログラマがvoid型への明示的な型変換を求めた場合は、目的の値も型も何も返さないが、C言語の裏側でゴニョゴニョと何か分からない用途に利用される
ということですか?
15デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/04(日) 19:40:33.20ID:OhT0M+ch0 それとも、void型とは、データ型というよりも、コンパイラに対して「ここでは値は得られませんよ」と教える機能を与えられた式ですか?
関数定義の引数や返り値で void が指定された場合は、「引数や返り値は得られませんよ」とコンパイラに教えてあげてるのと同様、
(void)5 という式の評価結果であるボイド式では、「この式を評価しても値は得られませんよ」と裏でコンパイラに教えてあげてるだけですか?
そして、そのJISのいう「副作用」というのは、「値は得られませんよ」とコンパイラに教えてあげることを指してますか?
また、キャスト演算子の引数や、関数の引数や返り値で指定できるので、(型のように使用されるから型じゃないけど)便宜上、void型と呼ばれているだけですか?
関数定義の引数や返り値で void が指定された場合は、「引数や返り値は得られませんよ」とコンパイラに教えてあげてるのと同様、
(void)5 という式の評価結果であるボイド式では、「この式を評価しても値は得られませんよ」と裏でコンパイラに教えてあげてるだけですか?
そして、そのJISのいう「副作用」というのは、「値は得られませんよ」とコンパイラに教えてあげることを指してますか?
また、キャスト演算子の引数や、関数の引数や返り値で指定できるので、(型のように使用されるから型じゃないけど)便宜上、void型と呼ばれているだけですか?
16はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/04(日) 19:42:41.40ID:hQVA1bdd0 >>14
何かの関数を呼び出した場合、たとえば printf("hello, world"); と書いたときに
printf も返却値はある (出力したバイト数を返す) が返却値を受け取ることをするのを忘れたのか
返却値を処理する意志がないのか、このコードからは読み取れない。
だからそういうときに (void)printf("hello, world"); と書くことで値を捨てることを明確にする、というような使い方が出来る。
プログラムの検査をするある種のソフト (いわゆる lint) は返却値を受け取っていない状態を
「疑わしい」として検出することがある。
プログラマがどういう意図を持っているかまでは機械的にチェックできないから、
何か意図があるのなら明記してくれやってわけ。
https://docs.oracle.com/cd/E19205-01/820-1209/bjaim/index.html
まあ言語仕様上は書いても書かなくても何の差もないし、
書かないことの方が多いと思うんだけど、
プログラマの意図を表明するのに使えるコメントみたいなものだという感覚でいればいいと思う。
何かの関数を呼び出した場合、たとえば printf("hello, world"); と書いたときに
printf も返却値はある (出力したバイト数を返す) が返却値を受け取ることをするのを忘れたのか
返却値を処理する意志がないのか、このコードからは読み取れない。
だからそういうときに (void)printf("hello, world"); と書くことで値を捨てることを明確にする、というような使い方が出来る。
プログラムの検査をするある種のソフト (いわゆる lint) は返却値を受け取っていない状態を
「疑わしい」として検出することがある。
プログラマがどういう意図を持っているかまでは機械的にチェックできないから、
何か意図があるのなら明記してくれやってわけ。
https://docs.oracle.com/cd/E19205-01/820-1209/bjaim/index.html
まあ言語仕様上は書いても書かなくても何の差もないし、
書かないことの方が多いと思うんだけど、
プログラマの意図を表明するのに使えるコメントみたいなものだという感覚でいればいいと思う。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 地震 [Hitzeschleier★]
- 【動画】ユダヤ人「アフガニスタンのパシュトゥーン人はイスラエルの失われた10支族の子孫」_パシュトゥーン人「・・・」 [979264442]
- 親父が同級生(クラスの真面目委員長JK)の母親と結婚した。ウソじゃない。事実なんだ
- (*´ω`*)本日のお夜食は──
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
- 酒飲んで分かった事
