!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
レス数が1000を超えています。これ以上書き込みはできません。
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
まあ言語仕様上は書いても書かなくても何の差もないし、
書かないことの方が多いと思うんだけど、
プログラマの意図を表明するのに使えるコメントみたいなものだという感覚でいればいいと思う。
17デフォルトの名無しさん (ワッチョイ ffad-EdVv)
2020/10/04(日) 19:47:21.47ID:4IGvE5yV0 以前gccで void *p; のように宣言されている p に p++ やってるのがコンパイルエラーにならなくて驚いた事がある。
gccの拡張なのな。
gccの拡張なのな。
18はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/04(日) 19:47:37.95ID:hQVA1bdd0 >>15
> そのJISのいう「副作用」というのは、
引数 (ときには 0 個) を与えて返却値が返ってくるというのが関数としての「作用」で、
それ以外に状態に影響を与えることは全て副作用。
たとえば printf が文字を表示したりするのも副作用。
ってなわけで、「ボイド式は副作用のために評価する。」というのは
返却値はどうでもよくて計算の過程で生じさせる副作用の方に意味があるような
式だよ〜〜ってこと。
> そのJISのいう「副作用」というのは、
引数 (ときには 0 個) を与えて返却値が返ってくるというのが関数としての「作用」で、
それ以外に状態に影響を与えることは全て副作用。
たとえば printf が文字を表示したりするのも副作用。
ってなわけで、「ボイド式は副作用のために評価する。」というのは
返却値はどうでもよくて計算の過程で生じさせる副作用の方に意味があるような
式だよ〜〜ってこと。
19はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/04(日) 19:52:24.09ID:hQVA1bdd0 >>17
gcc だと sizeof(void) が 1 を返すのにもびっくりする。
C++ だと SFINAE の中で sizeof を使ったトリックを使うこともあるんだが、
g++ ではつじつまを合わせるためか変則的な挙動があってよくわからんことになってる。
gcc だと sizeof(void) が 1 を返すのにもびっくりする。
C++ だと SFINAE の中で sizeof を使ったトリックを使うこともあるんだが、
g++ ではつじつまを合わせるためか変則的な挙動があってよくわからんことになってる。
>>16
>返却値を処理する意志がないのか、このコードからは読み取れない。
>だからそういうときに (void)printf("hello, world"); と書くことで値を捨てることを明確にする、というような使い方が出来る。
大昔に lint を試したことがあって、それは lint 用の書き方とばかり思っていました…
>返却値を処理する意志がないのか、このコードからは読み取れない。
>だからそういうときに (void)printf("hello, world"); と書くことで値を捨てることを明確にする、というような使い方が出来る。
大昔に lint を試したことがあって、それは lint 用の書き方とばかり思っていました…
21デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/04(日) 20:50:24.88ID:OhT0M+ch0 知りたいことと回答が噛み合わないので、よくわからなかったです。
知りたいことは、(void)printf("hello, world"); が、なぜ「値を捨てることを明確にする」という結果になるかということです。
また、副作用についての言葉の意味を質問してるのではなく、void型においては具体的に何の副作用が起きてるのかを知りたかったです。
知りたいことは、(void)printf("hello, world"); が、なぜ「値を捨てることを明確にする」という結果になるかということです。
また、副作用についての言葉の意味を質問してるのではなく、void型においては具体的に何の副作用が起きてるのかを知りたかったです。
22デフォルトの名無しさん (ワッチョイ 6fe9-Kk5w)
2020/10/04(日) 21:09:12.86ID:kIcOnbZ00 >>21
(void)... という記述は値を捨てることを明示する以外に意味が無いから、かな。
「void型において副作用が起きる」などということは無い。副作用を起こす可能性があるのは
(void)キャスト対象の式のほうで、その副作用は(void)の有無に関わらず生じる。
正確なところを知りたいなら自分で規格読んだらいいんじゃないの?
(void)... という記述は値を捨てることを明示する以外に意味が無いから、かな。
「void型において副作用が起きる」などということは無い。副作用を起こす可能性があるのは
(void)キャスト対象の式のほうで、その副作用は(void)の有無に関わらず生じる。
正確なところを知りたいなら自分で規格読んだらいいんじゃないの?
23はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/04(日) 21:13:07.48ID:hQVA1bdd0 >>21
> なぜ「値を捨てることを明確にする」という結果になるか
void 型になった以上はその値は使うことができないから。
わざわざ使えなくしているんだから、
使い忘れたんじゃなくて捨ててるんだなとしか解釈のしようがない。
> 具体的に何の副作用が
文字を表示するという例では不足?
値を返す以外に起こることは全て副作用なので、
変数に書き込むこともループする (ことによって時間を消費する) ことも全て副作用だよ。
> なぜ「値を捨てることを明確にする」という結果になるか
void 型になった以上はその値は使うことができないから。
わざわざ使えなくしているんだから、
使い忘れたんじゃなくて捨ててるんだなとしか解釈のしようがない。
> 具体的に何の副作用が
文字を表示するという例では不足?
値を返す以外に起こることは全て副作用なので、
変数に書き込むこともループする (ことによって時間を消費する) ことも全て副作用だよ。
24はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/04(日) 21:14:38.31ID:hQVA1bdd025はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/04(日) 21:26:28.40ID:hQVA1bdd0 >>15
void が型か型じゃないかということになると仕様上の理屈では型としか言いようがない。
ただし、 void 型な値は存在しない。
JIS の言葉で言えば「void 型の値の集合は空とする」ということになっている。
void へ型変換するということは非存在に変換されるので値として利用不可能になる。
void が型か型じゃないかということになると仕様上の理屈では型としか言いようがない。
ただし、 void 型な値は存在しない。
JIS の言葉で言えば「void 型の値の集合は空とする」ということになっている。
void へ型変換するということは非存在に変換されるので値として利用不可能になる。
26デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/04(日) 21:49:13.97ID:OhT0M+ch0 >>22
>(void)... という記述は値を捨てることを明示する以外に意味が無いから、かな。
今のところvoidの定義に「値を捨てることを明示する」という記述は見つけられなかったです。
>「void型において副作用が起きる」などということは無い。副作用を起こす可能性があるのは
言葉足らずでした。もちろん、void型の式という意味です。
>(void)キャスト対象の式のほうで、その副作用は(void)の有無に関わらず生じる。
繰り返しになりますが、void型の式におけるその具体的な副作用を質問していました。
その他のレスは重複するので省略します。
>(void)... という記述は値を捨てることを明示する以外に意味が無いから、かな。
今のところvoidの定義に「値を捨てることを明示する」という記述は見つけられなかったです。
>「void型において副作用が起きる」などということは無い。副作用を起こす可能性があるのは
言葉足らずでした。もちろん、void型の式という意味です。
>(void)キャスト対象の式のほうで、その副作用は(void)の有無に関わらず生じる。
繰り返しになりますが、void型の式におけるその具体的な副作用を質問していました。
その他のレスは重複するので省略します。
27デフォルトの名無しさん (ワッチョイ c3da-d/Xm)
2020/10/04(日) 21:50:10.81ID:FWH29Af20 voidそのものは実体を持たないがポインタを派生することは出来る
というかポインタのためだけに存在しているようなもの
というかポインタのためだけに存在しているようなもの
28デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/04(日) 21:55:51.38ID:OhT0M+ch0 たぶん皆さんのいう情報源は、Cの中級者向けの教科書として有名な「Cクイックリファレンス第二版」だと思います。
この本に「キャスト演算は、関数の戻り値のような、式の値を明示的に棄却する」という一文があります。
これ以上の詳しい説明がないので、知りたかったです。
この本に「キャスト演算は、関数の戻り値のような、式の値を明示的に棄却する」という一文があります。
これ以上の詳しい説明がないので、知りたかったです。
29はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/04(日) 21:58:09.05ID:hQVA1bdd0 >>26
値を返す以外に起きることは全て副作用なので具体的にと言っても困るんやが……。
値を返す以外に起きることは全て副作用なので具体的にと言っても困るんやが……。
30デフォルトの名無しさん (ワッチョイ fff9-tG2C)
2020/10/04(日) 22:22:22.77ID:l2oD/9jr0 >>26
プログラミング界隈では、「副作用」という単語は一般の
https://www.weblio.jp/content/%E5%89%AF%E4%BD%9C%E7%94%A8
という意味ではなく、もっと狭い
https://www.weblio.jp/content/%E5%89%AF%E4%BD%9C%E7%94%A8+%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%29
という意味があるのよ
「用語」ってやつね
https://www.weblio.jp/content/%E7%94%A8%E8%AA%9E
プログラミング界隈では、「副作用」という単語は一般の
https://www.weblio.jp/content/%E5%89%AF%E4%BD%9C%E7%94%A8
という意味ではなく、もっと狭い
https://www.weblio.jp/content/%E5%89%AF%E4%BD%9C%E7%94%A8+%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%29
という意味があるのよ
「用語」ってやつね
https://www.weblio.jp/content/%E7%94%A8%E8%AA%9E
31デフォルトの名無しさん (ワッチョイ e3da-2+Dn)
2020/10/04(日) 23:15:55.36ID:+dLgY+eW0 ISO/IEC 9899:201x Committee Draft (N1570)
6.3.2.2 void
1
The (nonexistent) value of a void expression (an expression that has type void) shall not be used in any way, and implicit or explicit conversions (except to void) shall not be applied to such an expression.
If an expression of any other type is evaluated as a void expression, its value or designator is discarded. (A void expression is evaluated for its side effects.)
これ以上何か言うべきことある?
6.3.2.2 void
1
The (nonexistent) value of a void expression (an expression that has type void) shall not be used in any way, and implicit or explicit conversions (except to void) shall not be applied to such an expression.
If an expression of any other type is evaluated as a void expression, its value or designator is discarded. (A void expression is evaluated for its side effects.)
これ以上何か言うべきことある?
32デフォルトの名無しさん (ワッチョイ 6fe9-Kk5w)
2020/10/04(日) 23:48:26.18ID:kIcOnbZ00 >>26
void の定義は関係ないだろう。コメントで「戻り値は捨てる」と添えるのと同じ。
もちろん「コメント」の定義にも戻り値を捨てるなどという記述は無いが、それは
コメントがその意味を持ちうることを否定しない。
void の定義は関係ないだろう。コメントで「戻り値は捨てる」と添えるのと同じ。
もちろん「コメント」の定義にも戻り値を捨てるなどという記述は無いが、それは
コメントがその意味を持ちうることを否定しない。
33デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 05:39:47.11ID:mH/ByF4E0 >>31
英語苦手ですが、それでなんとなく分かりました。
貼っていただいたJIS規格の文章では、一行目の「a void expression」の部分と2行目の「its」の部分の訳が、翻訳する過程などで抜け落ちてたんですね。
それにより、異なる解釈をしてしまっていました。
元々の英語版を読むと、「その値又は指示子は捨てる」が、この場合のvoid式による具体的な副作用ですね。
また、以下のようなことをすればボイド式でも繰り返し利用はできますが、
(void)(void)(void)(void)(void)(void)3;
「ボイド式は利用されなくともコンパイラが警告を出さない」ということなんですね。
そして、関数呼び出し式に(void)を付ける意味は、(返り値を返す)scanf関数などの返り値をvoid式へ変換することで、
いわば、void式を返す(コンパイラが警告を出さない)関数に偽装してるということですね。
英語苦手ですが、それでなんとなく分かりました。
貼っていただいたJIS規格の文章では、一行目の「a void expression」の部分と2行目の「its」の部分の訳が、翻訳する過程などで抜け落ちてたんですね。
それにより、異なる解釈をしてしまっていました。
元々の英語版を読むと、「その値又は指示子は捨てる」が、この場合のvoid式による具体的な副作用ですね。
また、以下のようなことをすればボイド式でも繰り返し利用はできますが、
(void)(void)(void)(void)(void)(void)3;
「ボイド式は利用されなくともコンパイラが警告を出さない」ということなんですね。
そして、関数呼び出し式に(void)を付ける意味は、(返り値を返す)scanf関数などの返り値をvoid式へ変換することで、
いわば、void式を返す(コンパイラが警告を出さない)関数に偽装してるということですね。
34デフォルトの名無しさん (ワッチョイ e3da-2+Dn)
2020/10/05(月) 06:59:22.20ID:pDFHvNi00 >>33
> 元々の英語版を読むと、「その値又は指示子は捨てる」が、この場合のvoid式による具体的な副作用ですね。
ちげーよ
副作用という単語を勝手な意味に解釈するんじゃねぇよ
上でも言われてるだろうが
5.1.2.3 Program execution
2
Accessing a volatile object, modifying an object, modifying a file, or calling a function that does any of those operations are all _side effects_, which are changes in the state of the execution environment.
_Evaluation_ of an expression in general includes both value computations and initiation of side effects.
Value computation for an lvalue expression includes determining the identity of the designated object.
void型のexpressionでは評価された値(value)を使うことはないが副作用(side effects)は生じうるから, 副作用を発生させるために(void型のexpressionを)評価(evaluate)する。
void型にキャストすることによって発生する副作用など存在しない。
> 元々の英語版を読むと、「その値又は指示子は捨てる」が、この場合のvoid式による具体的な副作用ですね。
ちげーよ
副作用という単語を勝手な意味に解釈するんじゃねぇよ
上でも言われてるだろうが
5.1.2.3 Program execution
2
Accessing a volatile object, modifying an object, modifying a file, or calling a function that does any of those operations are all _side effects_, which are changes in the state of the execution environment.
_Evaluation_ of an expression in general includes both value computations and initiation of side effects.
Value computation for an lvalue expression includes determining the identity of the designated object.
void型のexpressionでは評価された値(value)を使うことはないが副作用(side effects)は生じうるから, 副作用を発生させるために(void型のexpressionを)評価(evaluate)する。
void型にキャストすることによって発生する副作用など存在しない。
35デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 07:17:56.23ID:mH/ByF4E0 >>34
>void型にキャストすることによって発生する副作用など存在しない。
その英文の説明では、void型にキャストすることも副作用であるという内容が書かれてますね。なので副作用は存在します。
「Accessing a volatile object, modifying an object, modifying a file, or calling a function that does any of those operations are all _side effects_, which are changes in the state of the execution environment.」の部分ですね。
ただ、void型の件では、それ以外の副作用も起きうるということですか?了解しました。
>void型にキャストすることによって発生する副作用など存在しない。
その英文の説明では、void型にキャストすることも副作用であるという内容が書かれてますね。なので副作用は存在します。
「Accessing a volatile object, modifying an object, modifying a file, or calling a function that does any of those operations are all _side effects_, which are changes in the state of the execution environment.」の部分ですね。
ただ、void型の件では、それ以外の副作用も起きうるということですか?了解しました。
36デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 07:22:14.94ID:mH/ByF4E0 あともう一つ確認したいことがあります。
(関数定義の返り値にvoidが指定されている)abort関数などは、実際にvoid式を返し、それをvoid式と呼んでますか?
それとも、評価されても何も返さない状態を指してvoid式と言ってるだけですか?
例えば「;」のみが記述された行があったとします。
もしも、何も返さない状態を指してvoid式と言うのなら、この行を評価すると何もない状態なのでvoid式となるでしょう。
一方、実際にvoid型の式があるのを指してvoid式というのなら、この行にはvoid型の式は無いので、void式ではありません。
どちらですか?
(関数定義の返り値にvoidが指定されている)abort関数などは、実際にvoid式を返し、それをvoid式と呼んでますか?
それとも、評価されても何も返さない状態を指してvoid式と言ってるだけですか?
例えば「;」のみが記述された行があったとします。
もしも、何も返さない状態を指してvoid式と言うのなら、この行を評価すると何もない状態なのでvoid式となるでしょう。
一方、実際にvoid型の式があるのを指してvoid式というのなら、この行にはvoid型の式は無いので、void式ではありません。
どちらですか?
37デフォルトの名無しさん (ワッチョイ e3da-2+Dn)
2020/10/05(月) 07:24:46.13ID:pDFHvNi00 >>35
> void型にキャストすることも副作用であるという内容が書かれてます
そんなことは書かれていない。
void型キャストは実行環境に変化を与えない(which are changes in the state of the execution environment. に該当しない)。
並べられている例にも当てはまるものはない。
> void型にキャストすることも副作用であるという内容が書かれてます
そんなことは書かれていない。
void型キャストは実行環境に変化を与えない(which are changes in the state of the execution environment. に該当しない)。
並べられている例にも当てはまるものはない。
38デフォルトの名無しさん (ワッチョイ 7f52-w3sw)
2020/10/05(月) 07:32:22.64ID:pbRvW+EE0 >>36
;のみが書かれている行は、そもそも「式」ではなく「文」だ
;のみが書かれている行は、そもそも「式」ではなく「文」だ
39デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 07:44:58.94ID:mH/ByF4E0 >>38
まあそりゃそうですけど、「;」の行は、式が省略されてるということですよね。
もしも何もない状態を指してvoid式というなら、この行に含まれる省略された式は、何もない状態なのでvoid式となります。
他方、実際にvoid型の式があるのを指して(以下略
どちらですか?
まあそりゃそうですけど、「;」の行は、式が省略されてるということですよね。
もしも何もない状態を指してvoid式というなら、この行に含まれる省略された式は、何もない状態なのでvoid式となります。
他方、実際にvoid型の式があるのを指して(以下略
どちらですか?
40デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 07:49:51.66ID:mH/ByF4E0 >>37
例えば、
「x = 9+2;」という行において、9+2の評価が実行環境に影響を与えることはまず不可避だけど、この時点では副作用とは呼ばないということですか?
11が変数xに代入された時点において、副作用と呼ぶということですか?
例えば、
「x = 9+2;」という行において、9+2の評価が実行環境に影響を与えることはまず不可避だけど、この時点では副作用とは呼ばないということですか?
11が変数xに代入された時点において、副作用と呼ぶということですか?
41デフォルトの名無しさん (ワッチョイ e3da-2+Dn)
2020/10/05(月) 07:51:34.73ID:pDFHvNi00 >>40
その通りだ
その通りだ
42デフォルトの名無しさん (ワッチョイ e3da-2+Dn)
2020/10/05(月) 07:55:47.69ID:pDFHvNi00 正確に言えば代入式 a = b は右辺式の値と同じ値に評価され, 副作用として左辺式に右辺式の値を代入する。
43デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 08:13:16.22ID:mH/ByF4E044デフォルトの名無しさん (ワッチョイ 6fe9-Kk5w)
2020/10/05(月) 08:51:14.28ID:rsZM/N9j0 >>40,41
> 9+2の評価が実行環境に影響を与えることはまず不可避
ここまだおかしくね?コンパイル時に11に置き換えられちゃえば何の影響も与えないこともあるよね?
まぁ依然として用語をいいかげんに使ってると考えれば気にするべきところではないのかもしれないけど。
> 9+2の評価が実行環境に影響を与えることはまず不可避
ここまだおかしくね?コンパイル時に11に置き換えられちゃえば何の影響も与えないこともあるよね?
まぁ依然として用語をいいかげんに使ってると考えれば気にするべきところではないのかもしれないけど。
45デフォルトの名無しさん (ワッチョイ fff9-tG2C)
2020/10/05(月) 08:57:10.62ID:i1iukTTR0 「代入前に行われる暗黙的な型変換等の話」じゃないよ
代入演算子そのものの動作の話だよ
代入演算子=は、=の右辺の値を返すのが主作用
代入演算子そのものの動作の話だよ
代入演算子=は、=の右辺の値を返すのが主作用
46はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/05(月) 09:01:15.32ID:ajXL5jm+0 C の仕様は C の仕様で与えられる抽象機械の動作モデルとして定義される。
現実の実行環境とは関係ないんで、そこらへんは分けて考えて。
現実の実行環境とは関係ないんで、そこらへんは分けて考えて。
47デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 09:03:45.49ID:mH/ByF4E048デフォルトの名無しさん (ワッチョイ fff9-tG2C)
2020/10/05(月) 09:52:54.49ID:i1iukTTR0 いいえ、与えてます
値を与えなかったら代入できません
演算子が値を返すのは演算した後です
前の話じゃないんだってば
値を与えなかったら代入できません
演算子が値を返すのは演算した後です
前の話じゃないんだってば
49デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 10:15:19.36ID:mH/ByF4E0 その「与える」は「オペランドを演算子に与えている」という意味ですね。式中の文字に与えているわけではありません。
今は「式中の文字に、ある特定の値を与えること」という辞書的な言葉の話です。
今は「式中の文字に、ある特定の値を与えること」という辞書的な言葉の話です。
50デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 10:44:29.92ID:mH/ByF4E0 >>45
>代入演算子=は、=の右辺の値を返すのが主作用
C言語を勉強し始めたばかりなので、ついでに聞きたいことがあります。
代入演算子は両辺のオペランドを受け取る2項演算子ですよね。
2項演算子の代入演算子を、関数(※引数を返り値にするのが関数の主作用)みたく捉えると、主要素と副作用は以下のようになりませんか?
例「int x; x = 5.2;」
代入演算子の主作用……x と 5.2 の2つのオペランド(引数)を受け取り、(右辺の値ではなく)代入後の左辺値 x を返す
代入演算子の副作用……左辺に代入する
実際、以下を実行すると、a = 5.2 の評価として aの中身 5 が返され、それを渡された挙動をprintf関数がしてますよね。
int a;
printf("%d", a = 5.2); // 標準出力は 5
同様に、(a = 1) + (b = 5.2) 式の評価値は6ですので、printf関数も6を標準出力します。
int a, b;
printf("%d", (a = 1) + (b = 5.2)); // 標準出力は 6
>代入演算子=は、=の右辺の値を返すのが主作用
C言語を勉強し始めたばかりなので、ついでに聞きたいことがあります。
代入演算子は両辺のオペランドを受け取る2項演算子ですよね。
2項演算子の代入演算子を、関数(※引数を返り値にするのが関数の主作用)みたく捉えると、主要素と副作用は以下のようになりませんか?
例「int x; x = 5.2;」
代入演算子の主作用……x と 5.2 の2つのオペランド(引数)を受け取り、(右辺の値ではなく)代入後の左辺値 x を返す
代入演算子の副作用……左辺に代入する
実際、以下を実行すると、a = 5.2 の評価として aの中身 5 が返され、それを渡された挙動をprintf関数がしてますよね。
int a;
printf("%d", a = 5.2); // 標準出力は 5
同様に、(a = 1) + (b = 5.2) 式の評価値は6ですので、printf関数も6を標準出力します。
int a, b;
printf("%d", (a = 1) + (b = 5.2)); // 標準出力は 6
51デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 10:47:54.33ID:mH/ByF4E0 訂正
主要素と副作用は以下のようになりませんか? ⇒ 主作用と副作用は以下のようになりませんか?
主要素と副作用は以下のようになりませんか? ⇒ 主作用と副作用は以下のようになりませんか?
52デフォルトの名無しさん (ワッチョイ 6fe9-Kk5w)
2020/10/05(月) 12:36:55.93ID:rsZM/N9j0 「主作用」なんて定義不明なオレオレ用語を持ち出して同意を求められても好きにしろとしか言えないと思うんだ。
53デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 13:37:57.61ID:mH/ByF4E0 >>52
CQ出版社『トランジスタ技術』のC言語入門でも、「副作用」を説明するために、さも大事そうに赤字にして「主作用」と書かれてるけど、これはプログラミング用語じゃないんですか?
https://toragi.cqpub.co.jp/Portals/0/backnumber/2006/10/p179-180.pdf
『実践 F# 関数型プログラミング入門』のP86でも同様の記述があるようです。
「関数においては、引数に適用して何か返り値を得ることが主たる目的であり作用です。(中略)つまり主作用ではない作用を、総じて副作用と呼びます。」
CQ出版社『トランジスタ技術』のC言語入門でも、「副作用」を説明するために、さも大事そうに赤字にして「主作用」と書かれてるけど、これはプログラミング用語じゃないんですか?
https://toragi.cqpub.co.jp/Portals/0/backnumber/2006/10/p179-180.pdf
『実践 F# 関数型プログラミング入門』のP86でも同様の記述があるようです。
「関数においては、引数に適用して何か返り値を得ることが主たる目的であり作用です。(中略)つまり主作用ではない作用を、総じて副作用と呼びます。」
54デフォルトの名無しさん (ブーイモ MMe7-VUFZ)
2020/10/05(月) 14:17:03.04ID:mCK0VB/0M ググってもCQのページ以外では見つからんね。
副作用の説明のために使用するのは構わないと思うけど、通用する言葉じゃないから、使うならここではこういう意味ですよと言葉の定義を示す必要があるんじゃないの
副作用の説明のために使用するのは構わないと思うけど、通用する言葉じゃないから、使うならここではこういう意味ですよと言葉の定義を示す必要があるんじゃないの
55デフォルトの名無しさん (ワッチョイ 43e6-f0IH)
2020/10/05(月) 14:20:18.26ID:qDvF9d5o0 文脈として通じるのなら良いと思うよ
通じないやつも居るようだがそれなら黙ってればいい
通じないやつも居るようだがそれなら黙ってればいい
56デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 14:32:52.13ID:mH/ByF4E0 >>54
英語のwikipediaの方では日本語のwikiとは少し違う説明がされてた。
英語の副作用の項目では主作用もちゃんと触れられてて、日本語の副作用のページではこの説明が抜けてた。
https://en.wikipedia.org/wiki/Side_effect_(computer_science)
In computer science, an operation, function or expression is said to have a side effect if it modifies some state variable value(s) outside its local environment,
that is to say has an observable effect besides returning a value (the main effect) to the invoker of the operation.
訳(コンピュータサイエンスの分野では、操作、関数、または式が、そのローカル環境外で状態変数の値を変更する場合、つまり、操作の呼び出し元に値(主作用)を返す以外に観測可能な効果を持つ場合、副作用があると言われています)
英語のwikipediaの方では日本語のwikiとは少し違う説明がされてた。
英語の副作用の項目では主作用もちゃんと触れられてて、日本語の副作用のページではこの説明が抜けてた。
https://en.wikipedia.org/wiki/Side_effect_(computer_science)
In computer science, an operation, function or expression is said to have a side effect if it modifies some state variable value(s) outside its local environment,
that is to say has an observable effect besides returning a value (the main effect) to the invoker of the operation.
訳(コンピュータサイエンスの分野では、操作、関数、または式が、そのローカル環境外で状態変数の値を変更する場合、つまり、操作の呼び出し元に値(主作用)を返す以外に観測可能な効果を持つ場合、副作用があると言われています)
57デフォルトの名無しさん (ブーイモ MMe7-VUFZ)
2020/10/05(月) 14:38:34.04ID:mCK0VB/0M main effectという単語が使われている計算機科学のページは探したかい?
あくまでside effectの説明のためにその場限りで薬学から借りてきた言葉なんだよ
あくまでside effectの説明のためにその場限りで薬学から借りてきた言葉なんだよ
58デフォルトの名無しさん (ワッチョイ cfd2-Kk5w)
2020/10/05(月) 14:40:08.47ID:+Vcq4jVF0 ttps://img.dailyportalz.jp/1615/8944/8199/45.jpg
59はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-tG2C)
2020/10/05(月) 15:06:46.81ID:ajXL5jm+0 >>53
少なくとも C の仕様の説明には主作用という言葉は現れない。
C での副作用の説明はこうなっている。
> ボラタイルオブジェクトへのアクセス、オブジェクトの変更、ファイルの変更、
> 又はこれらのいずれかの操作を行う関数の呼出しは、すべて副作用 (side effect) と呼び、
> 実行環境の状態に変化を生じる。 式の評価は副作用を引き起こしてもよい。
何かと対比して「副」と付けているわけじゃないんだよ。
分野によっては主作用 (作用) という言葉が使われることもあるだろうが、
関数型の世界でも applicate の訳語として「作用」とあてられている場合があって、
main effect と side effect で対応付けられているとは限らない。
要するに
・ 用語の正確な意味は各分野の定義による
・ C では主作用とは言わない
逆に言えば正確でなくてよいふんわりした説明ならいいかげんに用語を使ってもいいが、
C の仕様を説明するにあたっては主作用という言葉が適切とは言えないかな、
という話。
少なくとも C の仕様の説明には主作用という言葉は現れない。
C での副作用の説明はこうなっている。
> ボラタイルオブジェクトへのアクセス、オブジェクトの変更、ファイルの変更、
> 又はこれらのいずれかの操作を行う関数の呼出しは、すべて副作用 (side effect) と呼び、
> 実行環境の状態に変化を生じる。 式の評価は副作用を引き起こしてもよい。
何かと対比して「副」と付けているわけじゃないんだよ。
分野によっては主作用 (作用) という言葉が使われることもあるだろうが、
関数型の世界でも applicate の訳語として「作用」とあてられている場合があって、
main effect と side effect で対応付けられているとは限らない。
要するに
・ 用語の正確な意味は各分野の定義による
・ C では主作用とは言わない
逆に言えば正確でなくてよいふんわりした説明ならいいかげんに用語を使ってもいいが、
C の仕様を説明するにあたっては主作用という言葉が適切とは言えないかな、
という話。
60デフォルトの名無しさん (ワッチョイ d32c-IT45)
2020/10/05(月) 15:16:14.49ID:z7kgQPv30 f( ) { x( ); }
例えば副作用は、関数x 内で、x終了後にも保持されるもの、
つまり、xの外部にあるものの状態を変えること
x内で、ローカル変数を作って消すのは、副作用ではない
例えば副作用は、関数x 内で、x終了後にも保持されるもの、
つまり、xの外部にあるものの状態を変えること
x内で、ローカル変数を作って消すのは、副作用ではない
61デフォルトの名無しさん (ワッチョイ c393-gW4a)
2020/10/05(月) 15:55:01.80ID:mH/ByF4E062デフォルトの名無しさん (エムゾネ FF1f-gW4a)
2020/10/05(月) 16:02:34.00ID:evbZz7z6F void は戻り値省略のときと
void * のときしか使わないな
void * のときしか使わないな
63デフォルトの名無しさん (トンモー MMa7-+9b3)
2020/10/05(月) 16:23:19.64ID:kpO4fuI3M >>59
常識的に考えたら主作用あってこその副作用
常識的に考えたら主作用あってこその副作用
64デフォルトの名無しさん (ワッチョイ 7f94-Kk5w)
2020/10/05(月) 18:27:51.05ID:yKl6yS5S0 仕様書の片隅から誰も使ってない用語引っ張り出してくるのは簡便してほしいわ。
6560 (ワッチョイ d32c-IT45)
2020/10/06(火) 04:29:28.36ID:PeElnWrx0 副作用とは、関数型言語のモナド
ディスプレイに表示されたとか、ログ・データベースに書き込まれたとか、
関数の処理が終わった後に、関数外部の何かの状態を、永続的に変えた場合
サーバー構築は、副作用の集まり。
Ruby 製のVagrant, Chef, Cookpad製のItamae など、冪(べき)等性などでも使われる
同じ処理を何回繰り返しても、外部の状態が同じになること
ディスプレイに表示されたとか、ログ・データベースに書き込まれたとか、
関数の処理が終わった後に、関数外部の何かの状態を、永続的に変えた場合
サーバー構築は、副作用の集まり。
Ruby 製のVagrant, Chef, Cookpad製のItamae など、冪(べき)等性などでも使われる
同じ処理を何回繰り返しても、外部の状態が同じになること
66デフォルトの名無しさん (ワッチョイ 7f52-w3sw)
2020/10/06(火) 06:52:51.94ID:KQx0qL8O0 またRuby君か
カオスだな
カオスだな
67デフォルトの名無しさん (ワッチョイ 53b7-Kk5w)
2020/10/06(火) 06:53:38.32ID:2iI+f89O0 riskとbenefitじゃ全然意味違うね
68デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/08(木) 19:44:51.48ID:UfnCY9Jf0 副作用まとめ
・CQ出版社『トランジスタ技術』
https://toragi.cqpub.co.jp/Portals/0/backnumber/2006/10/p179-180.pdf
要約すると「(値を返すという)主作用じゃないのが副作用という」
・筑波大学の亀山教授『プログラム言語論』(大学講義の資料)
http://www.cs.tsukuba.ac.jp/~kam/lecture/plm2011/5-web.pdf
要約すると「(値を返すという)主たる作用じゃないのが副作用という」
・『実践 F# 関数型プログラミング入門』のP86
要約すると「(値を返すという)主作用じゃないのが副作用という」
・英語wikipediaの副作用の説明
ttps://en.wikipedia.org/wiki/Side_effect_(computer_science)
要約すると「ローカル環境以外の状態を変化させることは、(値を返す)主作用以外のものなので、副作用と呼ぶ。」
・CQ出版社『トランジスタ技術』
https://toragi.cqpub.co.jp/Portals/0/backnumber/2006/10/p179-180.pdf
要約すると「(値を返すという)主作用じゃないのが副作用という」
・筑波大学の亀山教授『プログラム言語論』(大学講義の資料)
http://www.cs.tsukuba.ac.jp/~kam/lecture/plm2011/5-web.pdf
要約すると「(値を返すという)主たる作用じゃないのが副作用という」
・『実践 F# 関数型プログラミング入門』のP86
要約すると「(値を返すという)主作用じゃないのが副作用という」
・英語wikipediaの副作用の説明
ttps://en.wikipedia.org/wiki/Side_effect_(computer_science)
要約すると「ローカル環境以外の状態を変化させることは、(値を返す)主作用以外のものなので、副作用と呼ぶ。」
69デフォルトの名無しさん (ワッチョイ 06e9-xYNh)
2020/10/09(金) 00:16:53.25ID:Sv65jxff0 個人的なメモとしてなら好きにまとめてくれていいんだけど
C言語に限れば>>34が国際標準(共通認識)なので、どうしても「主作用」という言葉を使った話がしたいなら
それらの文献と同様に(その場における)定義を添えましょう。
C言語に限れば>>34が国際標準(共通認識)なので、どうしても「主作用」という言葉を使った話がしたいなら
それらの文献と同様に(その場における)定義を添えましょう。
70デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 04:34:08.16ID:NuSz27BH071デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 04:43:13.97ID:NuSz27BH0 まあ、プログラミング界隈の人達に
ttps://en.wikipedia.org/wiki/Side_effect_(computer_science)
のように説明される副作用の概念があり、Cでもそれを「借りてきて」副作用という言葉を使ってるのだから、主作用という概念自体はCの規格を書いた人の頭にもあるんだよ。
ttps://en.wikipedia.org/wiki/Side_effect_(computer_science)
のように説明される副作用の概念があり、Cでもそれを「借りてきて」副作用という言葉を使ってるのだから、主作用という概念自体はCの規格を書いた人の頭にもあるんだよ。
72デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 05:34:51.35ID:NuSz27BH0 オライリージャパンのCクイックリファレンス第二版を調べてみても
副作用の説明は次のように始まる。
「式の評価は、値を得られるだけでなく、実行環境に副作用と呼ばれる別の変化を起こすことがある」
皆は同じ説明の仕方で、「値を得られる」という主作用に触れて副作用の説明してるのに、なんでこのスレだけはこの概念に触れちゃ駄目なの?
ちなみに、このオライリー本の著者はC言語のエキスパートとして世界的に有名です
副作用の説明は次のように始まる。
「式の評価は、値を得られるだけでなく、実行環境に副作用と呼ばれる別の変化を起こすことがある」
皆は同じ説明の仕方で、「値を得られる」という主作用に触れて副作用の説明してるのに、なんでこのスレだけはこの概念に触れちゃ駄目なの?
ちなみに、このオライリー本の著者はC言語のエキスパートとして世界的に有名です
73デフォルトの名無しさん (ワッチョイ 7b7f-nZE0)
2020/10/09(金) 07:05:22.54ID:4a3ez4RS0 >>68
必死に探してそれしか見つけられなかったんだろう?
出てきたとしても副作用の説明のために使われるだけ。
プログラミング界隈で主作用という言葉はまるで市民権を得てないんだよ
そんなにこだわるなら今後使ってもらえるように頑張りなよ
必死に探してそれしか見つけられなかったんだろう?
出てきたとしても副作用の説明のために使われるだけ。
プログラミング界隈で主作用という言葉はまるで市民権を得てないんだよ
そんなにこだわるなら今後使ってもらえるように頑張りなよ
74デフォルトの名無しさん (アウアウウー Sa2f-uINc)
2020/10/09(金) 07:11:00.69ID:oLqzRy4la >>72
「副作用」といわれる作用の他に、一般的な意味での主たる作用として値が得られること自体を否定してる人はいないだろ。
ただC言語の規格としては「副作用」と対になる「主作用」という用語や概念は規定されておらず、副作用と言う語と同等に主作用を語るのは気持ち悪いな。
変数の説明のために便宜的に値をいれる箱ですよという言い方がよくされるけど、お前さんの挙げた文献における「主作用」も同様で、副作用に対する主たる作用の説明のために持ち出した一般名詞というだけだろう。
「副作用」といわれる作用の他に、一般的な意味での主たる作用として値が得られること自体を否定してる人はいないだろ。
ただC言語の規格としては「副作用」と対になる「主作用」という用語や概念は規定されておらず、副作用と言う語と同等に主作用を語るのは気持ち悪いな。
変数の説明のために便宜的に値をいれる箱ですよという言い方がよくされるけど、お前さんの挙げた文献における「主作用」も同様で、副作用に対する主たる作用の説明のために持ち出した一般名詞というだけだろう。
75デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 07:13:51.95ID:NuSz27BH076デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 07:15:48.04ID:NuSz27BH077デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 07:19:20.79ID:NuSz27BH0 >>74
>C言語の規格としては「副作用」と対になる「主作用」という用語や概念は規定されておらず、副作用と言う語と同等に主作用を語るのは気持ち悪いな。
結局、プログラムにおける一般的な概念はここでは触れてはだめだということですか?
Cもプログラミングなのに。
誰もがその概念に触れた上で副作用について説明してるのに。Cクイックリファレンス第二版でもそう。
>C言語の規格としては「副作用」と対になる「主作用」という用語や概念は規定されておらず、副作用と言う語と同等に主作用を語るのは気持ち悪いな。
結局、プログラムにおける一般的な概念はここでは触れてはだめだということですか?
Cもプログラミングなのに。
誰もがその概念に触れた上で副作用について説明してるのに。Cクイックリファレンス第二版でもそう。
78デフォルトの名無しさん (ワッチョイ 07b7-xYNh)
2020/10/09(金) 07:25:51.14ID:TjErAM+z0 職場でのレビューには使えない用語だね
厳格な言葉遣いが要求されるところではダメ
厳格な言葉遣いが要求されるところではダメ
79デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 07:30:12.69ID:NuSz27BH080デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 07:32:00.31ID:NuSz27BH0 あと、ワッチョイ変えて自演連投してるやろ
過疎スレに急に人が集まるのはおかしい
過疎スレに急に人が集まるのはおかしい
8160 (ワッチョイ 672c-Dl/i)
2020/10/09(金) 07:39:39.09ID:760t1BpC0 別に主作用が値を返すこととは、思っていないから
式は値を返すけど、文は返さない。
関数も返すとは限らない
自動的に、最後に評価された値を返しても、受け取って使うとは限らない。
あまり、主作用を論じることがない
副作用は、C でも使うけど、主に関数型言語のモナド
式は値を返すけど、文は返さない。
関数も返すとは限らない
自動的に、最後に評価された値を返しても、受け取って使うとは限らない。
あまり、主作用を論じることがない
副作用は、C でも使うけど、主に関数型言語のモナド
82デフォルトの名無しさん (ワッチョイ 07b7-xYNh)
2020/10/09(金) 07:41:10.78ID:TjErAM+z0 >>79
そうか、ISO/IEC 9899:2011も見つけられていないんだな
pdfビューアで検索かけても「main effect」はヒットしないぞ
「side effect」は笑っちゃうくらい沢山ヒットするけど
そうか、ISO/IEC 9899:2011も見つけられていないんだな
pdfビューアで検索かけても「main effect」はヒットしないぞ
「side effect」は笑っちゃうくらい沢山ヒットするけど
83デフォルトの名無しさん (ワッチョイ 7b7f-nZE0)
2020/10/09(金) 07:43:18.14ID:4a3ez4RS084デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 07:47:01.31ID:NuSz27BH085デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 07:49:33.79ID:NuSz27BH0 >>82
だから?そんな話はしてない。
だから?そんな話はしてない。
86デフォルトの名無しさん (ワッチョイ 7b7f-nZE0)
2020/10/09(金) 07:49:48.04ID:4a3ez4RS0 >>80
被害妄想で頑張っちゃうタチなんだね
被害妄想で頑張っちゃうタチなんだね
87デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 07:51:33.89ID:NuSz27BH0 >>86
図星だったんだね
図星だったんだね
88デフォルトの名無しさん (ワッチョイ 7b7f-nZE0)
2020/10/09(金) 07:54:28.94ID:4a3ez4RS0 >>87
ほらもっと頑張りなよwww
ほらもっと頑張りなよwww
89デフォルトの名無しさん (アウアウウー Sa2f-uINc)
2020/10/09(金) 08:00:14.18ID:oLqzRy4la >>80
そういう病的で思い込みが激しいところが反感を買って、突っ込みが多いんだと思うぞ。
そういう病的で思い込みが激しいところが反感を買って、突っ込みが多いんだと思うぞ。
90デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 08:00:39.91ID:NuSz27BH0 はいはい
91デフォルトの名無しさん (ワッチョイ 07b7-xYNh)
2020/10/09(金) 08:09:12.19ID:TjErAM+z0 >>85
> 主作用という概念に触れずに副作用というものを説明してる本が、今まで見つけられないんだが。
おまえさん、こう言ったろ?
ISO/IEC 9899:2011はmain effectという概念に触れずにside effectというものを説明してるぞ
おまえさんが見つけられない本を紹介してやったんだよ
> 主作用という概念に触れずに副作用というものを説明してる本が、今まで見つけられないんだが。
おまえさん、こう言ったろ?
ISO/IEC 9899:2011はmain effectという概念に触れずにside effectというものを説明してるぞ
おまえさんが見つけられない本を紹介してやったんだよ
92デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 08:10:10.53ID:NuSz27BH0 >>91
解説書じゃなく規格書だろうに。一般常識なんてわざわざ説明してるわけない。
解説書じゃなく規格書だろうに。一般常識なんてわざわざ説明してるわけない。
93デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 08:11:04.89ID:NuSz27BH0 オライリー本(Cクイックリファレンス第二版)でも、主作用という概念に触れて副作用について説明している。
英語のwikipediaでも当然のように主作用という概念に触れた上で、副作用の説明がなされている。
逆に、主作用という概念に触れずに副作用というものを説明してる本が、今まで見つけられない。
ちなみに、規格書は解説書じゃなんだから、一般常識はいちいち書いてなくて当然。
とりあえず、C言語等の解説書で、副作用について解説がなされている本で、主作用という概念について一切触れられてない本があれば挙げてくれ。
そんな本は、図書館に行って調べたけど、一つも無かったから。もしかしたら、ごく一部にあるのかもしれないけど、まずないから。
英語のwikipediaでも当然のように主作用という概念に触れた上で、副作用の説明がなされている。
逆に、主作用という概念に触れずに副作用というものを説明してる本が、今まで見つけられない。
ちなみに、規格書は解説書じゃなんだから、一般常識はいちいち書いてなくて当然。
とりあえず、C言語等の解説書で、副作用について解説がなされている本で、主作用という概念について一切触れられてない本があれば挙げてくれ。
そんな本は、図書館に行って調べたけど、一つも無かったから。もしかしたら、ごく一部にあるのかもしれないけど、まずないから。
9460 (ワッチョイ 672c-Dl/i)
2020/10/09(金) 08:16:29.40ID:760t1BpC0 副作用は、Elixir みたいな関数型言語で使うだけ。
パイプライン
Ruby でも、メソッドチェーンする
副作用が怖いから、皆この手の言語では、
状態を持つな、map, map ばっかり言うw
パイプライン
Ruby でも、メソッドチェーンする
副作用が怖いから、皆この手の言語では、
状態を持つな、map, map ばっかり言うw
95デフォルトの名無しさん (ワッチョイ 07b7-xYNh)
2020/10/09(金) 08:19:07.63ID:TjErAM+z096デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 08:24:25.86ID:NuSz27BH0 >>95
ようするに、社則に「社員は勤務中に呼吸をしなくてはならない」とは書いてないから、「社員は呼吸禁止」ですか?
オライリー本その他も当然のように触れている、プログラミングの一般常識には、このスレでは触れてはダメということですか?
C言語もプログラミングなのに、プログラミングの一般常識には触れてはだめですか?
ようするに、社則に「社員は勤務中に呼吸をしなくてはならない」とは書いてないから、「社員は呼吸禁止」ですか?
オライリー本その他も当然のように触れている、プログラミングの一般常識には、このスレでは触れてはダメということですか?
C言語もプログラミングなのに、プログラミングの一般常識には触れてはだめですか?
97デフォルトの名無しさん (ワッチョイ 06e9-xYNh)
2020/10/09(金) 08:54:49.66ID:Sv65jxff0 少なくとも>69では「触れてはだめ」なんて話はしてないのに、どうしてそんな話になったのか。
98デフォルトの名無しさん (トンモー MMff-0hVy)
2020/10/09(金) 08:57:01.35ID:1HKZBnpVM99デフォルトの名無しさん (トンモー MMff-0hVy)
2020/10/09(金) 09:09:51.23ID:1HKZBnpVM 仕様書のside effectは、sideでないものを念頭に置くからsideという
main的なものが念頭に置かれているのを否定するやつはアホしかいない
それが何かは英wikiのside effectにも書かれてあるじゃないか
次元が低すぎだろ
main的なものが念頭に置かれているのを否定するやつはアホしかいない
それが何かは英wikiのside effectにも書かれてあるじゃないか
次元が低すぎだろ
100デフォルトの名無しさん (ワッチョイ 07b7-xYNh)
2020/10/09(金) 09:39:01.71ID:TjErAM+z0 >>96
日本語でおk
日本語でおk
101デフォルトの名無しさん (ワッチョイ 07b7-xYNh)
2020/10/09(金) 09:41:56.88ID:TjErAM+z0102デフォルトの名無しさん (ワントンキン MM3a-7d23)
2020/10/09(金) 12:48:32.11ID:J15OmNAdM 副大統領職があるので、正大統領と呼んでも意味は通じるが、普通は言わない。
それだけだ。
それだけだ。
103デフォルトの名無しさん (ワッチョイ 4ab3-ICsZ)
2020/10/09(金) 17:02:12.86ID:RcOsUEk40 ま JIS規格のは「副」作用なんやから 作用(主作用)前提でこそのワードチョイスやん
そこを触れるの嫌がるって無理ありすぎやろ
しまいにはwでファビョる始末
そこを触れるの嫌がるって無理ありすぎやろ
しまいにはwでファビョる始末
104デフォルトの名無しさん (ワッチョイ 07b7-xYNh)
2020/10/09(金) 17:37:29.96ID:TjErAM+z0 嫌がってねえ
必要性を感じねえつってんだよ
演算と副作用
これだけであらゆる説明ができる
主作用なんかいらねえ
必要性を感じねえつってんだよ
演算と副作用
これだけであらゆる説明ができる
主作用なんかいらねえ
105デフォルトの名無しさん (ワッチョイ 63e6-9QVr)
2020/10/09(金) 18:56:14.04ID:Jq2CJneE0 暇なスレだなぁ
106デフォルトの名無しさん (アウアウウー Sa2f-JD9c)
2020/10/09(金) 20:19:54.00ID:O/EjtfR6a char型配列初文字で初期化して
printfしたらフフフだ
わからん
printfしたらフフフだ
わからん
107デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/09(金) 21:08:22.64ID:NuSz27BH0 質問があります。
副作用とは何ですか?
副作用とは何ですか?
式について
「(式が持つ)値」vs「副作用」
の対立概念だと思っていました、こういうのは lisp がやりはじめたんじゃないでしょうか?
「(式が持つ)値」vs「副作用」
の対立概念だと思っていました、こういうのは lisp がやりはじめたんじゃないでしょうか?
109デフォルトの名無しさん (ワッチョイ de2c-+Jfp)
2020/10/10(土) 01:05:22.78ID:AL04749p0 将来AR関連の仕事につきたいんですけど、初めての言語はCってどうなんでしょうか?
110デフォルトの名無しさん (ワッチョイ 672c-Dl/i)
2020/10/10(土) 05:02:23.82ID:BjcbKuib0 Java入門・初心者質問スレ Part.10
https://mevius.5ch.net/test/read.cgi/tech/1585721355/686
上に書いたけど、
YouTube で有名な雑食系エンジニア・KENTA は、
AI をやりたいからと言って、Python から始めてはいけないと言ってる。
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
Ruby以外の言語から始めると、挫折確率が高い。
ほとんどの学校も、Ruby on Rails ばっかり
Rubyの女神・女優の池澤あやかも言ってる。
大学生がプログラミングを嫌いになるのは、授業でC をやるから
C/C++ などのポインタ系言語は、たいてい挫折する。
ほとんどのテスト時間を、ポインタの追跡に使ってしまって、しょーもないから
https://mevius.5ch.net/test/read.cgi/tech/1585721355/686
上に書いたけど、
YouTube で有名な雑食系エンジニア・KENTA は、
AI をやりたいからと言って、Python から始めてはいけないと言ってる。
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
Ruby以外の言語から始めると、挫折確率が高い。
ほとんどの学校も、Ruby on Rails ばっかり
Rubyの女神・女優の池澤あやかも言ってる。
大学生がプログラミングを嫌いになるのは、授業でC をやるから
C/C++ などのポインタ系言語は、たいてい挫折する。
ほとんどのテスト時間を、ポインタの追跡に使ってしまって、しょーもないから
111デフォルトの名無しさん (ワッチョイ c68c-GIgh)
2020/10/10(土) 07:30:36.51ID:tajpvl710 シェルスクリプトが一番実用性が高い。
112デフォルトの名無しさん (ガラプー KK56-yUdL)
2020/10/10(土) 08:34:32.00ID:sA7w+t8zK113デフォルトの名無しさん (ワッチョイ ea47-YQ4O)
2020/10/10(土) 16:25:14.09ID:i5KfYhU+0 >>109
ハゲめ
ハゲめ
114デフォルトの名無しさん (アウアウウー Sa2f-JD9c)
2020/10/10(土) 18:03:01.19ID:NSofC8xCa115デフォルトの名無しさん (ワッチョイ 07b7-xYNh)
2020/10/10(土) 19:43:45.13ID:THhanVwl0 char str[] = "unko";
printf("%s", "str");
これで何か出力されたとして
それは目的通りなのか?
printf("%s", "str");
これで何か出力されたとして
それは目的通りなのか?
116デフォルトの名無しさん (ワッチョイ ca61-wCbK)
2020/10/10(土) 21:20:02.75ID:yhyq5Xqm0 可変長マクロ、... や __VA_ARGS__ に関連して、カンマが自動削除されたり
する使用は、結局、統一した仕様はあるのでしょうか?
__VA_OPT(,) を使う流儀と、カンマを自動削除する流儀、
実引数に , を書いた場合と書かなかった場合の違いなど、
色々有って何が標準か分かりません。
する使用は、結局、統一した仕様はあるのでしょうか?
__VA_OPT(,) を使う流儀と、カンマを自動削除する流儀、
実引数に , を書いた場合と書かなかった場合の違いなど、
色々有って何が標準か分かりません。
117デフォルトの名無しさん (ワッチョイ ca61-wCbK)
2020/10/10(土) 21:36:11.71ID:yhyq5Xqm0 #define aaa(fmt, ...) g(fmt __VA_OPT__(,) __VA_ARGS__)
の場合、
aaa(x)とaaa(x,)でどちらも結果は同じ g(x) になるのでしょうか?
そもそも、VC++では、
#define bbb(fmt, ...) g(fmt , __VA_ARGS__)
としていても、
bbb(x)とbbb(x,)でどちらも結果は同じ g(x) になるのでしょうか?
の場合、
aaa(x)とaaa(x,)でどちらも結果は同じ g(x) になるのでしょうか?
そもそも、VC++では、
#define bbb(fmt, ...) g(fmt , __VA_ARGS__)
としていても、
bbb(x)とbbb(x,)でどちらも結果は同じ g(x) になるのでしょうか?
118はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8a3e-NY7j)
2020/10/10(土) 22:10:07.34ID:i9YWGOdm0 >>72
その本を持ってないから前後の文脈はわからんけど、引用部分に関して言えば正しいよ。
「式の評価のときに副作用が起きることもある」というのは正しい。
でも、仮に「式の評価のときに値を得られる他に起きることが副作用である」と言ったら間違いだ。
C では実行環境の状態を変化させることを副作用と定義するのであって、
式評価のときに主作用 (式から値にする操作を仮にそう呼ぶとして) の他に
副作用も起こるというのは定義に付随する性質なわけ。
(C における) 副作用とは何かの「定義」に主作用という概念は絡まないんだ。
式を評価する以外の方法 (主作用が存在しない) で起こる状態変化も副作用ということになる。
その本を持ってないから前後の文脈はわからんけど、引用部分に関して言えば正しいよ。
「式の評価のときに副作用が起きることもある」というのは正しい。
でも、仮に「式の評価のときに値を得られる他に起きることが副作用である」と言ったら間違いだ。
C では実行環境の状態を変化させることを副作用と定義するのであって、
式評価のときに主作用 (式から値にする操作を仮にそう呼ぶとして) の他に
副作用も起こるというのは定義に付随する性質なわけ。
(C における) 副作用とは何かの「定義」に主作用という概念は絡まないんだ。
式を評価する以外の方法 (主作用が存在しない) で起こる状態変化も副作用ということになる。
119デフォルトの名無しさん (ワッチョイ 672c-JAxH)
2020/10/10(土) 23:13:28.82ID:BjcbKuib0 厳密に言えば、++ 演算子を絡めたものは、変数自体を変更してるから副作用
b = a + 1
なら、変数a を変更していないから、副作用はない
だから、Go では副作用を警戒して、
++ 演算子は、単独の文でしか使えない。
組み合わせられない
a++
b = a + 1
なら、変数a を変更していないから、副作用はない
だから、Go では副作用を警戒して、
++ 演算子は、単独の文でしか使えない。
組み合わせられない
a++
120デフォルトの名無しさん (ワッチョイ cbda-KV+F)
2020/10/10(土) 23:46:17.77ID:xY0iDsv30 >>117
標準(C17/18までの時点)では可変長引数マクロが第一引数以外の場合は少なくともひとつの引数が無ければシンタックスエラーになる
C++20で対応が提案(採択)されていて, 併せてCにも同じ仕様で提案されてる
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2034.htm
現状で(標準の範囲内で)同じことをするにはかなりトリッキーな方法を使う必要がある
https://stackoverflow.com/a/11172679
またはBoost.PreprocessorのBOOST_PP_VA_OPTが上記提案の__VA_OPT__の代替として使える
標準(C17/18までの時点)では可変長引数マクロが第一引数以外の場合は少なくともひとつの引数が無ければシンタックスエラーになる
C++20で対応が提案(採択)されていて, 併せてCにも同じ仕様で提案されてる
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2034.htm
現状で(標準の範囲内で)同じことをするにはかなりトリッキーな方法を使う必要がある
https://stackoverflow.com/a/11172679
またはBoost.PreprocessorのBOOST_PP_VA_OPTが上記提案の__VA_OPT__の代替として使える
121デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/11(日) 00:07:40.75ID:yV/54YAK0122デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/11(日) 00:21:33.30ID:yV/54YAK0 君はたぶんスレを保守してる人なんだろうけどさあ、
その話はHNをわざわざ使ってる君のプライドを守るためだけの話になってるので、ここで話し合う意味がないんだよね。
その話はHNをわざわざ使ってる君のプライドを守るためだけの話になってるので、ここで話し合う意味がないんだよね。
123デフォルトの名無しさん (ワッチョイ 06e9-xYNh)
2020/10/11(日) 00:30:42.60ID:u/XktDCx0 相手するのがめんどくさい、プライドを守るためだけ
おまいうwww
おまいうwww
124デフォルトの名無しさん (ワッチョイ 0363-KV+F)
2020/10/11(日) 00:45:20.99ID:y5Dl22i00 ここに書き込んでいる人って、暇ですることが無い人ばかりではなかったか?
125デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/11(日) 00:48:15.50ID:yV/54YAK0 HNをわざわざ使ってる人は必ず、批判されるとHNを使わずに自演するんだよね。
上の書き込みが自演かどうかは知らんけど、自演は必ずする。
大昔にローカルの掲示板をやってたことがあるから、HNを使う人のこの習性はよくよく知ってる。
一人残らずそうやってた。
上の書き込みが自演かどうかは知らんけど、自演は必ずする。
大昔にローカルの掲示板をやってたことがあるから、HNを使う人のこの習性はよくよく知ってる。
一人残らずそうやってた。
12642 (ワッチョイ cbda-KV+F)
2020/10/11(日) 00:54:48.93ID:Oo+TUOYr0 >>42
一部誤っていたので訂正。
6.5.16 Assignment operators
3
An assignment operator stores a value in the object designated by the left operand.
An assignment expression has the value of the left operand after the assignment, but is not an lvalue.
The type of an assignment expression is the type the left operand would have after lvalue conversion.
The side effect of updating the stored value of the left operand is sequenced after the value computations of the left and right operands.
The evaluations of the operands are unsequenced.
なので代入式の値は「左辺式(left operand)に右辺式(right operand)の値を代入した後の値を右辺値(rvalueの意味)として評価した値」が正しかった。
一部誤っていたので訂正。
6.5.16 Assignment operators
3
An assignment operator stores a value in the object designated by the left operand.
An assignment expression has the value of the left operand after the assignment, but is not an lvalue.
The type of an assignment expression is the type the left operand would have after lvalue conversion.
The side effect of updating the stored value of the left operand is sequenced after the value computations of the left and right operands.
The evaluations of the operands are unsequenced.
なので代入式の値は「左辺式(left operand)に右辺式(right operand)の値を代入した後の値を右辺値(rvalueの意味)として評価した値」が正しかった。
127デフォルトの名無しさん (ワッチョイ 0363-KV+F)
2020/10/11(日) 00:55:54.98ID:y5Dl22i00 HNをNGに登録し、レス書いた奴ごとアボーンすると比較的すっきりする
128デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/11(日) 01:44:57.79ID:yV/54YAK0 >>126
意訳すれば「代入式の値は、左辺へ代入後に取り出してたら処理が無駄に重くなるから、代入直前の値を返すべき。返されるものは、左辺と同じ(値と型が)」
まあ端的に言うと、左辺が返されてると理解しとけばいいね。
意訳すれば「代入式の値は、左辺へ代入後に取り出してたら処理が無駄に重くなるから、代入直前の値を返すべき。返されるものは、左辺と同じ(値と型が)」
まあ端的に言うと、左辺が返されてると理解しとけばいいね。
129デフォルトの名無しさん (ワッチョイ cbda-KV+F)
2020/10/11(日) 07:57:55.20ID:Oo+TUOYr0 >>128
「左辺へ代入後に取り出してたら処理が無駄に重くなるから、代入直前の値を返すべき」なんて書いてない
脚注に
> 111) The implementation is permitted to read the object to determine the value but is not required to, even
when the object has volatile-qualified type.
とはあるが, どう実装すべきなどとは書いていないのだから, それは意訳ではなくお前の意見だ
「左辺へ代入後に取り出してたら処理が無駄に重くなるから、代入直前の値を返すべき」なんて書いてない
脚注に
> 111) The implementation is permitted to read the object to determine the value but is not required to, even
when the object has volatile-qualified type.
とはあるが, どう実装すべきなどとは書いていないのだから, それは意訳ではなくお前の意見だ
130デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/11(日) 08:44:36.55ID:yV/54YAK0131デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/11(日) 09:21:01.70ID:yV/54YAK0 あと、そういうなら、君の書いた
>代入式の値は「左辺式(left operand)に右辺式(right operand)の値を代入した後の値を右辺値(rvalueの意味)として評価した値」
これだって君の意訳で意見だよね。
言葉は通じるためにある。ネット検索しても、世間一般的にも代入のことは副作用と呼んでるよね。
副作用を検索すれば「代入」という言葉が頻出する。
なので「The side effect of updating the stored value of the left operand」⇒ 代入 となる
次に、「(代入) is sequenced after the value computations of the left and right operands.」を訳すると「代入は両オペランドの値を処理後に行われる」となる。
つまり、「代入は最後に行われる」とは読めないかな? よって、返す値はその前に原則的に決まってるということ。
なので「代入した後の値を」という表現は違和感あるし、ワタスの代入直前の方が正解に近くはないかな?
まあ、ワタスは、C言語の超初心者なので、君の挙げてくれた英文を周辺状況と合わせて普通に読んでるだけだけども。
そもそも論だけど、仕様書のことを述べても、実装がその通りになってるとは限らないから意味ないよね。
>代入式の値は「左辺式(left operand)に右辺式(right operand)の値を代入した後の値を右辺値(rvalueの意味)として評価した値」
これだって君の意訳で意見だよね。
言葉は通じるためにある。ネット検索しても、世間一般的にも代入のことは副作用と呼んでるよね。
副作用を検索すれば「代入」という言葉が頻出する。
なので「The side effect of updating the stored value of the left operand」⇒ 代入 となる
次に、「(代入) is sequenced after the value computations of the left and right operands.」を訳すると「代入は両オペランドの値を処理後に行われる」となる。
つまり、「代入は最後に行われる」とは読めないかな? よって、返す値はその前に原則的に決まってるということ。
なので「代入した後の値を」という表現は違和感あるし、ワタスの代入直前の方が正解に近くはないかな?
まあ、ワタスは、C言語の超初心者なので、君の挙げてくれた英文を周辺状況と合わせて普通に読んでるだけだけども。
そもそも論だけど、仕様書のことを述べても、実装がその通りになってるとは限らないから意味ないよね。
132デフォルトの名無しさん (ワッチョイ 4a61-wCbK)
2020/10/11(日) 09:24:54.54ID:1n9mnEAt0133デフォルトの名無しさん (ワッチョイ ea47-YQ4O)
2020/10/11(日) 12:23:08.94ID:kZXFoyze0134デフォルトの名無しさん (ガラプー KK56-yUdL)
2020/10/11(日) 15:19:35.65ID:Ryz1amqZK135デフォルトの名無しさん (ワッチョイ cbda-KV+F)
2020/10/11(日) 16:59:31.64ID:Oo+TUOYr0 >>131
阿呆かな?
>>128は>>126の原文中に無く脚注で書かれている内容だしその脚注にも「左辺へ代入後に取り出してたら処理が無駄に重くなるから」などとは書かれていない
> 次に、「(代入) is sequenced after the value computations of the left and right operands.」を訳すると「代入は両オペランドの値を処理後に行われる」となる。
> つまり、「代入は最後に行われる」とは読めないかな?
正しい
> よって、返す値はその前に原則的に決まってるということ。
妄想
規格ではunspecified (実装の自由度)
> そもそも論だけど、仕様書のことを述べても、実装がその通りになってるとは限らないから意味ないよね。
逆だろ, 処理系を指定しないなら規格に従うしかない。
阿呆かな?
>>128は>>126の原文中に無く脚注で書かれている内容だしその脚注にも「左辺へ代入後に取り出してたら処理が無駄に重くなるから」などとは書かれていない
> 次に、「(代入) is sequenced after the value computations of the left and right operands.」を訳すると「代入は両オペランドの値を処理後に行われる」となる。
> つまり、「代入は最後に行われる」とは読めないかな?
正しい
> よって、返す値はその前に原則的に決まってるということ。
妄想
規格ではunspecified (実装の自由度)
> そもそも論だけど、仕様書のことを述べても、実装がその通りになってるとは限らないから意味ないよね。
逆だろ, 処理系を指定しないなら規格に従うしかない。
136デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/11(日) 17:27:29.04ID:yV/54YAK0 >>135
全部反論になってなくて、相手の言ってる言葉を都合のいいように解釈してるだけだね。
全部反論になってなくて、相手の言ってる言葉を都合のいいように解釈してるだけだね。
137デフォルトの名無しさん (ブーイモ MM76-BI9m)
2020/10/11(日) 17:45:12.56ID:0ARGcdMRM 反論できないことは全部反論になってないで片付けるタイプ
138135 (アウアウウー Sa2f-2PH9)
2020/10/11(日) 17:51:10.03ID:jw/lLa/Ba139デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/11(日) 17:52:06.99ID:yV/54YAK0 全然反論になってないし、第一、第一声が「阿呆かな?」と頭に血が昇ってる人の相手しても意味ないじゃん。
140デフォルトの名無しさん (ワッチョイ 06e9-xYNh)
2020/10/11(日) 18:39:36.02ID:u/XktDCx0 意味ないのに書き込んじゃうのはなんでだろうね?
141デフォルトの名無しさん (ワッチョイ c393-YQ4O)
2020/10/11(日) 19:03:18.63ID:yV/54YAK0 結局、原則的には、返す値は代入前に決まってるよね。gccもVC++もそうみたいだし。
142デフォルトの名無しさん (ワッチョイ 07b7-xYNh)
2020/10/11(日) 19:54:22.88ID:vwOca/6s0 > > そもそも論だけど、仕様書のことを述べても、実装がその通りになってるとは限らないから意味ないよね。
> 逆だろ, 処理系を指定しないなら規格に従うしかない。
同感
> 逆だろ, 処理系を指定しないなら規格に従うしかない。
同感
143デフォルトの名無しさん (トンモー MMff-0hVy)
2020/10/11(日) 20:21:00.36ID:qb0SAJQcM まぁ過去の恨みで絡むのはやめとこうな
非建設的すぎる
非建設的すぎる
144デフォルトの名無しさん (トンモー MMff-0hVy)
2020/10/11(日) 21:19:40.64ID:qb0SAJQcM 一般論と規格の噛み合わない話が続いてるな
例えば日本語を表すのは大抵の処理系でshift jisかunicodeだが
一般論としてshift jisかunicodeだというと
規格として規定されてないみたいな
お互いの話してる主語が違ってて噛み合わない
例えば日本語を表すのは大抵の処理系でshift jisかunicodeだが
一般論としてshift jisかunicodeだというと
規格として規定されてないみたいな
お互いの話してる主語が違ってて噛み合わない
145デフォルトの名無しさん (ワッチョイ 6746-7d23)
2020/10/11(日) 21:45:50.38ID:/f4IUzXt0 >>144
下段の喩えが分かりませぬ。
下段の喩えが分かりませぬ。
146デフォルトの名無しさん (ワッチョイ 4a2f-JD9c)
2020/10/12(月) 17:32:23.08ID:Fn8G8w4j0 ファイルオープンできない
visualstudioにてfopen_s
err = fopen_s(&fp,"test.txt","r");
visualstudioにてfopen_s
err = fopen_s(&fp,"test.txt","r");
147デフォルトの名無しさん (ワイーワ2 FF82-YQ4O)
2020/10/12(月) 17:53:16.57ID:941JO02hF FILE *fp;
なら
err = fopen_s(fp,"test.txt","r");
なら
err = fopen_s(fp,"test.txt","r");
148デフォルトの名無しさん (ワッチョイ caf0-uZln)
2020/10/12(月) 18:26:02.48ID:YDN8KrDa0149デフォルトの名無しさん (ラクッペペ MM86-2AW8)
2020/10/12(月) 20:07:04.33ID:XcjAzDTUM 初心者にありがちなのは相対パスを理解してなくてファイルが無いから開けないってやつ
150デフォルトの名無しさん (ワッチョイ ca02-jNgh)
2020/10/12(月) 20:19:27.43ID:UculHi610151デフォルトの名無しさん (ワッチョイ ca93-Pfvf)
2020/10/13(火) 19:59:14.31ID:NHAZjg2T0 初歩的な質問で大変恐縮ですが、
平成6年度基本情報技術者試験のC言語について質問がありまして、
https://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H6b2/g11.html
問2のCですが、答えが2つありませんか?
ウでもエでもどちらでも正解の気がします。
コンパイルして両方の回答で試してみましたが、問題なく動きます。
なぜ答えがウになってエではいけないのか、どなたか知恵を貸していただけませんでしょうか?
平成6年度基本情報技術者試験のC言語について質問がありまして、
https://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H6b2/g11.html
問2のCですが、答えが2つありませんか?
ウでもエでもどちらでも正解の気がします。
コンパイルして両方の回答で試してみましたが、問題なく動きます。
なぜ答えがウになってエではいけないのか、どなたか知恵を貸していただけませんでしょうか?
152デフォルトの名無しさん (アウアウウー Sa2f-JD9c)
2020/10/13(火) 20:23:51.05ID:FgDiRT1ia 146です。パス入力しデバッグしたら
なにかわけわからんBOX
でてきて思い通りになりません。
なにかわけわからんBOX
でてきて思い通りになりません。
153デフォルトの名無しさん (ワッチョイ 032c-FXSo)
2020/10/13(火) 22:42:18.30ID:ciG+8HNI0 グローバル変数として宣言した変数j0とj1がmathcalls.hにもあるようで、コンパイルするとエラーが出ます
ヘッダファイルを書き換えずに回避するにはどうすればいいですか?
よろしくお願いします
ヘッダファイルを書き換えずに回避するにはどうすればいいですか?
よろしくお願いします
154デフォルトの名無しさん (ワッチョイ 4f7f-xYNh)
2020/10/13(火) 22:43:11.29ID:b7C863zx0 >>151
エだと、60文字目と61文字目が' 'の行があるときに余分な改行が入る
エだと、60文字目と61文字目が' 'の行があるときに余分な改行が入る
155デフォルトの名無しさん (ササクッテロル Sp0f-bZax)
2020/10/14(水) 01:03:48.89ID:9cyhkhnyp モバイルC[C/C++コンパイラ]というアプリケーションを使っています
do~while()文で1!+2!+…+n!が1000を超える最初のnの値を求める問題です
以下の画像のどこが間違ってるか教えて頂きたいです
https://i.imgur.com/WEfqdXB.jpg
do~while()文で1!+2!+…+n!が1000を超える最初のnの値を求める問題です
以下の画像のどこが間違ってるか教えて頂きたいです
https://i.imgur.com/WEfqdXB.jpg
156デフォルトの名無しさん (ブーイモ MM4f-yjnQ)
2020/10/14(水) 01:22:34.34ID:6pvowPnvM どうなって欲しくてどうなってしまうかくらい書け
157デフォルトの名無しさん (ササクッテロル Sp0f-bZax)
2020/10/14(水) 02:05:50.62ID:9cyhkhnyp 14と表示されてほしいのですが実行すると以下の画像のようになります
https://i.imgur.com/ztqzJy1.jpg
https://i.imgur.com/ztqzJy1.jpg
158デフォルトの名無しさん (オイコラミネオ MM8f-QI1E)
2020/10/14(水) 03:22:45.65ID:GZXcc9JpM >>151
出題者が想定していた回答から察するに、「正しい答えを選べ」=「最適なものを選べ」という題意なんだろうね。
「エ」の場合、009〜012が必ず実行される。
「ウ」の場合、空白が連続していない場合のみ、009〜012が実行される。
なので「エ」よりも「ウ」の方が、実行時のコードが少なくなる可能性≒処理速度が速い≒より最適化されている。
ということで、「エ」を排しても「ウ」が選ばれるべき理由は説明できるけど、その逆は説明できそうになさげ
出題者が想定していた回答から察するに、「正しい答えを選べ」=「最適なものを選べ」という題意なんだろうね。
「エ」の場合、009〜012が必ず実行される。
「ウ」の場合、空白が連続していない場合のみ、009〜012が実行される。
なので「エ」よりも「ウ」の方が、実行時のコードが少なくなる可能性≒処理速度が速い≒より最適化されている。
ということで、「エ」を排しても「ウ」が選ばれるべき理由は説明できるけど、その逆は説明できそうになさげ
159デフォルトの名無しさん (オイコラミネオ MM8f-QI1E)
2020/10/14(水) 05:08:01.62ID:GZXcc9JpM160デフォルトの名無しさん (ワッチョイ 5b2c-F9zC)
2020/10/14(水) 05:26:43.66ID:z5Uy/Vd30 画像でコードを見せられても、テストできない
paiza.IO などに書いて下さい!
paiza.IO などに書いて下さい!
161デフォルトの名無しさん (ワッチョイ 9f93-ntOo)
2020/10/14(水) 06:30:51.16ID:8SMXEVrO0162デフォルトの名無しさん (ワッチョイ 9fa5-51Mc)
2020/10/14(水) 10:47:06.71ID:ssGc8zMA0 >>151
クソみたいなマルチポスト野郎だな
俺らはこういうゴミに手を貸してたのか
騙された気分だ
C言語について質問です。平成6年度基本情報技術者試験のC言語につ... - Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12232834992
クソみたいなマルチポスト野郎だな
俺らはこういうゴミに手を貸してたのか
騙された気分だ
C言語について質問です。平成6年度基本情報技術者試験のC言語につ... - Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12232834992
163デフォルトの名無しさん (テテンテンテン MM7f-Eh3t)
2020/10/14(水) 11:51:52.20ID:+mJN3MGTM >>155
https://file3-d.kuku.lu/files/20201014-0239_c7aaeee8e9128bbdf0223997ba9de974.jpeg
#include <stdio.h>
int fact(int n){
if(n==1)return 1;
return n*fact(n-1);
}
int main(void){
int n=1,a=0;
while( (a+=fact(n)) <= 1000 ) n++;
printf("%d", n);
}
普通に7って出たけど?
https://file3-d.kuku.lu/files/20201014-0239_d20849c5db09546cee5a312db4c7b83e.jpeg
https://file3-d.kuku.lu/files/20201014-0239_c7aaeee8e9128bbdf0223997ba9de974.jpeg
#include <stdio.h>
int fact(int n){
if(n==1)return 1;
return n*fact(n-1);
}
int main(void){
int n=1,a=0;
while( (a+=fact(n)) <= 1000 ) n++;
printf("%d", n);
}
普通に7って出たけど?
https://file3-d.kuku.lu/files/20201014-0239_d20849c5db09546cee5a312db4c7b83e.jpeg
164デフォルトの名無しさん (ササクッテロル Sp0f-+cNN)
2020/10/14(水) 13:06:19.00ID:8/BbynCKp >>163
試したら7になりました、ありがとうございます
試したら7になりました、ありがとうございます
165デフォルトの名無しさん (ワッチョイ efad-kK2i)
2020/10/20(火) 01:13:51.72ID:1WZYXiCK0 >>163
インデントがキモい
インデントがキモい
166デフォルトの名無しさん (アウアウウー Sacf-dvF1)
2020/10/20(火) 08:49:06.08ID:q8Z69frHa systemのパスが通らない
ファイルに入力して
コンソールで表示する
プログラムだが
ファイルと同じパスでエラー
当方初心者
ファイルに入力して
コンソールで表示する
プログラムだが
ファイルと同じパスでエラー
当方初心者
167デフォルトの名無しさん (ワッチョイ fbda-b6U/)
2020/10/20(火) 08:55:48.28ID:0IrscxF80 まずはその日本語をなんとかしろ
168デフォルトの名無しさん (ワッチョイ dbb7-fMdf)
2020/10/20(火) 09:22:30.31ID:wzOsKsv00 >>166
パスって何か知ってる限り書いてみな
パスって何か知ってる限り書いてみな
169デフォルトの名無しさん (テテンテンテン MM7f-Eh3t)
2020/10/20(火) 10:05:35.78ID:qYYfNILyM >>165
んな事言われましても一応、HTML系の書き方なんで
https://ja.m.wikipedia.org/wiki/字下げスタイル
bannerスタイルは、ブロックのヘッダ部だけを字下げレベルで特別に目立たせるスタイルである。
ちょうど、K&Rスタイルでブロックの終わりの中括弧の字下げレベルを戻さないスタイルである。
んな事言われましても一応、HTML系の書き方なんで
https://ja.m.wikipedia.org/wiki/字下げスタイル
bannerスタイルは、ブロックのヘッダ部だけを字下げレベルで特別に目立たせるスタイルである。
ちょうど、K&Rスタイルでブロックの終わりの中括弧の字下げレベルを戻さないスタイルである。
170デフォルトの名無しさん (ワッチョイ dbb7-fMdf)
2020/10/20(火) 10:22:20.38ID:wzOsKsv00 どっちもどっちだ
自分のスタイルと違うだけでキモいとか言い出すやつも
自分のスタイルを気に入らない人に言い訳するやつも
協調性を欠くという点で同じだ
プロジェクトに参入するたびに顰蹙かうやつ
自分のスタイルと違うだけでキモいとか言い出すやつも
自分のスタイルを気に入らない人に言い訳するやつも
協調性を欠くという点で同じだ
プロジェクトに参入するたびに顰蹙かうやつ
171デフォルトの名無しさん (テテンテンテン MM7f-Eh3t)
2020/10/20(火) 10:32:37.64ID:qYYfNILyM 追い訳しますけど、質問者が読みやすいように
質問者のスタイルに合わせてあげたという事も忘れないで頂きたい。
質問者のスタイルに合わせてあげたという事も忘れないで頂きたい。
172デフォルトの名無しさん (JP 0H8f-yjnQ)
2020/10/20(火) 10:49:54.94ID:2QIfR1k/H 質問者がそのスタイル使ったのは最後の行だけだ
意図して使っているわけではないのに無駄にマイナーなスタイルで答えるな
意図して使っているわけではないのに無駄にマイナーなスタイルで答えるな
173デフォルトの名無しさん (ワイーワ2 FF3f-Vszw)
2020/10/20(火) 10:51:18.57ID:pHiz9StDF174デフォルトの名無しさん (ワッチョイ 0fd2-fMdf)
2020/10/20(火) 11:18:11.29ID:69CHk5Nl0 ここでは俺が無法者だ!!
175デフォルトの名無しさん (ワッチョイ 5b2c-UsEC)
2020/10/20(火) 15:12:59.44ID:aEz3U6LC0 環境変数PATH なら、; 区切り。
PowerShell で以下を入力してみ
$env:Path.split( ";" )
PowerShell で以下を入力してみ
$env:Path.split( ";" )
176デフォルトの名無しさん (ワッチョイ 89e6-w+A7)
2020/10/21(水) 10:15:31.31ID:KGhWJPjI0 >>172
このスレにコーディング規約がある訳じゃないんだからスタイルは回答者の自由だが
このスレにコーディング規約がある訳じゃないんだからスタイルは回答者の自由だが
177デフォルトの名無しさん (ワッチョイ 02a5-F5SX)
2020/10/21(水) 10:45:56.94ID:CZ2/iovY0 わかったわかった
お前はキモい、もうそれでいいよ
キモいことを自覚してそのスタイルを使い続けてくれ
心理的にダメ、気持ち悪いんだよお前
お前はキモい、もうそれでいいよ
キモいことを自覚してそのスタイルを使い続けてくれ
心理的にダメ、気持ち悪いんだよお前
178デフォルトの名無しさん (ブーイモ MM76-mN35)
2020/10/21(水) 11:02:14.79ID:nW5Wnc+BM おまえツイッターでも文脈見ずにクソリプばっかりしてるだろ
179デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/21(水) 12:17:24.48ID:EPxGxCCv0 MinGWをインスコしてあれば
path | sed "s/[=;]/\n/g"
path | sed "s/[=;]/\n/g"
180デフォルトの名無しさん (ワッチョイ 6d61-hFPD)
2020/10/21(水) 16:41:05.37ID:gYHxZT9P0 >>155
エラーメッセージからするとmain()関数内部でfact()関数の宣言を
書いていることが原因らしい。
素朴なCだと、そう書くとまだ名前が宣言されて無いグローバル関数を
main()関数内部で使えるようにする意味になるが、現在のC/C++だと
それぞれのコンパイラが独自に拡張したりした結果、
「(関数内部における)内部関数」なるものが使えるコンパイラが出てきたため、
意味が違ってしまっていることがある。
今の例の場合、main関数の中で後から定義するfactという名前の関数を先に
宣言する意味だとコンパイラは認識してしまっている可能性が高い。
だから、main関数の中にfact関数の関数定義が書かれて無いのでそのような
エラーが出る。
もし、素朴なCのプロトタイプ宣言にしたい場合、
main()関数の外側に書くのが普通だが、なんらかの事情でmain()関数の内側に
書きたい場合には、
int main(void){
extern int fact(int n);
・・・
}
のようにexternキーワードを書くと通ることがあるかも知れない。
エラーメッセージからするとmain()関数内部でfact()関数の宣言を
書いていることが原因らしい。
素朴なCだと、そう書くとまだ名前が宣言されて無いグローバル関数を
main()関数内部で使えるようにする意味になるが、現在のC/C++だと
それぞれのコンパイラが独自に拡張したりした結果、
「(関数内部における)内部関数」なるものが使えるコンパイラが出てきたため、
意味が違ってしまっていることがある。
今の例の場合、main関数の中で後から定義するfactという名前の関数を先に
宣言する意味だとコンパイラは認識してしまっている可能性が高い。
だから、main関数の中にfact関数の関数定義が書かれて無いのでそのような
エラーが出る。
もし、素朴なCのプロトタイプ宣言にしたい場合、
main()関数の外側に書くのが普通だが、なんらかの事情でmain()関数の内側に
書きたい場合には、
int main(void){
extern int fact(int n);
・・・
}
のようにexternキーワードを書くと通ることがあるかも知れない。
181デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/21(水) 16:52:54.92ID:EPxGxCCv0 関数のブロック内に関数原型があるのは完全に合法
実用上まず使わないけどね
実用上まず使わないけどね
182デフォルトの名無しさん (ワッチョイ 6d61-hFPD)
2020/10/21(水) 17:02:00.07ID:gYHxZT9P0183デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/21(水) 17:14:09.48ID:EPxGxCCv0 日本語でおk
184蟻人間 ◆T6xkBnTXz7B0 (スフッ Sda2-IaiW)
2020/10/21(水) 17:17:08.30ID:vNonm69Zd >>182さん、思い込みが激しすぎて証拠がないのに持論を主張する。
185デフォルトの名無しさん (ワッチョイ 6d61-hFPD)
2020/10/21(水) 17:58:35.70ID:gYHxZT9P0 gccなんかは関数の中に内部関数を作れる。
だから、関数内でプロトタイプ宣言を書くと元定義の pure Cとは
異なった意味になる可能性が高い。
だから、関数内でプロトタイプ宣言を書くと元定義の pure Cとは
異なった意味になる可能性が高い。
186デフォルトの名無しさん (ワッチョイ 6d61-hFPD)
2020/10/21(水) 18:02:50.56ID:gYHxZT9P0 >>184
現にその宣言が無ければコンパイルが通り、有ればエラーになっている。
それが一つの根拠。
実験してみたわけじゃないがそれらが本当におきているとすれば
入れ子関数(内部関数)の独自拡張が原因だと洞察できる。
現にその宣言が無ければコンパイルが通り、有ればエラーになっている。
それが一つの根拠。
実験してみたわけじゃないがそれらが本当におきているとすれば
入れ子関数(内部関数)の独自拡張が原因だと洞察できる。
188デフォルトの名無しさん (ワッチョイ 6d61-hFPD)
2020/10/21(水) 18:11:05.50ID:gYHxZT9P0 他の人の実験結果から推定しているだけだから、事実かどうかは分からんよ。
189蟻人間 ◆T6xkBnTXz7B0 (スフッ Sda2-IaiW)
2020/10/21(水) 18:23:13.18ID:vNonm69Zd モバイルCっつー奴にバグ報告せよ。
190デフォルトの名無しさん (ワッチョイ 6d61-hFPD)
2020/10/21(水) 18:35:10.36ID:gYHxZT9P0 PythonやLuaもサポートしているが、Clang, LLVMという言葉があった。
使ってるコンパイラはClangなのかな?
使ってるコンパイラはClangなのかな?
191デフォルトの名無しさん (アウアウウー Sa45-DB4w)
2020/10/21(水) 20:31:51.31ID:z1b04ciPa 簡単な質問申し訳ないです。
漢字を文字コードにて受け
putcで標準出力できるかな?
漢字を文字コードにて受け
putcで標準出力できるかな?
192デフォルトの名無しさん (ブーイモ MM76-mQ82)
2020/10/21(水) 20:57:42.76ID:GehgBoqYM もちろんできるけど、
入力される文字コードの種類と出力する文字の符号化方式は何にしたいか分かってるの?
入力される文字コードの種類と出力する文字の符号化方式は何にしたいか分かってるの?
193デフォルトの名無しさん (ラクッペペ MMe6-4R9W)
2020/10/21(水) 21:05:35.53ID:Cabs0W0/M 文字が文字コードで扱われるのは普通の事だ
画像とかではないなら
画像とかではないなら
194デフォルトの名無しさん (ワッチョイ 6247-YvdE)
2020/10/21(水) 22:53:14.42ID:sHBY55kz0 putw
putwc
putwc
195蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 3901-IaiW)
2020/10/21(水) 23:01:37.11ID:T/uvMZ2i0 全角文字はマルチバイト文字かUnicode文字。
196デフォルトの名無しさん (ワッチョイ 0d01-LA9s)
2020/10/22(木) 04:18:40.19ID:OxqRNNZs0 フリーランス向け報酬即日払いサービス『先払い』が、オンライン資金調達プラットフォーム『資金調達freee』β版に掲載開始
https://prtimes.jp/main/html/rd/p/000000037.000047439.html
フリーランスやパラレルワーカー同士のマッチングプラットフォーム「conema」が、
案件依頼・仲間募集を中心とした掲示板機能(β版)をリリース!
https://prtimes.jp/main/html/rd/p/000000004.000059389.html
フリーランス薬剤師専門エージェントサービス「きょうりょく薬剤師」、リリース開始。薬剤師の新しい働き方を提唱。
https://prtimes.jp/main/html/rd/p/000000002.000058526.html
中卒、新聞配達員から月収4億の不動産王へ。姫路の不動産王の投資哲学
https://hbol.jp/184178
【アプリ開発で起業】必要な心得とマネタイズ方法のすべて
https://www.dreamgate.gr.jp/contents/column/application-development
副業を認める企業に対して「より魅力的に感じる」人は6割以上。
一方、副業を認めない企業に対する魅力度は6割超が「低下した」と回答
https://prtimes.jp/main/html/rd/p/000000016.000040832.html
みんなが知らない「サラリーマンの生存戦略」副業年収1億円!motoさん伝授
https://diamond.jp/articles/-/247070
https://prtimes.jp/main/html/rd/p/000000037.000047439.html
フリーランスやパラレルワーカー同士のマッチングプラットフォーム「conema」が、
案件依頼・仲間募集を中心とした掲示板機能(β版)をリリース!
https://prtimes.jp/main/html/rd/p/000000004.000059389.html
フリーランス薬剤師専門エージェントサービス「きょうりょく薬剤師」、リリース開始。薬剤師の新しい働き方を提唱。
https://prtimes.jp/main/html/rd/p/000000002.000058526.html
中卒、新聞配達員から月収4億の不動産王へ。姫路の不動産王の投資哲学
https://hbol.jp/184178
【アプリ開発で起業】必要な心得とマネタイズ方法のすべて
https://www.dreamgate.gr.jp/contents/column/application-development
副業を認める企業に対して「より魅力的に感じる」人は6割以上。
一方、副業を認めない企業に対する魅力度は6割超が「低下した」と回答
https://prtimes.jp/main/html/rd/p/000000016.000040832.html
みんなが知らない「サラリーマンの生存戦略」副業年収1億円!motoさん伝授
https://diamond.jp/articles/-/247070
197デフォルトの名無しさん (ワッチョイ 2101-LA9s)
2020/10/24(土) 23:58:39.57ID:3PXn8xmW0 なぜ
int* a = 0;
*(PBYTE*)&a += 5;
は動作するのに
int* a = 0;
(PBYTE)a += 5;
はエラーになるのですか?
int* a = 0;
*(PBYTE*)&a += 5;
は動作するのに
int* a = 0;
(PBYTE)a += 5;
はエラーになるのですか?
198デフォルトの名無しさん (ワッチョイ e963-gGz3)
2020/10/25(日) 00:02:11.04ID:TZHfVi9W0199デフォルトの名無しさん (ワッチョイ 2101-LA9s)
2020/10/25(日) 00:12:03.26ID:5nJTYzvV0 >>198
キャストしているとはいえ、ポインタaに加算していると思うのですが、、
ポインタはアドレス0を指しているので、加算することによってアドレス5を参照したいのですが
なぜかエラーが出てしまうのかわかりません..
キャストしているとはいえ、ポインタaに加算していると思うのですが、、
ポインタはアドレス0を指しているので、加算することによってアドレス5を参照したいのですが
なぜかエラーが出てしまうのかわかりません..
200デフォルトの名無しさん (ワッチョイ 02f9-3XbD)
2020/10/25(日) 00:42:02.50ID:LNYSWk6n0 それだけじゃ参照してないしエラーなんてならなそうだけど
いつどんなエラーになるの?
参照した時?なら、5番地を読んでいい環境なの?
windowsやlinux等高級なOS上なら、絶対番地を勝手に読んじゃダメだよ
いつどんなエラーになるの?
参照した時?なら、5番地を読んでいい環境なの?
windowsやlinux等高級なOS上なら、絶対番地を勝手に読んじゃダメだよ
201デフォルトの名無しさん (ワッチョイ e963-gGz3)
2020/10/25(日) 00:46:43.39ID:TZHfVi9W0 (PBYTE)a は 変数ではなく、値になる
202デフォルトの名無しさん (ワッチョイ 2101-LA9s)
2020/10/25(日) 00:51:22.10ID:5nJTYzvV0 >>200
コンパイルエラーになるんです。
エラー内容は"式は変更可能な左辺値である必要があります"です。
このコードはここに投稿するためのテストのために書いたコードなので、
参照関係の問題は理解しています。
*(PBYTE*)&a += 5;
と
(PBYTE)a += 5;
はやってることは同じと思うのですが、なぜエラーになるのかなと。
そういうものとして理解するしかないのでしょうかね
コンパイルエラーになるんです。
エラー内容は"式は変更可能な左辺値である必要があります"です。
このコードはここに投稿するためのテストのために書いたコードなので、
参照関係の問題は理解しています。
*(PBYTE*)&a += 5;
と
(PBYTE)a += 5;
はやってることは同じと思うのですが、なぜエラーになるのかなと。
そういうものとして理解するしかないのでしょうかね
203デフォルトの名無しさん (ワッチョイ e963-gGz3)
2020/10/25(日) 00:57:14.44ID:TZHfVi9W0 *(PBYTE*)&a =
変数aの現在の値を&で取り出し、
それをポインタ値として扱い、
そのポインタ値が指し示すところに代入する
ということじゃないかな
変数aの現在の値を&で取り出し、
それをポインタ値として扱い、
そのポインタ値が指し示すところに代入する
ということじゃないかな
204デフォルトの名無しさん (ブーイモ MM76-mN35)
2020/10/25(日) 01:18:53.38ID:TWzqhGL8M (PBYTE)a みたいにキャストすると、値の解釈の変更ということになり、
代入先(左辺値)にはできなくなる。
int i;
(float)i = 1.1;
って意味あると思う?
代入先(左辺値)にはできなくなる。
int i;
(float)i = 1.1;
って意味あると思う?
205デフォルトの名無しさん (ワッチョイ 2101-LA9s)
2020/10/25(日) 01:33:16.78ID:5nJTYzvV0 あ〜〜 なるほど
floatなどの小数点以下を扱う型は以下のようにdが1になる特別な仕様があるから
そのためにエラーになるようになってるんですかね。
float c = 1.5f;
int d = (int)c;
int e = *(int*)&c;
この場合、dは1になるけど、eは1069547520になるから、
エラーになる現象はこれと近いのかな
この解釈であってるのだろうか
floatなどの小数点以下を扱う型は以下のようにdが1になる特別な仕様があるから
そのためにエラーになるようになってるんですかね。
float c = 1.5f;
int d = (int)c;
int e = *(int*)&c;
この場合、dは1になるけど、eは1069547520になるから、
エラーになる現象はこれと近いのかな
この解釈であってるのだろうか
206デフォルトの名無しさん (ブーイモ MM76-mN35)
2020/10/25(日) 01:35:55.99ID:TWzqhGL8M それそれ。
それ追記しようとしてた。
それ追記しようとしてた。
207デフォルトの名無しさん (ワッチョイ 2101-50og)
2020/10/25(日) 01:54:40.07ID:5nJTYzvV0 とはいえ
int i;
(float)i = 1.1;
これはiを一時的にfloatにキャストしてるだけだから、エラーにせずにiは1として動作させるとこはできなかったんだろうか
int i;
(float)i = 1.1;
これはiを一時的にfloatにキャストしてるだけだから、エラーにせずにiは1として動作させるとこはできなかったんだろうか
208デフォルトの名無しさん (ワッチョイ c6e9-tMQb)
2020/10/25(日) 02:21:39.27ID:COZe3KfC0209デフォルトの名無しさん (ワッチョイ 2101-50og)
2020/10/25(日) 02:57:11.72ID:5nJTYzvV0 >>208
そもそもなぜコンパイラがこれをエラーと捉えるのかというのがわからないと言う意味で言っておりました。
そもそもなぜコンパイラがこれをエラーと捉えるのかというのがわからないと言う意味で言っておりました。
210デフォルトの名無しさん (ワッチョイ c6e9-tMQb)
2020/10/25(日) 03:00:35.23ID:COZe3KfC0211デフォルトの名無しさん (ワッチョイ c6e9-tMQb)
2020/10/25(日) 03:18:58.54ID:COZe3KfC0212デフォルトの名無しさん (ワッチョイ 21da-gGz3)
2020/10/25(日) 03:28:10.91ID:UGl+6vH40 >>202
キャストの結果は常に右辺値
右辺値を代入してるから右辺値には代入出来ないというエラーが出る
ポインタのデリファレンスの結果は左辺値なので代入も問題ない
あとエスパーするにPBYTEってuint8_t (unsigned char)なんだろうけど(それ以外の場合はデリファレンスの結果が未定義),
> *(PBYTE*)&a += 5;
はint型の先頭バイトを書き換えたいという意図で,
> (PBYTE)a += 5;
こっちはメモリのどの位置を書き換えたいのか自明じゃないからやってること自体全く異なる
キャストの結果は常に右辺値
右辺値を代入してるから右辺値には代入出来ないというエラーが出る
ポインタのデリファレンスの結果は左辺値なので代入も問題ない
あとエスパーするにPBYTEってuint8_t (unsigned char)なんだろうけど(それ以外の場合はデリファレンスの結果が未定義),
> *(PBYTE*)&a += 5;
はint型の先頭バイトを書き換えたいという意図で,
> (PBYTE)a += 5;
こっちはメモリのどの位置を書き換えたいのか自明じゃないからやってること自体全く異なる
213デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/25(日) 08:17:29.39ID:B8Qi0Gue0 キャスト式の結果は左辺値ではない
間接演算式の結果は左辺値となる
これだけのことだろ
間接演算式の結果は左辺値となる
これだけのことだろ
214はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-3XbD)
2020/10/25(日) 09:56:54.64ID:63196X630 gcc3 の頃までは cast-as-lvalue が有ったけど 4 になるときに廃止された。
古いコードでこの機能をあてにしているものはあるかもね。
古いコードでこの機能をあてにしているものはあるかもね。
215デフォルトの名無しさん (ワッチョイ fd5f-Naer)
2020/10/25(日) 13:18:04.05ID:FzqccguI0 >>197
(PBYTE)*a += 5;
(PBYTE)*a += 5;
216デフォルトの名無しさん (ワッチョイ fd5f-Naer)
2020/10/25(日) 13:19:58.42ID:FzqccguI0 >>202
答えだけ言うとやってることが同じではない
答えだけ言うとやってることが同じではない
217デフォルトの名無しさん (ワッチョイ 2101-LA9s)
2020/10/25(日) 16:44:12.86ID:5nJTYzvV0218デフォルトの名無しさん (ワッチョイ fd5f-YvdE)
2020/10/25(日) 16:58:46.13ID:FzqccguI0 (PBYTE *) って (BYTE **) のことか
それなら同じじゃないな
っていうか「左辺値が変更出来ない型になってる」
これでこの話は終わり
それなら同じじゃないな
っていうか「左辺値が変更出来ない型になってる」
これでこの話は終わり
219デフォルトの名無しさん (ワッチョイ 6252-OGcW)
2020/10/25(日) 17:29:39.65ID:0u/0rMBT0 それなら「左辺値」ではなく「左辺」だろう
220はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-3XbD)
2020/10/25(日) 18:23:36.88ID:63196X630 >>217
型とは独立して (一部関係もあるが) lvalue (左辺値) と rvalue (右辺値) という概念があるってのは理解できてる?
たとえば
int x=5;
x = 2;
と書いたら OK だけど
5 = 2;
と書いたらもちろん NG だというのはわかるよね。
変数は評価したら値が出てくるけどそれとは別に場所としての性質も持ってる。
場所と値としての性質を併せ持っているのが lvalue なんだ。
で、キャスト演算子を適用するというのは取り出した値に対して型変換することになるので、
型変換した結果は場所としての性質が失われてしまう。
つまり lvalue ではなく rvalue になってしまってこれは代入先としては有効ではない。
---- 余談 ----
実際には代入先は lvalue の中でも特に modifiable lvalue (変更可能な左辺値) である必要があって
そのあたりの詳細は 6.3.2.1 あたりに記述がある。
http://kikakurui.com/x3/X3010-2003-01.html#page38-div
型とは独立して (一部関係もあるが) lvalue (左辺値) と rvalue (右辺値) という概念があるってのは理解できてる?
たとえば
int x=5;
x = 2;
と書いたら OK だけど
5 = 2;
と書いたらもちろん NG だというのはわかるよね。
変数は評価したら値が出てくるけどそれとは別に場所としての性質も持ってる。
場所と値としての性質を併せ持っているのが lvalue なんだ。
で、キャスト演算子を適用するというのは取り出した値に対して型変換することになるので、
型変換した結果は場所としての性質が失われてしまう。
つまり lvalue ではなく rvalue になってしまってこれは代入先としては有効ではない。
---- 余談 ----
実際には代入先は lvalue の中でも特に modifiable lvalue (変更可能な左辺値) である必要があって
そのあたりの詳細は 6.3.2.1 あたりに記述がある。
http://kikakurui.com/x3/X3010-2003-01.html#page38-div
221デフォルトの名無しさん (ワッチョイ 82ad-EeCs)
2020/10/26(月) 03:47:15.23ID:zDyo5E1K0 >>191
出力する端末が漢字を出すような端末で、尚且つその端末で漢字とされるコードを引き渡すのであれば出る。
しかしメジャーな文字コード体系で1バイトだけで漢字を表すようなものはなく、そういった端末も(おそらく自作しない限りは)ないだろうから putc() 1回だけで漢字が出ることはまずないと思う。
出力する端末が漢字を出すような端末で、尚且つその端末で漢字とされるコードを引き渡すのであれば出る。
しかしメジャーな文字コード体系で1バイトだけで漢字を表すようなものはなく、そういった端末も(おそらく自作しない限りは)ないだろうから putc() 1回だけで漢字が出ることはまずないと思う。
222デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/26(月) 07:27:20.32ID:ddH/1NYY0223デフォルトの名無しさん (ブーイモ MM76-mN35)
2020/10/26(月) 09:07:00.12ID:ePNtOm9AM224デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/26(月) 09:39:14.29ID:ddH/1NYY0 >>223
ん? 俺は、おまえさんに恥をかかせたのか? そういう意図はなかったが
ん? 俺は、おまえさんに恥をかかせたのか? そういう意図はなかったが
225デフォルトの名無しさん (ブーイモ MM76-mN35)
2020/10/26(月) 10:11:22.50ID:ePNtOm9AM >>224
最初の質問が
*(PBYTE*)&a += 5;
(PBYTE)a += 5;
の違いなのに、
(PBYTE)*a += 5;
を解説するというトンチンカンで質問者を困らす回答見せられたら、
質問者に申し訳ないし同じ回答者としてこっちが恥ずかしくなるわ
最初の質問が
*(PBYTE*)&a += 5;
(PBYTE)a += 5;
の違いなのに、
(PBYTE)*a += 5;
を解説するというトンチンカンで質問者を困らす回答見せられたら、
質問者に申し訳ないし同じ回答者としてこっちが恥ずかしくなるわ
226デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/26(月) 11:15:20.28ID:ddH/1NYY0 俺は別に回答なんかしてねえよ
> ポインタが指す値に5を加算
これは間違いだよと指摘しただけだ
俺と217の対話に横レスしてきて勝手に恥ずかしいとか言ってる恥ずかしいやつに用はない
> ポインタが指す値に5を加算
これは間違いだよと指摘しただけだ
俺と217の対話に横レスしてきて勝手に恥ずかしいとか言ってる恥ずかしいやつに用はない
227デフォルトの名無しさん (ワイーワ2 FFca-YvdE)
2020/10/26(月) 15:09:18.69ID:EltRWJ/HF int a = 123;
int *p = &a;
unsigned c = (unsigned long)p;
みたいにすると怒られるので
unsigned c = *(unsigned long *)&p;
みたいに参照すると ok だったりするけど
本来は参照するだけだったコードが
いつの間にか事情を知らない人によって
*(unsigned long *)&p += 5;
にすり替わったんじゃないかと最近思うようになった
int *p = &a;
unsigned c = (unsigned long)p;
みたいにすると怒られるので
unsigned c = *(unsigned long *)&p;
みたいに参照すると ok だったりするけど
本来は参照するだけだったコードが
いつの間にか事情を知らない人によって
*(unsigned long *)&p += 5;
にすり替わったんじゃないかと最近思うようになった
228デフォルトの名無しさん (ワッチョイ 0569-z4aL)
2020/10/26(月) 15:20:36.35ID:lJWYL04O0 ポインタ(アドレス)の距離を求めるのに ポインタ値を整数化することはあるかもしれないしエラーにはならんね
unsigned long c1 = (unsigned long)p1;
unsigned long c2 = (unsigned long)p2;
c1 - c2 のような (p1 - p2 はあくまで要素数だしね)
unsigned long c1 = (unsigned long)p1;
unsigned long c2 = (unsigned long)p2;
c1 - c2 のような (p1 - p2 はあくまで要素数だしね)
229デフォルトの名無しさん (エムゾネ FFa2-Naer)
2020/10/26(月) 15:49:43.24ID:qF0DukLxF #include <iostream>
using namespace std;
class A{public: int a; A(int b):a(b){}};
int main() {
A a(123), b(456);
A *p = &a, *q = &b;
unsigned long r = (unsigned long)p, s = (unsigned long)q;
cout << s - r << endl;
cout << (unsigned long)q - (unsigned long)p << endl;
cout << (unsigned long)&b - (unsigned long)&a << endl;
cout << (unsigned long)&q - (unsigned long)&p << endl;
return 0;
}
特に問題無いか
using namespace std;
class A{public: int a; A(int b):a(b){}};
int main() {
A a(123), b(456);
A *p = &a, *q = &b;
unsigned long r = (unsigned long)p, s = (unsigned long)q;
cout << s - r << endl;
cout << (unsigned long)q - (unsigned long)p << endl;
cout << (unsigned long)&b - (unsigned long)&a << endl;
cout << (unsigned long)&q - (unsigned long)&p << endl;
return 0;
}
特に問題無いか
230デフォルトの名無しさん (ワッチョイ 2101-3XbD)
2020/10/26(月) 20:55:35.80ID:pV+9Vnjg0231デフォルトの名無しさん (ワッチョイ 2101-3XbD)
2020/10/26(月) 20:56:38.86ID:pV+9Vnjg0 × p を
○ p の指し先を
○ p の指し先を
232デフォルトの名無しさん (ラクッペペ MMe6-4R9W)
2020/10/26(月) 21:41:34.62ID:P78swXdWM *pじゃなくてpを取り出してるからだろ
233デフォルトの名無しさん (ワッチョイ d1c7-tMQb)
2020/10/26(月) 21:55:26.21ID:ZLlt5QiZ0 pの指し先をunsignedとして抜き出しているわけではないよ
p(ポインタ)自体をunsignedに無理やり変換している
p(ポインタ)自体をunsignedに無理やり変換している
234デフォルトの名無しさん (ワッチョイ 21da-gGz3)
2020/10/26(月) 21:58:46.96ID:rHcuqZcg0235デフォルトの名無しさん (ワッチョイ 2101-3XbD)
2020/10/26(月) 22:01:39.15ID:pV+9Vnjg0 ん? ポインタの整数値化 intptr_t な意図なの?
intptr_t c = *(intptr_t *)&p; がなおさら混乱するな
intptr_t c = *(intptr_t *)&p; がなおさら混乱するな
236デフォルトの名無しさん (ワッチョイ 21da-gGz3)
2020/10/26(月) 22:08:25.93ID:rHcuqZcg0237デフォルトの名無しさん (ワッチョイ 21da-gGz3)
2020/10/26(月) 22:09:01.82ID:rHcuqZcg0 uintptr_t addr_a = (uintptr_t)&a;
_tが抜けた
_tが抜けた
238デフォルトの名無しさん (ワッチョイ 2101-3XbD)
2020/10/26(月) 22:12:25.39ID:pV+9Vnjg0239デフォルトの名無しさん (ワッチョイ 0d7c-Naer)
2020/10/27(火) 12:22:27.85ID:telUcSp60240デフォルトの名無しさん (ワッチョイ 5335-OcNG)
2020/10/29(木) 08:19:02.64ID:HwPze+NQ0 どーせ、プロセッサのプロテクトモードとかで、純粋にポインタの計算すると意図しないオーバーフローやアンダーフローするからじゃね?
241デフォルトの名無しさん (ワッチョイ 0bb6-CXnf)
2020/11/01(日) 06:41:32.43ID:TJdrJp6g0 ポインタは符号付きなわけか
242デフォルトの名無しさん (ワッチョイ 12ad-ghpU)
2020/11/07(土) 11:29:01.04ID:zMpN0fYG0 ファミコンってC言語でもプログラミングできるんだねえ
すごいねえ
すごいねえ
243デフォルトの名無しさん (ブーイモ MMad-z/nF)
2020/11/07(土) 15:37:28.16ID:vm8bz31qM そんなのコンパイラ次第じゃないのか?
知らんけど
知らんけど
244デフォルトの名無しさん (ワッチョイ 92ad-t1Nk)
2020/11/08(日) 15:22:32.44ID:iVjroALJ0 >>242
ファミコンのCPUは2A03(6502互換)だからかなり苦しい感じだと思うけどな。
スタックポインタが8bitしかないしな。つまりスタックは256バイト固定。もちろんメモリは最大64KB。
それでもCコンパイラはあったようなのでかなり工夫したんだろうと思う。
ファミコンのCPUは2A03(6502互換)だからかなり苦しい感じだと思うけどな。
スタックポインタが8bitしかないしな。つまりスタックは256バイト固定。もちろんメモリは最大64KB。
それでもCコンパイラはあったようなのでかなり工夫したんだろうと思う。
245デフォルトの名無しさん (ワッチョイ adda-bRPx)
2020/11/08(日) 16:57:10.35ID:qvYN+WNM0 今も昔もゲーム機の開発なんかはクロス環境だろ
ターゲット上で直接コンパイラ走らせているとは思えないのだが
ターゲット上で直接コンパイラ走らせているとは思えないのだが
246デフォルトの名無しさん (ワッチョイ b163-7Ce/)
2020/11/08(日) 17:19:43.81ID:fW7gwItS0 任天堂から高価な開発機を借りるか買うかしてやるんじゃなかった?
247はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ee3e-L1wp)
2020/11/08(日) 17:30:03.29ID:jznHieWa0 >>245
いやいや、ランタイムの保証が小さければ工夫がいることにはかわらんやろ。
いやいや、ランタイムの保証が小さければ工夫がいることにはかわらんやろ。
248デフォルトの名無しさん (ワッチョイ 9eb6-t1Nk)
2020/11/09(月) 06:33:25.75ID:ntGr9Bxw0 「Cが使える」=「Cコンパイラを実行できる」と思ってしまうやつって
BASIC出身なんだろうな
BASIC出身なんだろうな
249デフォルトの名無しさん (スププ Sdb2-dhhq)
2020/11/09(月) 07:43:11.08ID:RNMdHR5xd そりゃコンパイル後のバイナリは言語とは関係ないから「ある言語が使える」はそのプラットフォーム上でコンパイラなりインタプリタが動くことを意味するやろ
250デフォルトの名無しさん (ワッチョイ 9eb6-t1Nk)
2020/11/09(月) 08:25:46.31ID:ntGr9Bxw0 ドヤるようなことかよw
251デフォルトの名無しさん (ラクッペペ MM96-SeBg)
2020/11/09(月) 09:08:37.31ID:xqW72pM4M252デフォルトの名無しさん (ワッチョイ b1d2-t1Nk)
2020/11/09(月) 11:06:53.99ID:msclAy3m0 FCの開発機は1千万円でメガドラ、PCエンジンは250万円という記事を昔みかけた。
そういやぁバッ活に「子育てごっこ」とかいうFC開発キットの広告出てたっけ。
そういやぁバッ活に「子育てごっこ」とかいうFC開発キットの広告出てたっけ。
253デフォルトの名無しさん (ワッチョイ 9eb6-t1Nk)
2020/11/09(月) 11:56:33.56ID:ntGr9Bxw0 あの頃のカスタムLSIは衝撃だったね
255デフォルトの名無しさん (ワッチョイ 9eb6-t1Nk)
2020/11/09(月) 12:11:03.31ID:ntGr9Bxw0 ( ゚∀゚) アハハハハノヽノヽノ \ / \ / \
256デフォルトの名無しさん (ワッチョイ 9202-wqoK)
2020/11/09(月) 13:23:50.49ID:YVG+/FyZ0 もう諦めた
パンツはく
パンツはく
257デフォルトの名無しさん (ワンミングク MMa3-pjKh)
2020/11/13(金) 12:27:52.99ID:uyiuIcZiM goto 使うなと保健所や医者がうるさいの何なの。
258デフォルトの名無しさん (ワッチョイ dd69-PeJZ)
2020/11/13(金) 12:47:00.05ID:6BGA2vQ70 多重に囲い込まれているところからの脱出すら許さない教条主義
例外を認めるとあれもこれも際限がなくなるのでお役所作業
例外を認めるとあれもこれも際限がなくなるのでお役所作業
259デフォルトの名無しさん (ワッチョイ 9591-SiqM)
2020/11/13(金) 13:29:41.79ID:x2VHR/K20 仕事丸投げで解決
260デフォルトの名無しさん (ワッチョイ cbb6-Y0tO)
2020/11/13(金) 14:08:28.42ID:5HXc1MIP0 クリプトン星人に投げたくせに
クリプトン星人がgoto使うとゴチャゴチャぬかす
勝手な奴ら
クリプトン星人がgoto使うとゴチャゴチャぬかす
勝手な奴ら
261デフォルトの名無しさん (ワッチョイ 9b9a-plKQ)
2020/11/13(金) 20:49:27.65ID:0Q6l6RCm0 gotoは有害であるとみなされると、昔の偉い人が言いました。
262デフォルトの名無しさん (ワッチョイ a501-fAyS)
2020/11/14(土) 14:04:47.82ID:eZvyHs9U0 gotoキャンペーン中止の可能性
264デフォルトの名無しさん (ワンミングク MMa3-pjKh)
2020/11/14(土) 15:29:53.89ID:QvOqIpVLM basic風にgosubキャンペーンではどうだろう。
265デフォルトの名無しさん (ワッチョイ 233d-PeJZ)
2020/11/14(土) 15:46:33.79ID:kNYsw/sP0 gotoトラブル
266デフォルトの名無しさん (ワッチョイ 15d2-WW/G)
2020/11/14(土) 16:57:36.06ID:t12i3dhb0 Go To LOVEる
267デフォルトの名無しさん (ワッチョイ 1563-WW/G)
2020/11/14(土) 17:20:09.80ID:XuOfn3YC0 ここはアニメ板ですね
268デフォルトの名無しさん (ワッチョイ ddda-JlI4)
2020/11/14(土) 18:05:11.28ID:b41n/hcI0 プログラマの大凡半数はオタクだからな(´・ω・`)
269デフォルトの名無しさん (ワッチョイ 9521-maKZ)
2020/11/14(土) 18:16:19.79ID:3sCpnJ2t0 しかし例外トラベルはなんかいやだ。
>>267
アニメならば、2020 年地上波アニメで一番よかったのは a.i.c.o incarnation だったと私は考えています
アニメならば、2020 年地上波アニメで一番よかったのは a.i.c.o incarnation だったと私は考えています
271デフォルトの名無しさん (ワッチョイ 6347-NSHw)
2020/11/14(土) 22:05:45.83ID:XJ24TZhC0 そうか?
TRUEは歌がうまいし
白石晴香の声も好きだけど
設定が科学的なフリしてる割に中途半端だし
ツッコミどころ多くてなんだかなと思いながら観てた
TRUEは歌がうまいし
白石晴香の声も好きだけど
設定が科学的なフリしてる割に中途半端だし
ツッコミどころ多くてなんだかなと思いながら観てた
272デフォルトの名無しさん (ワッチョイ 23e0-Pj7A)
2020/11/15(日) 16:01:45.41ID:ZF6xjL9s0 webサイトぐらいしか作った事無いド素人なのですが
cheatengineのようなツールはどうやって作るのですか?
cheatengineのようなツールはどうやって作るのですか?
273デフォルトの名無しさん (ワッチョイ ed5f-NSHw)
2020/11/15(日) 16:31:52.95ID:U+/Dwi3J0 マルチしちゃったね
274デフォルトの名無しさん (ワッチョイ 1563-WW/G)
2020/11/15(日) 16:46:32.42ID:BV2MAPDR0 許すw
275デフォルトの名無しさん (アウアウウー Sa3b-t9SE)
2020/11/18(水) 02:01:14.39ID:7/2eOuWRa int suti[]={1,2,3};ってやったらsuti[3]は存在しないんだよね?for文で存在しなくなるまで〜ってやりたいんだけどどうすればいい?要素数が変わってもいいようにしたいからi != 3はやりたくないんだよね
276デフォルトの名無しさん (アウアウウー Sa3b-t9SE)
2020/11/18(水) 02:06:30.67ID:7/2eOuWRa277デフォルトの名無しさん (ワッチョイ e7ca-N/60)
2020/11/18(水) 02:16:10.62ID:D7KcGGQQ0 条件式をi<3;ってするのが定番かな。
278デフォルトの名無しさん (ワッチョイ ef63-n9sk)
2020/11/18(水) 02:16:23.70ID:xY74VPsT0 配列名ってメモリー上に付けられたラベルみたいなものだから、
添え字の範囲が想定を逸脱しててもアクセス出来るからな
エラーになるかは別にして
添え字の範囲が想定を逸脱しててもアクセス出来るからな
エラーになるかは別にして
279デフォルトの名無しさん (ワッチョイ ef63-n9sk)
2020/11/18(水) 02:17:27.84ID:xY74VPsT0 わりと真面目にやりたいなら、
#define Numof(n) (sizeof(n) / sizeof(n[0]))
for (i = 0; i < Numof(suti); i++)
#define Numof(n) (sizeof(n) / sizeof(n[0]))
for (i = 0; i < Numof(suti); i++)
280デフォルトの名無しさん (アウアウウー Sa3b-fmSy)
2020/11/18(水) 08:19:22.94ID:xva9VBXaa281デフォルトの名無しさん (ワッチョイ 62a5-Aw6/)
2020/11/18(水) 11:15:05.78ID:2WQ1ruJZ0 宗教的理由でsizeofを使いたくないなら
あとはセンチネルの-1を置くくらいしかない
int suti[]={1,2,3,-1};
……何がコイツの教義のお眼鏡に適うかどうか分からんからこれも否定されるかも知れんな
「存在」に関する用語の用法なら、やっぱり宗教的事案で、
「存在しているかどうかをチェックしたい」となるから宗教的思考が背後に控えていると思われる
配列の個数じゃなくて配列の存在だ
存在してるかどうかに強く拘ってんならやっぱり宗教事案なんだろう
だから理由なんて無いな
宗教的な事由で「要素数はイヤ」なんだろう
あとはセンチネルの-1を置くくらいしかない
int suti[]={1,2,3,-1};
……何がコイツの教義のお眼鏡に適うかどうか分からんからこれも否定されるかも知れんな
「存在」に関する用語の用法なら、やっぱり宗教的事案で、
「存在しているかどうかをチェックしたい」となるから宗教的思考が背後に控えていると思われる
配列の個数じゃなくて配列の存在だ
存在してるかどうかに強く拘ってんならやっぱり宗教事案なんだろう
だから理由なんて無いな
宗教的な事由で「要素数はイヤ」なんだろう
282デフォルトの名無しさん (ワッチョイ efd2-n9sk)
2020/11/18(水) 11:49:11.86ID:kf1ewZiT0 BASIC時代の 文字数+文字データ 構造思い出した。
283はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b63e-b6az)
2020/11/18(水) 12:01:00.59ID:0x2GmUxc0 >>275-276
こういうトリックが使えなくもない
#include <stdio.h>
int main(void) {
int suti[]={1,2,3};
for(int *p=suti; p< *(&suti+1); ++p) printf("%d \n", *p);
return 0;
}
こういうトリックが使えなくもない
#include <stdio.h>
int main(void) {
int suti[]={1,2,3};
for(int *p=suti; p< *(&suti+1); ++p) printf("%d \n", *p);
return 0;
}
284デフォルトの名無しさん (ワッチョイ 62a5-Aw6/)
2020/11/18(水) 12:09:28.92ID:2WQ1ruJZ0 【更新あり】PC-9801のプログラム(ソースコード無し)をリバースエンジニアリングしてくれ!→変態技術の塊なことが判明しました - Togetter
ttps://togetter.com/li/1185437
これによるとBASICはかなり先見性があるらしいが
ttps://togetter.com/li/1185437
これによるとBASICはかなり先見性があるらしいが
285デフォルトの名無しさん (ブーイモ MM3e-cKwM)
2020/11/18(水) 12:59:08.65ID:8knHjFQ7M >>281
それ、センチネルやのうて、ただの終端マークや
それ、センチネルやのうて、ただの終端マークや
286デフォルトの名無しさん (ワッチョイ efd2-n9sk)
2020/11/18(水) 15:03:37.53ID:kf1ewZiT0 BASIC自体が使い物にならないとは思わないけど、
命令セットが貧弱すぎてマシン語と組み合わせないと高度なことができなかった。
命令セットが貧弱すぎてマシン語と組み合わせないと高度なことができなかった。
287デフォルトの名無しさん (ワッチョイ c6b6-b6az)
2020/11/18(水) 16:20:02.97ID:2ppIm+8A0 言語自体で作れる機能がないのはCだってそうだ
BASICでそれをやると遅いからマシン語の出番があったってこと
USRやEXECじゃなく新コマンドを作ろうとすると結局BASICインタプリタのサブルーチンをJSRしまくることになる
BASICでそれをやると遅いからマシン語の出番があったってこと
USRやEXECじゃなく新コマンドを作ろうとすると結局BASICインタプリタのサブルーチンをJSRしまくることになる
288デフォルトの名無しさん (ワッチョイ ef63-n9sk)
2020/11/18(水) 17:09:25.17ID:xY74VPsT0 BASICにはCALLと言う無敵の・・・いやなんでもない
289デフォルトの名無しさん (ワッチョイ af21-Gthl)
2020/11/18(水) 20:16:59.09ID:2DtKbiiK0 >>275
c++みたいな範囲for文ってCの構文に入らんのかの?
int suti[]={1,2,3};
for(int x: suti) do_some(x);
みたいなやつ。使いどころが極めて限定されるから意味ないかのう。
あとは変態マクロをコネコネするしか思いつかん。
c++みたいな範囲for文ってCの構文に入らんのかの?
int suti[]={1,2,3};
for(int x: suti) do_some(x);
みたいなやつ。使いどころが極めて限定されるから意味ないかのう。
あとは変態マクロをコネコネするしか思いつかん。
290デフォルトの名無しさん (ワッチョイ c6b6-b6az)
2020/11/18(水) 20:22:04.53ID:2ppIm+8A0 原理主義的な美意識ならC++いくしかねえだろ
Cは実を取るポリシーだかんあ
Cは実を取るポリシーだかんあ
291はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b63e-b6az)
2020/11/18(水) 23:10:46.92ID:0x2GmUxc0 >>282
C/C++ の世界でも BSTR というものがあってな……。
C/C++ の世界でも BSTR というものがあってな……。
292デフォルトの名無しさん (US 0Hc7-0ni4)
2020/11/19(木) 01:25:26.46ID:k2ADczLrH MacにもPSTRというのがあったなあ。パスカル由来だっけ。
確か紅蓮華の人のような名前のコンピュータが...
確か紅蓮華の人のような名前のコンピュータが...
293デフォルトの名無しさん (アウアウウー Sa3b-0jXX)
2020/11/23(月) 22:01:17.13ID:9aSCyeCwa if (a()) {} else if (b()) {}
のとき呼ばれる関数の順は必ずa(), b()の順ですよね?
if (a()) {} else {if (b()) {}}
文法的には↑こういうわけだから間違いないですよね?
のとき呼ばれる関数の順は必ずa(), b()の順ですよね?
if (a()) {} else {if (b()) {}}
文法的には↑こういうわけだから間違いないですよね?
294デフォルトの名無しさん (ワッチョイ 425c-b6az)
2020/11/23(月) 22:52:02.39ID:O1GHu8Kp0 >293
a()の返り値が0以外(True)ならb()は実行されないんじゃないの?
a()の返り値が0以外(True)ならb()は実行されないんじゃないの?
295デフォルトの名無しさん (アウアウウー Sa3b-+icx)
2020/11/24(火) 00:18:54.48ID:JYMaFV+Pa そうじゃないと aで nullチェックからの bみたいのできなくなりそう
296デフォルトの名無しさん (ワッチョイ ef63-n9sk)
2020/11/24(火) 00:25:40.58ID:stGCUtDe0 NULLの時はそのまま後続処理続けるんでしょうか
297デフォルトの名無しさん (アウアウウー Sa3b-+icx)
2020/11/24(火) 00:29:07.26ID:JYMaFV+Pa nullのときは b を通過しないようにするかと
質問の趣旨とちょっと違ったかもしれませんね
ゴメンなさい
質問の趣旨とちょっと違ったかもしれませんね
ゴメンなさい
298デフォルトの名無しさん (アウアウウー Sa3b-+icx)
2020/11/24(火) 00:30:13.18ID:JYMaFV+Pa ダメレスの上書きだな…
重ね重ね申し訳ない
重ね重ね申し訳ない
299デフォルトの名無しさん (ワッチョイ 425c-b6az)
2020/11/24(火) 00:35:37.30ID:PK3X1vMU0 >if (a()) {} else if (b()) {}
書き直して
if ( a()!=0 ) { 処理1 } else if ( b(0)!=0 ) { 処理2 }
a()の返り値がTrue(0以外)ならば 処理1 を実行して次の行へ
a()の返り値がFalse(0)ならば b() を呼び出して、b(0)の返り値が True(0以外)ならば 処理2 を実行。
書き直して
if ( a()!=0 ) { 処理1 } else if ( b(0)!=0 ) { 処理2 }
a()の返り値がTrue(0以外)ならば 処理1 を実行して次の行へ
a()の返り値がFalse(0)ならば b() を呼び出して、b(0)の返り値が True(0以外)ならば 処理2 を実行。
300デフォルトの名無しさん (アウアウカー Sac7-i8bA)
2020/11/24(火) 09:15:59.48ID:ZWk4Vaeta if (stateA) else if (stateB) {} はまだ直感的だけど
if (a() && b()) { ... } で a() が偽の時 b() は実行されない
if (a() || b()) { ... } で a() が真の時 b() は実行されない
のはC言語ならではルールなので注意
if (a() && b()) { ... } で a() が偽の時 b() は実行されない
if (a() || b()) { ... } で a() が真の時 b() は実行されない
のはC言語ならではルールなので注意
301デフォルトの名無しさん (ブーイモ MM13-cKwM)
2020/11/24(火) 09:34:54.23ID:HgpldYdAM >>300
今時のたいがいの言語で同じルールだ。
今時のたいがいの言語で同じルールだ。
302デフォルトの名無しさん (ワッチョイ efd2-n9sk)
2020/11/24(火) 11:48:49.75ID:8CcwCAVK0 デバッガーでトレースするとか
printf()出力で確認するとかしないのかな?
8bit CPUのアセンブラ時代なんてバグでハングして(ry
printf()出力で確認するとかしないのかな?
8bit CPUのアセンブラ時代なんてバグでハングして(ry
303135 (アウアウウー Sa3b-wL2m)
2020/11/24(火) 12:19:31.97ID:TYQ0nicua 実装がそうなっているだけか規格で保証されているかは全く別問題だから, 「やってみたらそうなった」に加えて規格を確認するのは重要
304デフォルトの名無しさん (スップ Sd02-xHFB)
2020/11/24(火) 12:22:00.11ID:vTVthpTQd >>301
そう思ってると痛い目にあう
そう思ってると痛い目にあう
305デフォルトの名無しさん (JP 0H67-cKwM)
2020/11/24(火) 13:36:23.71ID:CAtJf7/qH306デフォルトの名無しさん (ラクッペペ MM8e-krez)
2020/11/24(火) 13:53:18.36ID:g7Dt5dEuM307デフォルトの名無しさん (ワッチョイ ef63-n9sk)
2020/11/24(火) 17:29:31.98ID:stGCUtDe0 そこまで掘り下げなくても、単に if else 使う時の順序と関数呼出の有無
308293 (アウアウウー Sa3b-0jXX)
2020/11/24(火) 17:57:03.44ID:ufG8nYHfa309デフォルトの名無しさん (スップ Sd3f-IKRj)
2020/11/25(水) 17:50:07.30ID:h9isg/D4d310デフォルトの名無しさん (ワッチョイ d763-m/w5)
2020/11/25(水) 17:58:01.33ID:rJINVE9t0 if else 辺りは、そんなに違いは無いと思うが
311デフォルトの名無しさん (ワッチョイ 9701-0Obg)
2020/11/25(水) 19:36:32.00ID:DcZYUINF0 if else 辺りは、PascalとCの違いが分かるところの一つなのな
312デフォルトの名無しさん (ワッチョイ ffb6-P4WK)
2020/11/25(水) 21:51:34.65ID:vhvyuere0 > C言語時代の言語はたいがいの言語でCとは違うルール
日本語でおk
日本語でおk
313デフォルトの名無しさん (ブーイモ MMdb-WfaT)
2020/11/26(木) 01:30:04.21ID:R1TSJRT3M 入れ子になって構文解析に保証回数の記述が必要なC
たぶん大抵は数珠繋ぎになって解析器はお気楽ご気楽シゴトなelseif装備言語
たぶん大抵は数珠繋ぎになって解析器はお気楽ご気楽シゴトなelseif装備言語
314デフォルトの名無しさん (ブーイモ MMdb-E3Cu)
2020/11/26(木) 08:07:50.73ID:EOjdKX+aM 1passでコードが吐けるんじゃない限り
どこかに構文木を蓄積する必要があるんだから
何らかの上限は必ず存在する。
どこかに構文木を蓄積する必要があるんだから
何らかの上限は必ず存在する。
315デフォルトの名無しさん (ワッチョイ 6710-VxgE)
2020/12/09(水) 14:46:15.05ID:lKZrYGPu0 ある構造体があるメンバーを持ってるか持ってないかで場合わけってできるの?
316デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/09(水) 15:20:51.88ID:dBVX1XEl0 C言語の話で良いのか?
マクロレベルならできるだろうが
実行時は無理だろうな
マクロレベルならできるだろうが
実行時は無理だろうな
317デフォルトの名無しさん (ドコグロ MM9f-hR+t)
2020/12/09(水) 16:23:12.63ID:W1Z3cSFoM >>315
C++のtemplateなら……
C++のtemplateなら……
318デフォルトの名無しさん (ワッチョイ 87da-sAgx)
2020/12/09(水) 23:18:41.68ID:X6ku5mk00 テンプレートを使わないマクロで実現する方法思いつかなかったから調べてみたけど, BOOST_DECLARE_HAS_MEMBERもSFINAEで実装されてた
標準Cの規格の範囲でポータブルな実装は無理そうに思えてきた
標準Cの規格の範囲でポータブルな実装は無理そうに思えてきた
319デフォルトの名無しさん (ワッチョイ 6710-VxgE)
2020/12/10(木) 08:18:36.14ID:yWf2E74j0 C言語にテンプレート機能だけつける方法ないの?
320デフォルトの名無しさん (ワッチョイ 7fb6-orE1)
2020/12/10(木) 08:33:48.40ID:1ebLrqpT0 #include <tgmath.h>みたいの?
321はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/10(木) 11:36:21.24ID:p57PMoZs0 >>320
学術的な分類はよく知らないけどそれはアドホック多相に分類されるものじゃないの?
テンプレートはパラメトリック多相的なものなので多相を実現するものという意味では近いけど、
使い勝手としてはそんなに近くない。
>>319
「だけ」っていっても C++ のテンプレートは C++ の型システムやなんやかんやと一体のものなので、
テンプレートだけ抜き出して C に入れるみたいなことは出来ないでしょ。
C 独自のテンプレートみたいなのを考えるくらいなら C++ を使えやって話になるだろうし。
>>315
マクロ展開は文法の解釈に先立って実行されるので、
マクロ展開時にプログラムの内容を見て分岐することは出来ない。
構造体を元にして真偽値を生成するような「展開形」を思いつけば実行時に分岐することは
出来るのかもしれないけど思いつかないなぁ。
学術的な分類はよく知らないけどそれはアドホック多相に分類されるものじゃないの?
テンプレートはパラメトリック多相的なものなので多相を実現するものという意味では近いけど、
使い勝手としてはそんなに近くない。
>>319
「だけ」っていっても C++ のテンプレートは C++ の型システムやなんやかんやと一体のものなので、
テンプレートだけ抜き出して C に入れるみたいなことは出来ないでしょ。
C 独自のテンプレートみたいなのを考えるくらいなら C++ を使えやって話になるだろうし。
>>315
マクロ展開は文法の解釈に先立って実行されるので、
マクロ展開時にプログラムの内容を見て分岐することは出来ない。
構造体を元にして真偽値を生成するような「展開形」を思いつけば実行時に分岐することは
出来るのかもしれないけど思いつかないなぁ。
322デフォルトの名無しさん (ワッチョイ 8769-YTVu)
2020/12/10(木) 13:40:39.75ID:Rt1ylxrY0 開発環境の都合で Cしかないので困ってるとすれば
C++ 食って C 吐き出す中間のコンパイラがあればいい ってことに
C++ 食って C 吐き出す中間のコンパイラがあればいい ってことに
323デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/10(木) 15:08:30.04ID:cFFVV66u0324デフォルトの名無しさん (ワッチョイ bf9a-zfYG)
2020/12/10(木) 20:09:21.68ID:CcbWokCZ0325デフォルトの名無しさん (ドコグロ MM9f-hR+t)
2020/12/10(木) 21:28:27.30ID:hyB2wVsLM >>324
sfinaeがあるので死ぬ代わりにfalseを返す関数みたいなのが作れる
ランタイムでどうこうしたければtype_info -> boolな関数を作ればいいが、型を追加するたびに変更が入ることになってtemplateほどの便利さはない
sfinaeがあるので死ぬ代わりにfalseを返す関数みたいなのが作れる
ランタイムでどうこうしたければtype_info -> boolな関数を作ればいいが、型を追加するたびに変更が入ることになってtemplateほどの便利さはない
326デフォルトの名無しさん (ワッチョイ 7fb6-orE1)
2020/12/11(金) 04:23:01.20ID:p1x0IGcK0 C++をベターCとして使う、でいいんでねい?
327はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/11(金) 11:11:25.01ID:NpU6prgS0 >>324
(たぶん公式な用語ではないけど) ハードエラーとソフトエラーという区分がある。
テンプレートの展開に失敗してコンパイルの失敗になってしまうハードエラーと、
テンプレートの次の候補を試すソフトエラー。
で、そのソフトエラーを上手いこと利用して分岐するのが SFINAE ってわけ。
C++20 からはコンセプトが入ったのでそれもかなり楽に出来るようになった。
(たぶん公式な用語ではないけど) ハードエラーとソフトエラーという区分がある。
テンプレートの展開に失敗してコンパイルの失敗になってしまうハードエラーと、
テンプレートの次の候補を試すソフトエラー。
で、そのソフトエラーを上手いこと利用して分岐するのが SFINAE ってわけ。
C++20 からはコンセプトが入ったのでそれもかなり楽に出来るようになった。
328デフォルトの名無しさん (ワッチョイ 6791-xqow)
2020/12/11(金) 13:56:53.94ID:VMKMxeJn0 ここはC言語スレではなくC++勧誘スレになったのか
329はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/11(金) 14:34:30.55ID:NpU6prgS0 無理やりでも C で出来るならいいんだけど、出来ないんだもの……。 しゃーない。
330デフォルトの名無しさん (ワッチョイ 6791-xqow)
2020/12/11(金) 14:45:28.79ID:VMKMxeJn0 〜ならこうやれるって
一種の荒らしだからね
一種の荒らしだからね
331デフォルトの名無しさん (ワッチョイ 7fb6-orE1)
2020/12/11(金) 16:54:58.94ID:p1x0IGcK0 void func();
void func(int);
void func(double);
void func(void*);
auto func(int) -> enable_if_t<false, int>;
みたいな多重定義があるときに
func(1);
と呼び出されたときに、候補1つずつ
呼び出すとしたら何が起きるのかをリストアップして
void func(); //error
void func(int); //exact
void func(double);//conversion
void func(void*);//error
auto func(int) -> enable_if_t<false, void>; //error
そこからerrorになったのを外すってだけだかんな
void func(int);
void func(double);
void func(void*);
auto func(int) -> enable_if_t<false, int>;
みたいな多重定義があるときに
func(1);
と呼び出されたときに、候補1つずつ
呼び出すとしたら何が起きるのかをリストアップして
void func(); //error
void func(int); //exact
void func(double);//conversion
void func(void*);//error
auto func(int) -> enable_if_t<false, void>; //error
そこからerrorになったのを外すってだけだかんな
332デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 17:55:15.27ID:o4C6fSAI0 C言語でどうやって多重定義を実装するのかな?
可変長引数をこねくり回せば出来るかもしれないが
可変長引数をこねくり回せば出来るかもしれないが
333はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/11(金) 18:02:13.48ID:NpU6prgS0 >>332
C11 から _Generic という機能で型によって自動で呼び分けることは出来る。
C11 から _Generic という機能で型によって自動で呼び分けることは出来る。
334デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 18:20:43.38ID:o4C6fSAI0 新しい機能を使うのではなく、もうちょっと工夫してみて
335デフォルトの名無しさん (ワッチョイ 277f-WScj)
2020/12/11(金) 18:44:44.22ID:7UnfkYH50 何その上から目線
336デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 18:47:44.91ID:o4C6fSAI0 それがC言語の醍醐味
337デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 18:56:25.10ID:o4C6fSAI0 サバイバルナイフ一本でジャングルで暮らしていく位の気概がないとC言語は使えない
338はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/11(金) 18:56:28.63ID:NpU6prgS0339デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 18:57:16.38ID:o4C6fSAI0 C11スレでも立ててそこでやったら?
340デフォルトの名無しさん (ワッチョイ bf8c-9ESD)
2020/12/11(金) 19:36:39.77ID:Z3aKNSgT0 Cならポインタを積極的に使う。
341デフォルトの名無しさん (ワッチョイ 67e6-HgEh)
2020/12/11(金) 19:42:20.97ID:s+Xx8Zn+0 C11の話題でわざわざ新スレとかこいつ頭おかしいの?w
342デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 19:48:16.88ID:o4C6fSAI0 ならば、このスレの話題は、汎用的なC言語で良いでしょう
新しい規格を話題にしたいなら、それ用のスレを立ててすれば良い
新しい規格を話題にしたいなら、それ用のスレを立ててすれば良い
343デフォルトの名無しさん (ワッチョイ df52-Z7C7)
2020/12/11(金) 19:53:34.25ID:nEgtG7R60 >>342
むしろ古い規格のみを話題にしたいお前が他所に行けば円満解決だろう
むしろ古い規格のみを話題にしたいお前が他所に行けば円満解決だろう
344デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 20:09:21.63ID:o4C6fSAI0 ここは初代のC言語スレ
345デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 20:10:26.40ID:o4C6fSAI0 新しい規格は新しい器でどうぞ
346デフォルトの名無しさん (ワッチョイ 277f-WScj)
2020/12/11(金) 21:31:36.15ID:7UnfkYH50 >>343
賛成
賛成
347デフォルトの名無しさん (ワッチョイ df01-1sNk)
2020/12/11(金) 23:01:06.49ID:u7x51CWk0348はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/12(土) 09:10:37.90ID:UUApGKPR0 C21 は 2021 年に予定されてるけど、正式発効はいつものように遅くなるかなぁ。
次スレには間に合わなさそう。
細かいところで C++ に追従しているのがありがたい。
次スレには間に合わなさそう。
細かいところで C++ に追従しているのがありがたい。
349デフォルトの名無しさん (ワッチョイ 7fb6-orE1)
2020/12/12(土) 20:24:51.48ID:+E0Q9Nw10 テンプレ直さなきゃな
現行規格はC11ではなくC18だ
現行規格はC11ではなくC18だ
350デフォルトの名無しさん (ワッチョイ a701-RxlK)
2020/12/13(日) 02:41:25.02ID:3BYpAKtx0 1スレの1だけど、みんな元気だなw
351デフォルトの名無しさん (ワッチョイ 277f-WScj)
2020/12/13(日) 02:52:26.43ID:dBxf4Vg90 わー、凄いですねー(棒
352デフォルトの名無しさん (ワッチョイ 7eb6-FZ4g)
2020/12/17(木) 09:46:05.20ID:4VSV+Zch0353デフォルトの名無しさん (ワッチョイ 1a44-7qKd)
2020/12/17(木) 13:31:23.27ID:AFn1O2bR0 おれのハード屋の父親もre2cが吐いたようなコードを書いてた記憶がある
354デフォルトの名無しさん (ワッチョイ c38c-Kyli)
2020/12/25(金) 09:10:24.53ID:9Fso0P460 int a[6];
と
int *a = malloc(6 * sizeof(int));
の違いは何ですか?
と
int *a = malloc(6 * sizeof(int));
の違いは何ですか?
355デフォルトの名無しさん (ワッチョイ c3ab-80jV)
2020/12/25(金) 11:15:33.22ID:4TR/yfFq0 >>354
記憶域期間 storage duration が違う
void func()
{
int a[6];
} //ここで自動開放 automatic storage duration
int a[6]; //最後まで解放されない static storage duration
mallocは当たり前だがfreeで手動開放
C++にはdynamic storage durationというのがあるが
Cでは言語自体にそのような概念はなく
malloc/freeというアプリが提供する機能ということになっている
記憶域期間 storage duration が違う
void func()
{
int a[6];
} //ここで自動開放 automatic storage duration
int a[6]; //最後まで解放されない static storage duration
mallocは当たり前だがfreeで手動開放
C++にはdynamic storage durationというのがあるが
Cでは言語自体にそのような概念はなく
malloc/freeというアプリが提供する機能ということになっている
356はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b3e-80jV)
2020/12/25(金) 11:18:10.08ID:My/Ukrd40 >>354
違うものを持ち出して何が違うかと問われても困るんやが……。
背景を全部説明するとだいぶん長くなるので。
とりあえず結果的に出来る配列オブジェクトを比較するならオブジェクトの生存期間 (lifetime) が違う。
前者は自動記憶域期間、後者は割り付け記憶域期間という分類になる。
変数 a の違いという意味では前者の型は int[6] で後者は int* ということになる。
ただし配列は暗黙の型変換でそれの先頭要素を指すポインタになるので、
かなり共通した記法で扱える。
違うものを持ち出して何が違うかと問われても困るんやが……。
背景を全部説明するとだいぶん長くなるので。
とりあえず結果的に出来る配列オブジェクトを比較するならオブジェクトの生存期間 (lifetime) が違う。
前者は自動記憶域期間、後者は割り付け記憶域期間という分類になる。
変数 a の違いという意味では前者の型は int[6] で後者は int* ということになる。
ただし配列は暗黙の型変換でそれの先頭要素を指すポインタになるので、
かなり共通した記法で扱える。
357デフォルトの名無しさん (ワッチョイ c3ab-80jV)
2020/12/25(金) 11:29:13.76ID:4TR/yfFq0 字が違うことくらい言わんでも解っとるやろ
int a[6]; は sizeof a / sizeof a[0] でサイズを取得できるが
mallocで割り付けたメモリはサイズを聞けず自分で管理せねばならない
int a[6]; は sizeof a / sizeof a[0] でサイズを取得できるが
mallocで割り付けたメモリはサイズを聞けず自分で管理せねばならない
358デフォルトの名無しさん (ワントンキン MM1f-OG+0)
2020/12/25(金) 12:31:04.53ID:0FtKncKUM 目から鱗どころか、天が落ちるぐらい面白い説明ができないのか。
無芸な奴らだ。
無芸な奴らだ。
359デフォルトの名無しさん (ワッチョイ af69-ass7)
2020/12/25(金) 12:39:14.80ID:3NwCUk3p0 ポインタ int *p; はインクリメント可能で p++ は合法
配列 int a[6]; はインクリメント不可能で a++ はエラーになる
配列 int a[6]; はインクリメント不可能で a++ はエラーになる
360デフォルトの名無しさん (スプッッ Sd13-txbM)
2020/12/25(金) 12:51:59.76ID:D8aGfpPud >>358に期待
361デフォルトの名無しさん (ワッチョイ c38c-Kyli)
2020/12/25(金) 13:23:43.17ID:9Fso0P460 >>354
メモリ配置の連続性はどちらも保障されていることで良いですか?
メモリ配置の連続性はどちらも保障されていることで良いですか?
362デフォルトの名無しさん (ワッチョイ af69-ass7)
2020/12/25(金) 14:43:22.97ID:3NwCUk3p0 配列は先頭から確保された領域の次のところを指せるまでは連続性が保障されてるんじゃなかったかな
規格あたるのはまかせた
(malloc の戻りは… 配列に準じるように実装されてそうではある)
規格あたるのはまかせた
(malloc の戻りは… 配列に準じるように実装されてそうではある)
363デフォルトの名無しさん (ワッチョイ ab7f-R4Cp)
2020/12/25(金) 14:54:43.85ID:qJluI3Ne0364デフォルトの名無しさん (ワッチョイ 1744-crlN)
2020/12/25(金) 15:09:30.51ID:2V7uRClp0 int a[6];はローカル変数ならスタック領域に確保、グローバル変数や
int *a = malloc(6 * sizeof(int));はヒープ領域に確保
でいい?
int *a = malloc(6 * sizeof(int));はヒープ領域に確保
でいい?
365デフォルトの名無しさん (ワッチョイ ab7f-R4Cp)
2020/12/25(金) 15:19:15.56ID:qJluI3Ne0 ダメ
グローバル変数はデータ領域とかbss領域とかいろいろ
グローバル変数はデータ領域とかbss領域とかいろいろ
366デフォルトの名無しさん (ワッチョイ d9da-crlN)
2020/12/25(金) 18:54:05.01ID:Tea3EQhG0 アドレス見ない, かつ定数だと何処にも領域取らない可能性まである
367デフォルトの名無しさん (ワッチョイ 7b52-txbM)
2020/12/25(金) 20:30:05.07ID:EiswCiht0 そんなこと言い出したら
ローカル変数だってスタックじゃないかもしれない
ローカル変数だってスタックじゃないかもしれない
368デフォルトの名無しさん (ワッチョイ 0b01-80jV)
2020/12/25(金) 20:39:01.52ID:MidTJiO80 どこにあるかよりどれだけ生きているかの生命期間が大事ね
369デフォルトの名無しさん (ワッチョイ 7b52-txbM)
2020/12/25(金) 21:22:39.71ID:EiswCiht0 速度も
370デフォルトの名無しさん (ワッチョイ 7b52-txbM)
2020/12/25(金) 21:23:50.85ID:EiswCiht0 生命期間も実際はC言語の文法通りじゃない
371デフォルトの名無しさん (ワッチョイ c3ab-80jV)
2020/12/26(土) 05:33:54.37ID:ekLZAtHZ0372デフォルトの名無しさん (ワッチョイ 7b52-txbM)
2020/12/26(土) 07:58:20.12ID:J4yOWW3+0 メモリ(DRAM)上は連続してるとは限らない
C言語上連続として扱えるというだけ
C言語上連続として扱えるというだけ
373デフォルトの名無しさん (ワッチョイ c3ab-80jV)
2020/12/26(土) 08:19:43.84ID:ekLZAtHZ0 それを言うなら仮想記憶だろ
ページ境界をまたぐ場合実記憶が連続しているとは限らない
その昔、ビット幅1bitのDRAMを8個パラってるのがあったけど
だから何って話
それ言い出したらメモリセルのキャパシタは隣接してるのか
ページ境界をまたぐ場合実記憶が連続しているとは限らない
その昔、ビット幅1bitのDRAMを8個パラってるのがあったけど
だから何って話
それ言い出したらメモリセルのキャパシタは隣接してるのか
374デフォルトの名無しさん (スップ Sddb-+VqV)
2020/12/26(土) 08:29:01.69ID:hSiLuJt/d スレタイの俺って誰ですか?
375デフォルトの名無しさん (ワッチョイ 1301-z4zq)
2020/12/26(土) 09:41:05.55ID:Mx49Y/J60376デフォルトの名無しさん (スプッッ Sdf3-txbM)
2020/12/26(土) 10:40:07.64ID:IfMxsBFTd >>366を言い出したからまねして見ただけ
377デフォルトの名無しさん (ワッチョイ fd63-Yke/)
2020/12/26(土) 12:41:26.45ID:0+ArpHnq0 実記憶も連続していない
時々意識不明になってるはず
ただ、その時の記憶がないだけ
時々意識不明になってるはず
ただ、その時の記憶がないだけ
378デフォルトの名無しさん (ワッチョイ 97d2-Yke/)
2020/12/28(月) 07:49:35.18ID:LdveQEJ20 面倒くさい、特異な、一般人には無縁の仕様を考慮するのが当たり前って感じに持ち出して否定するから初心者が逃げていく・・・。
379デフォルトの名無しさん (ワッチョイ c15f-80jV)
2020/12/28(月) 08:44:26.16ID:G7B9oAoL0 Cでプログラミングする時に領域の連続性を気にするのは果たして初心者なのだろうか(´・ω・`)
380デフォルトの名無しさん (アウアウウー Sa2f-ZzSF)
2020/12/28(月) 09:28:54.37ID:Q5Pp+CI0a Cでどのくらいできれば
実際役に立つレベルでしょうか?
実際役に立つレベルでしょうか?
381デフォルトの名無しさん (ワッチョイ 2352-BpKR)
2020/12/28(月) 09:45:26.51ID:ErVwTltE0 >>380
Cは言語仕様は小さいし重要なのはC自体が使えることではなくCを使ってその先で何をするかだから、C言語自体の基本的な仕様は完全にマスタしてるくらいでないとわざわざCを使う意味はないかなと思う
Cは言語仕様は小さいし重要なのはC自体が使えることではなくCを使ってその先で何をするかだから、C言語自体の基本的な仕様は完全にマスタしてるくらいでないとわざわざCを使う意味はないかなと思う
382デフォルトの名無しさん (ワッチョイ c38c-fXGD)
2020/12/29(火) 06:32:49.03ID:NanqjdNB0 iZ-Cのサンプルプログラム書き始めたので見てね。
https://sunasunax.hatenablog.com
https://sunasunax.hatenablog.com
383デフォルトの名無しさん (ワッチョイ 339a-rghk)
2020/12/29(火) 08:44:05.91ID:gCTQzk+K0384デフォルトの名無しさん (スップ Sd5a-sH+J)
2020/12/31(木) 07:46:12.94ID:mJm7tBE2d385デフォルトの名無しさん (ワッチョイ 1aab-7v9V)
2020/12/31(木) 07:51:45.82ID:/Sdg/sCQ0 mallocがNULLを返した場合は
割り付けが行われていないので
連続でも不連続でもない
割り付けが行われていないので
連続でも不連続でもない
386デフォルトの名無しさん (ワッチョイ 1aab-7v9V)
2020/12/31(木) 07:55:07.88ID:/Sdg/sCQ0 配列は連続領域が前提だから
E1[E2]が*(E1+E2)と等価となる
構造体も連続領域が前提だからこそ
配列にすることができる
不連続領域はリストや二分木などで
むろん言語自体が提供するのではなく
言語を使ってプログラマが構築するものだ
E1[E2]が*(E1+E2)と等価となる
構造体も連続領域が前提だからこそ
配列にすることができる
不連続領域はリストや二分木などで
むろん言語自体が提供するのではなく
言語を使ってプログラマが構築するものだ
387デフォルトの名無しさん (スップ Sd5a-sH+J)
2020/12/31(木) 12:57:09.96ID:mJm7tBE2d >>354
さらに言うなら
グローバル配列はコンパイル時に総数を決定しなければならないが
ローカル配列とmallocを使った場合は
最初に人数を入力し、それに合わせた数の名前配列を確保するような作り方ができる
ただしあまりにも大きいとローカルはスタックが溢れるしmallocはNULLを返す
さらに言うなら
グローバル配列はコンパイル時に総数を決定しなければならないが
ローカル配列とmallocを使った場合は
最初に人数を入力し、それに合わせた数の名前配列を確保するような作り方ができる
ただしあまりにも大きいとローカルはスタックが溢れるしmallocはNULLを返す
388デフォルトの名無しさん (ワッチョイ 1aab-7v9V)
2020/12/31(木) 18:54:42.23ID:/Sdg/sCQ0 mallocがNULLを返すのを実際に目撃したやついる?
malloc(2147483647)みたいなわざとらしい実験じゃなく実用で
malloc(2147483647)みたいなわざとらしい実験じゃなく実用で
389デフォルトの名無しさん (ワッチョイ b6e9-fuHL)
2020/12/31(木) 19:17:26.57ID:lvvsunYH0 いますよ。
390デフォルトの名無しさん (ワッチョイ 9a01-3t1F)
2020/12/31(木) 19:34:52.29ID:1/HNqY6i0 目撃とかはよーわからんけど実用プログラムだとアロケーション失敗でログ採ったりしてるからそういうログは見たことあるよ
391デフォルトの名無しさん (ワッチョイ 6301-7v9V)
2020/12/31(木) 20:41:44.50ID:+fx38Mty0 仮想記憶とか無いOSだとあっさり NULL 返してたな
392はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7f3e-7v9V)
2020/12/31(木) 23:27:44.16ID:xpX6Z+OE0 その質問を見てふと思ったことがあるんで便乗質問。
純粋にメモリが足りない (断片化で連続領域がないという場合を含む) という以外で malloc がエラーを返すことってある?
バッファオーバーランとかでめちゃくちゃに書き換えて管理の整合性が壊れたとかいうのは無視して
あくまでアプリケーションとしては C の仕様に則っているという前提で。
純粋にメモリが足りない (断片化で連続領域がないという場合を含む) という以外で malloc がエラーを返すことってある?
バッファオーバーランとかでめちゃくちゃに書き換えて管理の整合性が壊れたとかいうのは無視して
あくまでアプリケーションとしては C の仕様に則っているという前提で。
393デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/01(金) 00:09:31.83ID:E41TLeHr0 組み込みのちっちゃなマイコンなら普通
394デフォルトの名無しさん (ワッチョイ 9244-Iopg)
2021/01/01(金) 00:12:43.64ID:mwYi2zym0 マルチスレッドでヒープ領域が排他制御で使えないってのはありうる?
395デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/01(金) 00:20:48.66ID:E41TLeHr0 さあ
396デフォルトの名無しさん (ワッチョイ e95f-UAPS)
2021/01/01(金) 00:21:33.85ID:FRLcRufg0 吸い込んでくれ
397デフォルトの名無しさん (ワッチョイ 06e9-Zovn)
2021/01/01(金) 00:34:01.79ID:ufA+vsC20 >>392 メモリクォータ違反とか?
398蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 9901-ZUZB)
2021/01/01(金) 00:36:53.19ID:cLHhn9Dx0399デフォルトの名無しさん (ワッチョイ 625c-UAPS)
2021/01/01(金) 01:47:49.68ID:gWHeIT9l0 >388
Win98か2000の頃にあったわ。
1kバイトぐらいのを数万回(ファイル数)mallocやろうとしたらNULL返した。
XPで試したらエラー出なかったけど。
Win98か2000の頃にあったわ。
1kバイトぐらいのを数万回(ファイル数)mallocやろうとしたらNULL返した。
XPで試したらエラー出なかったけど。
400デフォルトの名無しさん (ワッチョイ dd25-vWRd)
2021/01/01(金) 05:55:11.31ID:ihSnxU6O0 逆にメモリ不足以外でNULL返すことってあるのか?
401デフォルトの名無しさん (ワッチョイ c2ab-UAPS)
2021/01/01(金) 06:25:04.97ID:DIBn3EXs0 malloc(0)とか
402デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/01(金) 12:48:57.97ID:U0IfpguFd malloc(負の数)も
403デフォルトの名無しさん (ワッチョイ 8101-UAPS)
2021/01/01(金) 15:48:48.11ID:1v7huw3N0 負数は単に符号なしで評価してとんでもなくでかい領域を要求してるだけ?
404デフォルトの名無しさん (ワッチョイ c2ab-UAPS)
2021/01/01(金) 21:47:45.23ID:DIBn3EXs0 だね
405デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/01(金) 22:22:16.08ID:wEvOepYPd sizeof(struct)*numとかごちゃごちゃ書くうちにうっかり0や負数になって…
というのはよくあった
というのはよくあった
406デフォルトの名無しさん (ワッチョイ dd5f-Jh9r)
2021/01/02(土) 11:42:56.15ID:QsP+Nlmq0 forループでunsignedで<0やって終わらないバグとかもあるな
407デフォルトの名無しさん (ワッチョイ edbd-wX28)
2021/01/03(日) 00:53:19.09ID:ERUOHNUN0408デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/03(日) 11:06:33.61ID:QdF5iATA0 >>407
正しい挙動 ≠ 想定した動作
正しい挙動 ≠ 想定した動作
409デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/03(日) 11:12:17.27ID:3NmY3eCcd この条件は必ずTRUEになりまっせー
というwarningはあったと思う
というwarningはあったと思う
410デフォルトの名無しさん (エムゾネ FF62-Jh9r)
2021/01/03(日) 11:41:35.97ID:TDgWBZToF <0は終わらないじゃなくて始まらないの間違いだった
411デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/03(日) 13:51:43.57ID:3NmY3eCcd unsigned int a;
for( a = 11; a > 0; a -= 2 ) ...
こんな感じのを作ってしまったことはあったな…
aは1のあと65535になるので永久に終わらず
aは0になる可能性もあるので条件式ではwarningも出ず
for( a = 11; a > 0; a -= 2 ) ...
こんな感じのを作ってしまったことはあったな…
aは1のあと65535になるので永久に終わらず
aは0になる可能性もあるので条件式ではwarningも出ず
412デフォルトの名無しさん (スッップ Sd62-CHd6)
2021/01/03(日) 14:28:17.87ID:izXBuwpQd413ビル・ジョブズ (ワッチョイ 8101-r+GE)
2021/01/04(月) 00:09:11.84ID:V9PboY9+0 mallocとか常に成功を返すんじゃない?
問題はそのアドレスに何か操作をした時。
MMUありの前提だけど。
問題はそのアドレスに何か操作をした時。
MMUありの前提だけど。
414デフォルトの名無しさん (ワッチョイ 4963-Zovn)
2021/01/04(月) 00:29:40.79ID:NWAwlt7F0 実行してみないと使えるか分からないとなると
医療関係では使用禁止になるな
医療関係では使用禁止になるな
415デフォルトの名無しさん (ワッチョイ 8101-UAPS)
2021/01/04(月) 01:03:06.31ID:PMQqdXD/0 validation 通らないだろうねぇ
416デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/04(月) 07:24:09.81ID:Nz2iXOdN0417デフォルトの名無しさん (ワッチョイ dd5f-Jh9r)
2021/01/05(火) 12:05:40.60ID:G8BimKKu0 宇宙関係も無理やろね
418デフォルトの名無しさん (スップ Sdc2-CHd6)
2021/01/05(火) 12:12:18.79ID:8w5sr2J0d 失敗が絶対に許されないならmallocとか使うな
スタティックで確保しろ
スタティックで確保しろ
419デフォルトの名無しさん (ワッチョイ 9244-Iopg)
2021/01/05(火) 13:27:41.97ID:zIEcR2TW0 一つのファイルポインタで読み書きする場合、読みと書きを切り替えるときに
fseek(fp,0,SEEK_CUR)等を挟むことはANSI Cにも書いてるわけですが、
挟まなくていい環境(Linuxとか)もありその実装上の違いってどうなってるんでしょうか?
バッファゼロにしてもfseekが必要なので、バッファリングってわけでもなさそうです。
fseek(fp,0,SEEK_CUR)等を挟むことはANSI Cにも書いてるわけですが、
挟まなくていい環境(Linuxとか)もありその実装上の違いってどうなってるんでしょうか?
バッファゼロにしてもfseekが必要なので、バッファリングってわけでもなさそうです。
420デフォルトの名無しさん (ワッチョイ c2a5-dZT0)
2021/01/05(火) 13:36:43.08ID:sz7Oy+6E0 https://github.com/gcc-mirror/gcc
ここからwindowsのfseekとlinuxのfseekを見つけ出す
ここからwindowsのfseekとlinuxのfseekを見つけ出す
421はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 063e-UAPS)
2021/01/05(火) 14:23:40.55ID:N7gEH2Zs0 C の規格では OS とかの支援のない 「フリースタンディング」な環境にも言及していて、
フリースタンディング処理系は標準ヘッダ
float.h
iso646.h
limits.h
stdarg.h
stdbool.h
stddef.h
stdint.h
の内容に限定した機能が用意されてればよいことになってる。
malloc は stdlib.h だから無くても規格合致フリースタンディング処理系と名乗れる。
フリースタンディング処理系は標準ヘッダ
float.h
iso646.h
limits.h
stdarg.h
stdbool.h
stddef.h
stdint.h
の内容に限定した機能が用意されてればよいことになってる。
malloc は stdlib.h だから無くても規格合致フリースタンディング処理系と名乗れる。
422デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/05(火) 16:33:30.17ID:9HicEvTUd >>413
あり得ない
malloc()で==NULLテストして「メモリーが足りません終了します」とかする事はできるが
確保した変数に読み書きした瞬間のエラーは感知する方法がないので
そこでエラーにされてもコアダンプして終了するしかない
ユーザー側から見たら未完成プログラムである
あり得ない
malloc()で==NULLテストして「メモリーが足りません終了します」とかする事はできるが
確保した変数に読み書きした瞬間のエラーは感知する方法がないので
そこでエラーにされてもコアダンプして終了するしかない
ユーザー側から見たら未完成プログラムである
423デフォルトの名無しさん (スプッッ Sd61-CHd6)
2021/01/05(火) 16:45:24.18ID:7nbNqUCud ユーザーからしたら
エラーメッセージを出そうが突然死だろうが
メモリが足りなくなる事自体不完全プログラムだ
エアバッグが作動するときに、
[メモリ不足で動作できませんでした]
なんて表示されても何の意味もない
エラーメッセージを出そうが突然死だろうが
メモリが足りなくなる事自体不完全プログラムだ
エアバッグが作動するときに、
[メモリ不足で動作できませんでした]
なんて表示されても何の意味もない
424はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 063e-UAPS)
2021/01/05(火) 16:47:22.16ID:N7gEH2Zs0 >>422
やっとる (環境も多い) やろがい。
やっとる (環境も多い) やろがい。
425デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/05(火) 17:03:07.78ID:9HicEvTUd >>423
それなら「エアバッグの数が多すぎるんだな」とか推論できるが
なんのメッセージもなく作動しなかったらユーザーはスピードメーター、ショックセンサー、安全装置などあらゆる関連部分を点検しなければならない
それなら「エアバッグの数が多すぎるんだな」とか推論できるが
なんのメッセージもなく作動しなかったらユーザーはスピードメーター、ショックセンサー、安全装置などあらゆる関連部分を点検しなければならない
426デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/05(火) 18:07:14.87ID:dzUtU5Ds0 そんな事はユーザーからすればどうでもいい
不完全な事にはかわりない
不完全な事にはかわりない
427デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/05(火) 18:09:46.84ID:9HicEvTUd ソフト作ったことない人だねw
メッセージの有無はバグが起きたときの対処に大きな違いがある
メッセージの有無はバグが起きたときの対処に大きな違いがある
428デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/05(火) 18:13:12.71ID:dzUtU5Ds0 メッセージの有無なんかよりも
動作するかどうか
の方がはるかに重要
メモリ確保が失敗する可能性があるところで
失敗が許されない動作に対してmallocを使うのが間違い
動作するかどうか
の方がはるかに重要
メモリ確保が失敗する可能性があるところで
失敗が許されない動作に対してmallocを使うのが間違い
429デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/05(火) 18:15:35.99ID:dzUtU5Ds0 適切なエラー処理をすればそれで十分
ソフト設計者のしたっぱの発想
ソフト設計者のしたっぱの発想
430デフォルトの名無しさん (ワッチョイ 468c-qdLU)
2021/01/05(火) 18:35:11.65ID:zMZuOoIk0 >>423
読む人がいないならメッセージも無意味.
読む人がいないならメッセージも無意味.
431デフォルトの名無しさん (ワッチョイ 4963-Zovn)
2021/01/05(火) 18:47:10.76ID:oFYQTpSv0 確保できないと返ってくれば対処方法はあるだろう
OK返されたあと、実際に使おうとしたら実はってなると
その分リカバリーが複雑になる
OK返されたあと、実際に使おうとしたら実はってなると
その分リカバリーが複雑になる
432デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/05(火) 19:00:03.87ID:K71kt7oj0 ここの人はOOM Killerも知らんのか?
確保したプロセスが死ぬとは限らんのだが…
https://reboooot.net/post/kernel-params-related-to-oom-killer/
確保したプロセスが死ぬとは限らんのだが…
https://reboooot.net/post/kernel-params-related-to-oom-killer/
433デフォルトの名無しさん (ワッチョイ 814f-Iopg)
2021/01/05(火) 19:39:22.64ID:eT+iPfAP0 確保しようとしてエラーになったなら対処のしようもあるが、空手形乱発していざとなったら
関係ないプロセスが殺されるってのも困ったもんだよな。
初期のOSXはOOM Killerのような仕組みもなくてシステム全体が固まってたな。
関係ないプロセスが殺されるってのも困ったもんだよな。
初期のOSXはOOM Killerのような仕組みもなくてシステム全体が固まってたな。
434デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/05(火) 19:58:11.78ID:dzUtU5Ds0435デフォルトの名無しさん (ワッチョイ 8101-UAPS)
2021/01/05(火) 20:01:22.72ID:8cFKE+AV0 お行儀よく死ぬ機構があるかどうか
436デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/05(火) 21:50:05.77ID:9HicEvTUd437デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/05(火) 22:27:33.74ID:K71kt7oj0438デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/05(火) 23:58:57.29ID:zD1ciQHW0 OOM Killer は、Kubernetes のリソース制限の基本。
Linux のnamespace, cgroup
例外は、
アプリ例外は業務上のエラーだから、アプリで処理すべき。
システム障害などは、アプリで処理できる例外ではない
Linux のnamespace, cgroup
例外は、
アプリ例外は業務上のエラーだから、アプリで処理すべき。
システム障害などは、アプリで処理できる例外ではない
439デフォルトの名無しさん (ワッチョイ 06e9-Zovn)
2021/01/06(水) 00:01:25.01ID:WT+BV7/+0 その分類上、メモリ確保失敗はアプリで処理すべきなのかどうかわかんなくない?
440デフォルトの名無しさん (ワッチョイ 4963-Zovn)
2021/01/06(水) 00:46:50.28ID:g4fxgipO0 mallocに失敗したらローカルで確保してみる
それが駄目なら一時ファイル作ってそこに格納する
他にも手はありそうだ
それが駄目なら一時ファイル作ってそこに格納する
他にも手はありそうだ
441デフォルトの名無しさん (ワッチョイ d2bd-fVX1)
2021/01/06(水) 01:23:26.66ID:8o6ePSWp0 >>440
ねーよ間抜け
ねーよ間抜け
442デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/06(水) 03:55:31.45ID:Sqdcyjlhd443デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/06(水) 05:25:17.33ID:kVhO/tYW0444デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/06(水) 05:28:43.74ID:kVhO/tYW0445デフォルトの名無しさん (アウアウクー MMb1-Unlw)
2021/01/06(水) 07:24:13.29ID:bGGeDo6wM アプリケーション開発しかやったことないのでシビアな状況のプログラムってのがよくわかってないけど
通常のプログラムだったらNULLが帰ってきたら終了だろうね
失敗が許されない環境で、もしメモリを使い果たして確保できないような状況の場合は失敗が許されないのにメモリを使い果たすようなプログラム自身を改善した方が良いような
ファイルから必要なデータだけを読み込むようにして使い終わったメモリは開放するとか
メモリを使い果たして無いのに失敗する可能性とかだったら、標準関数の正常な役割が信用できないという事になるのでプログラム言語自体使えなくなるよね
C/C++だけじゃなくて
それならアセンブラで直接書くしか無くなるのでは
この場合だったら「たらーれば」の言いがかりにしか聞こえないけど
通常のプログラムだったらNULLが帰ってきたら終了だろうね
失敗が許されない環境で、もしメモリを使い果たして確保できないような状況の場合は失敗が許されないのにメモリを使い果たすようなプログラム自身を改善した方が良いような
ファイルから必要なデータだけを読み込むようにして使い終わったメモリは開放するとか
メモリを使い果たして無いのに失敗する可能性とかだったら、標準関数の正常な役割が信用できないという事になるのでプログラム言語自体使えなくなるよね
C/C++だけじゃなくて
それならアセンブラで直接書くしか無くなるのでは
この場合だったら「たらーれば」の言いがかりにしか聞こえないけど
446はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 063e-UAPS)
2021/01/06(水) 09:52:33.41ID:NVCaEro60 そこんところはホスト環境・開発システムがどこまで保証するかという話になるので、
各環境で十分な保証があるなら使えばいいし、保証がないなら使えないというだけのことでは。
私も実態を知ってるわけじゃないが組み込み開発だったら
実際には保証というか自分たちで検証することも多いと思うが。
各環境で十分な保証があるなら使えばいいし、保証がないなら使えないというだけのことでは。
私も実態を知ってるわけじゃないが組み込み開発だったら
実際には保証というか自分たちで検証することも多いと思うが。
447デフォルトの名無しさん (スッップ Sd62-yv5R)
2021/01/06(水) 15:10:46.82ID:6EEBy3Y5d Linux系にはヒープの上限を設定できないの?
よくある入門書にはnewで敵キャラでもエフェクトでも作って動かしましょうみたいなのがよくあるが
それやって消すのを忘れると一日動かしてるとかなりの容量になり突然システムが止まる
懐かしいシングルタスクOSの時代と変わらんw
Win16や32だとローカルヒープは上限があって一杯になってもアプリが止まるだけでシステムは続行できた
よくある入門書にはnewで敵キャラでもエフェクトでも作って動かしましょうみたいなのがよくあるが
それやって消すのを忘れると一日動かしてるとかなりの容量になり突然システムが止まる
懐かしいシングルタスクOSの時代と変わらんw
Win16や32だとローカルヒープは上限があって一杯になってもアプリが止まるだけでシステムは続行できた
448デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/06(水) 15:49:09.66ID:kVhO/tYW0 >>447
> Win16や32だとローカルヒープは上限があって一杯になってもアプリが止まるだけでシステムは続行できた
それはプロセス単位の制限だろ、man ulimit でググってこい
OOM Killerとかはシステム全体の話な
> Win16や32だとローカルヒープは上限があって一杯になってもアプリが止まるだけでシステムは続行できた
それはプロセス単位の制限だろ、man ulimit でググってこい
OOM Killerとかはシステム全体の話な
449デフォルトの名無しさん (スプッッ Sd61-CHd6)
2021/01/06(水) 16:05:04.01ID:QohpZ5Jnd450はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 063e-UAPS)
2021/01/06(水) 17:27:30.00ID:NVCaEro60 >>449
ロジック部分を C で書くことはもうあまりないかもしれんが、
低レイヤや速度チューニングがなくなるわけではないからなぁ。
コードの総量に C が占める割合は少ないにしても
C が (一部には) 使われているものはまだまだあるんじゃね?
ロジック部分を C で書くことはもうあまりないかもしれんが、
低レイヤや速度チューニングがなくなるわけではないからなぁ。
コードの総量に C が占める割合は少ないにしても
C が (一部には) 使われているものはまだまだあるんじゃね?
451デフォルトの名無しさん (スプッッ Sd61-CHd6)
2021/01/06(水) 17:33:29.06ID:QohpZ5Jnd アプリの速度チューンならC++で良いと思うんだが
なぜC?
なぜC?
452デフォルトの名無しさん (ドコグロ MM75-fVX1)
2021/01/06(水) 18:33:49.31ID:m3At07SYM >>447
ulimit -d でできるぽいね
ulimit -d でできるぽいね
453デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/06(水) 18:53:37.18ID:kVhO/tYW0454デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/06(水) 19:00:16.49ID:A7AJXFBH0 カーネルがmallocで失敗???
システムごと死ぬだろ
システムごと死ぬだろ
455デフォルトの名無しさん (スッップ Sd62-yv5R)
2021/01/06(水) 20:05:41.96ID:6EEBy3Y5d456デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/06(水) 20:50:30.31ID:kVhO/tYW0 >>455
> だからアホなアプリ一個でシステムが止まるなんて前世紀の話か?と聞いてるんだよね
だから OOM Killer でググってこいよ
システムを止めるかどうかは設定によるし、Windows でもメモリー逼迫したら不安定になるから
> シェルコマンドじゃなくて
https://linuxjm.osdn.jp/html/LDP_man-pages/man2/setrlimit.2.html
そもそもシェルから設定できるのにプログラムから設定できないわけ無いだろ
プログラマーの素養なさ過ぎ
> だからアホなアプリ一個でシステムが止まるなんて前世紀の話か?と聞いてるんだよね
だから OOM Killer でググってこいよ
システムを止めるかどうかは設定によるし、Windows でもメモリー逼迫したら不安定になるから
> シェルコマンドじゃなくて
https://linuxjm.osdn.jp/html/LDP_man-pages/man2/setrlimit.2.html
そもそもシェルから設定できるのにプログラムから設定できないわけ無いだろ
プログラマーの素養なさ過ぎ
457デフォルトの名無しさん (スッップ Sd62-CHd6)
2021/01/06(水) 20:52:54.12ID:3ZsNazx6d C言語なんだから無条件でPC前提にするのやめようぜ
458デフォルトの名無しさん (スッップ Sd62-CHd6)
2021/01/06(水) 20:58:31.92ID:3ZsNazx6d Windowsでも
プロセスとスレッドのプライオリティを上げて
メモリを大量に使えば
スワップしまくって激重になって
事実上システムが死ぬけどね
プロセスとスレッドのプライオリティを上げて
メモリを大量に使えば
スワップしまくって激重になって
事実上システムが死ぬけどね
459デフォルトの名無しさん (スッップ Sd62-CHd6)
2021/01/06(水) 20:59:44.32ID:3ZsNazx6d アプリ1個でシステムダウンさせるのはそれほど難しくない
>>459
さすがにそれは不可能では?win3.1 ならまだわかるのですが‥‥
さすがにそれは不可能では?win3.1 ならまだわかるのですが‥‥
461デフォルトの名無しさん (スッップ Sd62-CHd6)
2021/01/06(水) 21:12:39.72ID:3ZsNazx6d プライオリティの高いスレッドをたくさん作って無限ループすれば死ぬ
462デフォルトの名無しさん (スッップ Sd62-CHd6)
2021/01/06(水) 21:17:12.89ID:3ZsNazx6d プライオリティ31のスレッドを論理コア数分作ればマウスカーソルも止まる
463デフォルトの名無しさん (ワッチョイ 814f-Iopg)
2021/01/06(水) 22:06:17.54ID:FKs+KUNY0 間違えてforkしまくるスクリプト実行してしまって何もできなくなった
464デフォルトの名無しさん (スッップ Sd62-yv5R)
2021/01/06(水) 22:06:21.76ID:6EEBy3Y5d いや別に知恵を絞って無理に止める話はしてないじゃんw
うっかりミス程度で止まったらおそろしいなあ気楽にプログラミングもできないなあって話
うっかりミス程度で止まったらおそろしいなあ気楽にプログラミングもできないなあって話
465デフォルトの名無しさん (ワッチョイ 4963-Zovn)
2021/01/06(水) 22:38:40.29ID:g4fxgipO0 うっかりシステムをフォーマットしてしまうこともあるしな
466デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/07(木) 00:44:03.16ID:Vx7SD3qO0 うっかりプライオリティの高いスレッドをいっぱい作っちゃった場合の話
467デフォルトの名無しさん (ワッチョイ d2bd-fVX1)
2021/01/07(木) 02:16:41.45ID:yeIMGQh50 何の話してたか忘れた
468デフォルトの名無しさん (ワッチョイ c2ab-UAPS)
2021/01/07(木) 15:11:57.86ID:9QJGSme00 mallocを使っていても総使用量の最大は見積もっとけって話
469デフォルトの名無しさん (スップ Sd62-CHd6)
2021/01/07(木) 16:20:03.10ID:DL1zbij8d 総使用量に対してメモリが十分あっても
フラグメントで確保出来ないかもしれない
フラグメントで確保出来ないかもしれない
470デフォルトの名無しさん (ワッチョイ e569-Fu3+)
2021/01/07(木) 17:22:12.04ID:6v7F/BUW0 malloc をラップして
オレオレアローケーターで一括で確保して使いまわそうとすると
malloc の実装とほとんど変わらんよな?って気分になる
オレオレアローケーターで一括で確保して使いまわそうとすると
malloc の実装とほとんど変わらんよな?って気分になる
471デフォルトの名無しさん (スップ Sd62-CHd6)
2021/01/07(木) 17:32:32.97ID:DL1zbij8d 固定長が多ければ専用化の価値が大きい
472デフォルトの名無しさん (ワッチョイ c2ab-UAPS)
2021/01/07(木) 17:50:56.57ID:9QJGSme00473デフォルトの名無しさん (ワッチョイ 8101-UAPS)
2021/01/07(木) 19:23:46.37ID:jTCzKEfy0 とあるスコープ内だけで有効なヒープで、さらにスコープから抜けると開放したい
という用途でがんばった
という用途でがんばった
474デフォルトの名無しさん (ワッチョイ 9244-Iopg)
2021/01/07(木) 20:07:04.52ID:b6arBunA0 何十日何百日稼働するソフトならそれなりに効いてきそうだけど<フラグメント
>>473
alloca()
alloca()
476デフォルトの名無しさん (ワッチョイ 8101-UAPS)
2021/01/07(木) 20:19:01.01ID:jTCzKEfy0 >>475
ほしかったがなかったのだ
ほしかったがなかったのだ
>>476
C にはデストラクタがないから、C の範囲で実現するのは困難ですね
alloca() の実装は、ライブラリだけでは処理できずにコンパイラ側の支援が必要だと思いますので、標準ライブラリには入りにくいでしょうね
C にはデストラクタがないから、C の範囲で実現するのは困難ですね
alloca() の実装は、ライブラリだけでは処理できずにコンパイラ側の支援が必要だと思いますので、標準ライブラリには入りにくいでしょうね
478デフォルトの名無しさん (ワッチョイ 8101-UAPS)
2021/01/07(木) 21:43:59.65ID:jTCzKEfy0479デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/08(金) 00:02:52.02ID:RWydUoCr0 >>472
フラグメントで確保出来ない事があったわけだけど
フラグメントで確保出来ない事があったわけだけど
480デフォルトの名無しさん (ワッチョイ 7f85-vS+x)
2021/01/08(金) 00:51:10.08ID:aEO+ezsE0 使ってるアロケータの実装が何なのか, とどう使っているか示さないと何の意味もない
K&R mallocに毛が生えた程度のmalloc (Tronとか)ならものすごい勢いで断片化するし
glibc mallocとかのbest fitアロケータを使う分には断片化はかなり起こりにくい
あとメモリリークじゃないことは間違いないんだよね?
K&R mallocに毛が生えた程度のmalloc (Tronとか)ならものすごい勢いで断片化するし
glibc mallocとかのbest fitアロケータを使う分には断片化はかなり起こりにくい
あとメモリリークじゃないことは間違いないんだよね?
481デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/08(金) 05:16:18.16ID:gKD5AY0L0482デフォルトの名無しさん (スップ Sd1f-bb/z)
2021/01/08(金) 08:53:26.45ID:/42fFLGad C言語スレなのに組み込みやったことないヤツばっかりってのが不思議
>>480
アロケータの実装次第で断片化がおこる
と自分で書いてるわけだ
それが答え
どんな優れたアルゴリズムでも
断片化はおこるんだけど
完全に未来が予測出来る神アルゴリズムでも
>>480
アロケータの実装次第で断片化がおこる
と自分で書いてるわけだ
それが答え
どんな優れたアルゴリズムでも
断片化はおこるんだけど
完全に未来が予測出来る神アルゴリズムでも
483デフォルトの名無しさん (スッップ Sd9f-Vags)
2021/01/08(金) 09:11:57.78ID:yPaAOWPid Go/C/C++以外に直接システムコールしてる言語ってありますか?
484デフォルトの名無しさん (スップ Sd1f-bb/z)
2021/01/08(金) 09:18:29.89ID:/42fFLGad アセンブラ
485デフォルトの名無しさん (ブーイモ MM03-CNJK)
2021/01/08(金) 09:37:02.14ID:MUX0m4u5M c/c++もアセンブラ使わないとシステムコール呼べないけどな
486デフォルトの名無しさん (ワッチョイ df63-Cwx9)
2021/01/08(金) 12:03:05.57ID:lqJPJl/10 CALL 5 が使える言語は全部大丈夫
487デフォルトの名無しさん (ブーイモ MM03-CNJK)
2021/01/08(金) 12:52:43.97ID:0DW9z0rLM >>486
call 5って何のこと?
call 5って何のこと?
488はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-lB9F)
2021/01/08(金) 14:24:17.01ID:PuoTeu6a0489デフォルトの名無しさん (ワッチョイ 7f44-5z1F)
2021/01/08(金) 14:34:20.89ID:NkKDsd1u0 CALL 5ってシステムコール一般の事を指してるのかな?
CALL 5はCP/Mから引き継いだMS-DOSのファンクションコールか
ふつうMS-DOSはINT 21Hって内部割り込みつかってたけどCALL 5もできたそうな
CALL 5はCP/Mから引き継いだMS-DOSのファンクションコールか
ふつうMS-DOSはINT 21Hって内部割り込みつかってたけどCALL 5もできたそうな
490デフォルトの名無しさん (スップ Sd1f-bb/z)
2021/01/08(金) 15:15:28.39ID:/42fFLGad 直接システムコール
の定義によってはどの言語でも出来るし
定義によってはどの言語でも出来ない
質問者は定義を明確に
の定義によってはどの言語でも出来るし
定義によってはどの言語でも出来ない
質問者は定義を明確に
>>488
でも VLA は C++ では非推奨でしょう?
というか C であっても VLA の格納位置がスタックなら、それこそ悪意を持つクラッカに格好の餌をやっているとしか思えません‥
C99 or later では「VLA の確保場所をスタック禁止でヒープとする」という縛りはあるのでしょうか?
でも VLA は C++ では非推奨でしょう?
というか C であっても VLA の格納位置がスタックなら、それこそ悪意を持つクラッカに格好の餌をやっているとしか思えません‥
C99 or later では「VLA の確保場所をスタック禁止でヒープとする」という縛りはあるのでしょうか?
>>491,448,477
いろいろ調べたところ、私が間違っていることがわかりました、つまり alloca() はスタックに配列を確保する実装とのことだそうです
つまり alloca() は setjmp/longjmp と同じ「C で記述できない」関数ということになりますね‥‥
いろいろ調べたところ、私が間違っていることがわかりました、つまり alloca() はスタックに配列を確保する実装とのことだそうです
つまり alloca() は setjmp/longjmp と同じ「C で記述できない」関数ということになりますね‥‥
493デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/08(金) 22:26:35.55ID:gKD5AY0L0 だからこそ標準に組み入れられているんだよ
非標準でどうしろと言うのか考えろ
非標準でどうしろと言うのか考えろ
494デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/09(土) 13:37:23.88ID:lvRTpcj70 アセンブラで作ったサブルーチンをそうとは知らずに呼べるのはCの良いところ
495デフォルトの名無しさん (スップ Sd1f-bb/z)
2021/01/09(土) 14:13:13.77ID:wanRtpand それだけならC++でも
496デフォルトの名無しさん (ワッチョイ df4f-5z1F)
2021/01/09(土) 16:16:23.92ID:fHVxD+CU0 知らずに呼べるって、それアセンブラ側でC呼び出し規約で書いてあげたからじゃね。
497デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/09(土) 16:42:31.78ID:lvRTpcj70 ABIちゅーもんがあってだな
498デフォルトの名無しさん (ワッチョイ df4f-5z1F)
2021/01/09(土) 17:00:45.39ID:fHVxD+CU0 だからそう言ってる。Pascal規約で書けばPascalから呼べたり。
499デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/09(土) 17:08:25.76ID:L3ZBilIB0 フルアセンブラなら
パラメーターの渡し方は自由
独自のスタック構造だろうが
レジスタだろうが
臨機応変に出来る
今時フルアセンブラなんて事は非常に稀で
C/C++の呼び出し規約に従うのが普通
というだけ
パラメーターの渡し方は自由
独自のスタック構造だろうが
レジスタだろうが
臨機応変に出来る
今時フルアセンブラなんて事は非常に稀で
C/C++の呼び出し規約に従うのが普通
というだけ
500デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/09(土) 17:10:33.54ID:L3ZBilIB0 今でも超小規模マイコンだと関数コールの構造をとらないフルアセンブラコードを使う事がある
501デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/09(土) 17:52:11.58ID:lvRTpcj70 __declspec(naked)とか__attribute__((naked))とか
502デフォルトの名無しさん (ワッチョイ df4f-5z1F)
2021/01/09(土) 18:48:02.08ID:fHVxD+CU0 それexternで宣言できないから、アセンブラで書いたルーチンを呼ぶためのものじゃなくて
従来アセンブラを使わないと書けなかったルーチンをCのインラインアセンブラで書くためのものじゃね?
従来アセンブラを使わないと書けなかったルーチンをCのインラインアセンブラで書くためのものじゃね?
503デフォルトの名無しさん (ワッチョイ 7f40-Cbw0)
2021/01/09(土) 19:47:19.13ID:gjIQ6YZR0 純粋なC言語プロジェクトとして作るより
C++プロジェクトとして作ってCコードを書いた方が
利用可能なライブラリが増えるしほぼ上位互換、という考えは合ってる?
C++プロジェクトとして作ってCコードを書いた方が
利用可能なライブラリが増えるしほぼ上位互換、という考えは合ってる?
504デフォルトの名無しさん (ワッチョイ df63-Cwx9)
2021/01/09(土) 19:51:04.00ID:Z+DmrKyh0 >>503
それ多分C++コードだと思う
それ多分C++コードだと思う
505デフォルトの名無しさん (ワッチョイ 7f01-uXjq)
2021/01/09(土) 20:16:57.05ID:kPw1IBO30 >>494
それができない言語の方が珍しいと思うけど?
それができない言語の方が珍しいと思うけど?
506デフォルトの名無しさん (ワッチョイ df01-lB9F)
2021/01/09(土) 20:17:11.62ID:OS8QkCVT0 C++のベターC的な使い方であってpureなCとうまく連結できるかというと…
507デフォルトの名無しさん (ワッチョイ 7f01-uXjq)
2021/01/09(土) 20:18:36.46ID:kPw1IBO30 >>503
合ってる、いわゆるベターCって奴
合ってる、いわゆるベターCって奴
508デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/09(土) 21:18:21.63ID:lvRTpcj70 DLLなんかどこの馬の骨言語/コンパイラ/アセンブラで作られたかもわからんものを当たり前に使えるだろ
509デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/09(土) 22:58:21.36ID:L3ZBilIB0 それはDLLで呼べるように作ってあるからであって
510デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/09(土) 23:00:18.51ID:L3ZBilIB0 別にCの特徴でもない
511デフォルトの名無しさん (ワッチョイ 7f01-uXjq)
2021/01/09(土) 23:45:25.11ID:kPw1IBO30 大抵の言語はDLLを呼び出す側になれるけど、呼ばれる側になれる言語はそんなにない
512デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/09(土) 23:52:15.63ID:lvRTpcj70 普通にCでDLL書くぞ
513デフォルトの名無しさん (ワッチョイ ff8c-Ip2P)
2021/01/10(日) 16:59:27.49ID:97ZwT7Zl0 言語はOSに依存している。
514デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/10(日) 17:02:58.26ID:N5z3vzVP0 OSのない非常にチープな環境でも動くのがCの特徴
例えばRAM 16バイト、ROM 256命令みたいな糞CPUでも動く
リッチな環境ならCなんか使わん
例えばRAM 16バイト、ROM 256命令みたいな糞CPUでも動く
リッチな環境ならCなんか使わん
515デフォルトの名無しさん (ワッチョイ 7f01-uXjq)
2021/01/10(日) 17:07:41.53ID:rshCbxDT0516デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/10(日) 17:12:34.41ID:N5z3vzVP0 PIC10F200
517デフォルトの名無しさん (ワッチョイ 7f01-uXjq)
2021/01/10(日) 17:29:30.48ID:rshCbxDT0 >>516
ありがと、一応コンパイラもあるのね
ありがと、一応コンパイラもあるのね
518デフォルトの名無しさん (ワッチョイ 5f25-vS+x)
2021/01/11(月) 04:19:33.81ID:aEPvAJq60 そんくらいならCよりアセンブラの方が楽そうだけど
519デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/11(月) 09:26:06.49ID:yw8V+8is0 この規模でもアセンブラの方が楽って事はない
当然性能やリソースに問題がないならCの方が楽
楽をしたいなんて考える人が選ぶCPUではないけど
当然性能やリソースに問題がないならCの方が楽
楽をしたいなんて考える人が選ぶCPUではないけど
520はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-lB9F)
2021/01/11(月) 09:57:05.78ID:MiJ5pxpq0 PIC は CPU なのか?
と思ってデータシートを見たら RISC CPU って書いてあったわ。
と思ってデータシートを見たら RISC CPU って書いてあったわ。
521デフォルトの名無しさん (ワッチョイ 7f01-uXjq)
2021/01/11(月) 10:16:28.83ID:RSMcM3e30 >>518
まあさすがにROM 256だとCで書くのはあまり現実的じゃないわな
まあさすがにROM 256だとCで書くのはあまり現実的じゃないわな
522デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/11(月) 10:28:09.66ID:dLrb5ZQk0523デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/11(月) 12:12:48.66ID:yw8V+8is0524デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/11(月) 12:23:14.39ID:dLrb5ZQk0 Cのじゃじゃ馬を調教するにも結局アセンブラを理解する必要があるからな
アセンブラのじゃじゃ馬だけで済むならそっちの方が楽だろ
アセンブラのじゃじゃ馬だけで済むならそっちの方が楽だろ
525デフォルトの名無しさん (スッップ Sd9f-bb/z)
2021/01/11(月) 12:30:40.51ID:4UZaL5drd アセンブラを理解する必要なんて無いよ
526デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/11(月) 12:34:47.00ID:dLrb5ZQk0 あるよ
Cに対するよくある誤解で、
アセンブラから逃げるためのものではなく
アセンブラもわかる人が手抜きするためのものだ
そもそもアセンブラで書かれていたUnicsを書き直すために作られたツールだしな
Cに対するよくある誤解で、
アセンブラから逃げるためのものではなく
アセンブラもわかる人が手抜きするためのものだ
そもそもアセンブラで書かれていたUnicsを書き直すために作られたツールだしな
527デフォルトの名無しさん (スッップ Sd9f-bb/z)
2021/01/11(月) 12:37:16.69ID:4UZaL5drd >>526
いつの時代の人?
いつの時代の人?
528デフォルトの名無しさん (スッップ Sd9f-bb/z)
2021/01/11(月) 12:37:56.75ID:4UZaL5drd 楽かどうか
から話が変わってるし
から話が変わってるし
529デフォルトの名無しさん (ワッチョイ 7f01-uXjq)
2021/01/11(月) 12:54:40.32ID:RSMcM3e30 256程度に収まるコードならアセンブラでもそんなに苦労しないと思うよ
530デフォルトの名無しさん (スッップ Sd9f-bb/z)
2021/01/11(月) 13:03:17.58ID:4UZaL5drd でもアセンブラの方が楽
って事はない
って事はない
531デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/11(月) 13:04:29.37ID:yw8V+8is0 そもそも楽をしたいならこんな糞CPUをわざわざ選ばない
532デフォルトの名無しさん (ワッチョイ 5f69-lZna)
2021/01/11(月) 13:31:51.18ID:COmzXB920 Cコンパイラの吐き出す最適化済みのコードを人力でできればよいのだが なかなか ね
533デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/11(月) 14:40:26.73ID:dLrb5ZQk0 CはISO/IEC規格で「こうでなければならない」という決まりがあるが
アセンブラにそんなものはない
初めて触るCPUは多かれ少なかれ、それまでに蓄積した偏見に逆らうところがあり
あんまり迂闊にじゃじゃ馬呼ばわりすると他の人や未来の自分にアホにされる
たとえばPICならPICが向かない用途にPICを使おうとしたり
その逆をやらかすやつは気をつけたほうがいい
アセンブラにそんなものはない
初めて触るCPUは多かれ少なかれ、それまでに蓄積した偏見に逆らうところがあり
あんまり迂闊にじゃじゃ馬呼ばわりすると他の人や未来の自分にアホにされる
たとえばPICならPICが向かない用途にPICを使おうとしたり
その逆をやらかすやつは気をつけたほうがいい
534デフォルトの名無しさん (ワッチョイ df52-bb/z)
2021/01/11(月) 14:55:18.12ID:yw8V+8is0 要するにCのが楽
535デフォルトの名無しさん (ワッチョイ ff5f-D/jA)
2021/01/11(月) 18:03:00.86ID:T9p+a0He0 >>500
関数コール構造ってスタックか?
関数コール構造ってスタックか?
536デフォルトの名無しさん (ワッチョイ df4f-5z1F)
2021/01/11(月) 19:17:14.19ID:3OtB0f6U0 組み込みだとデバッグしやすいようにサブルーチンの引数はグローバル領域に置くとか
リターンアドレスも同じようにグローバルに置くとかあったな。
リターンアドレスも同じようにグローバルに置くとかあったな。
537デフォルトの名無しさん (ラクッペペ MM4f-2n0N)
2021/01/11(月) 19:22:32.27ID:exQc5JPEM538デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/11(月) 21:38:48.25ID:dLrb5ZQk0 > デバッグしやすいようにサブルーチンの引数はグローバル領域に置く
COBOLer乙
COBOLer乙
539デフォルトの名無しさん (ワッチョイ df4f-5z1F)
2021/01/11(月) 22:18:26.34ID:3OtB0f6U0 COBOLみたいな高級言語の話じゃねーよw
540デフォルトの名無しさん (ワッチョイ ff05-AFO5)
2021/01/12(火) 15:17:22.63ID:XXwzvzv60 標準ヘッダファイルの関数の実際の処理コードってどこに書いてあるんですか?
ぼく「rand関数ってどんな処理すんの?」
無能教科書「stlib.hに書いてあるだよ^^」
ぼく「ほーんstlib.hはWindowsだとここのフォルダに置いてあるのか」カチカチ
ぼく「Visual Studioで開く」
ぼく「ってプロトタイプ宣言やんけ!本体の場所は?」
って感じで困惑してるんですががが?
ぼく「rand関数ってどんな処理すんの?」
無能教科書「stlib.hに書いてあるだよ^^」
ぼく「ほーんstlib.hはWindowsだとここのフォルダに置いてあるのか」カチカチ
ぼく「Visual Studioで開く」
ぼく「ってプロトタイプ宣言やんけ!本体の場所は?」
って感じで困惑してるんですががが?
541デフォルトの名無しさん (ワッチョイ ff69-lZna)
2021/01/12(火) 15:20:38.53ID:aoRXfngS0 特にコレといった決まりはないので ランタイムライブラリのソースがあればラッキー程度
542デフォルトの名無しさん (ワッチョイ ff05-AFO5)
2021/01/12(火) 15:21:37.16ID:XXwzvzv60 ていせい
X stlib
O stdlib
X stlib
O stdlib
543デフォルトの名無しさん (ワッチョイ ff69-lZna)
2021/01/12(火) 15:24:49.50ID:aoRXfngS0 <Program Files>/Microsoft Platform SDK/src/crt
にあればラッキー
にあればラッキー
544デフォルトの名無しさん (ワッチョイ ff05-AFO5)
2021/01/12(火) 15:45:13.34ID:XXwzvzv60 >>543
たぶん自分の環境だと
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\
VC\Tools\MSVC\14.28.29333\crt\src
って奴なのだろう。
stdlib.cはなかったですね・・・
たぶん自分の環境だと
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\
VC\Tools\MSVC\14.28.29333\crt\src
って奴なのだろう。
stdlib.cはなかったですね・・・
545デフォルトの名無しさん (ワッチョイ ff69-lZna)
2021/01/12(火) 15:49:14.18ID:aoRXfngS0 >>544
関数で小分けになってたりで rand.c があったりなかったり
関数で小分けになってたりで rand.c があったりなかったり
546デフォルトの名無しさん (ワッチョイ ff05-AFO5)
2021/01/12(火) 16:02:39.24ID:XXwzvzv60 ないですね・・・(絶望)
一端諦めたほうがよさそうかな・・・
aoRXfngS0さんは付き合ってくれてホントありがとう!感謝!
一端諦めたほうがよさそうかな・・・
aoRXfngS0さんは付き合ってくれてホントありがとう!感謝!
547デフォルトの名無しさん (ワッチョイ ff69-lZna)
2021/01/12(火) 16:35:19.21ID:aoRXfngS0 どういう風に実現してるの? ならば ソースあたるしかないけど
どんな処理(機能)なの? ならば ヘルプなり man ページなり 色々あたれる
どんな処理(機能)なの? ならば ヘルプなり man ページなり 色々あたれる
548デフォルトの名無しさん (ワッチョイ 7f44-5z1F)
2021/01/12(火) 17:24:10.27ID:3icaK3oM0 ヘルプは嘘書いてたりな
いままでヘルプのいう通りある関数のフラグ書いてきたのに、ソースみたら全部無視されてたって経験が
いままでヘルプのいう通りある関数のフラグ書いてきたのに、ソースみたら全部無視されてたって経験が
549デフォルトの名無しさん (ワッチョイ ff46-/Z9b)
2021/01/12(火) 18:07:45.16ID:GYcPzbFp0 クソMicrosoftの使うからだ。
550デフォルトの名無しさん (ワッチョイ df5f-lB9F)
2021/01/12(火) 20:21:16.28ID:ZB1xpZCm0 c/Program Files (x86)/Windows Kits/10/Source/10.0.10240.0/ucrt/stdlib/rand.cpp
c/Program Files (x86)/Windows Kits/10/Source/10.0.16299.0/ucrt/stdlib/rand.cpp
c/Program Files (x86)/Windows Kits/10/Source/10.0.17134.0/ucrt/stdlib/rand.cpp
c/Program Files (x86)/Windows Kits/10/Source/10.0.17763.0/ucrt/stdlib/rand.cpp
c/Program Files (x86)/Windows Kits/10/Source/10.0.16299.0/ucrt/stdlib/rand.cpp
c/Program Files (x86)/Windows Kits/10/Source/10.0.17134.0/ucrt/stdlib/rand.cpp
c/Program Files (x86)/Windows Kits/10/Source/10.0.17763.0/ucrt/stdlib/rand.cpp
551イリヤは俺の嫁 (ワッチョイ ff05-v9ch)
2021/01/12(火) 23:06:47.42ID:XXwzvzv60 ありがとう!
早速試してみますね
早速試してみますね
552デフォルトの名無しさん (ワッチョイ ff2c-9hkR)
2021/01/13(水) 01:30:22.66ID:uZRkh4HP0 Visual Studio は、プリコンパイル済みヘッダーだろ。
pch.h (旧 stdafx.h)
もうビルド済み
pch.h (旧 stdafx.h)
もうビルド済み
553デフォルトの名無しさん (ワッチョイ 7fab-lB9F)
2021/01/13(水) 06:12:29.66ID:CAw2lvTg0 afxって文言を削りたかったのねw
554デフォルトの名無しさん (ワッチョイ ff05-AFO5)
2021/01/13(水) 11:46:14.48ID:vx4ASjNc0 大体知りたいことが分かりました!
皆さんありがとうございます!
皆さんありがとうございます!
555デフォルトの名無しさん (ワッチョイ 5f7c-/ZZX)
2021/01/14(木) 18:11:57.43ID:ZgCcmsal0 ヘルプとかマニュアルの嘘は多い
最初から疑うべき
特に日本語のやつ
最初から疑うべき
特に日本語のやつ
556デフォルトの名無しさん (ワッチョイ a9d2-sTIO)
2021/01/15(金) 07:50:56.36ID:FigS/mOA0 昔デジタルマニュアル内のサンプルソース確認してくれってわたされたやつが、
I -> 1 みたいなやつや、全角文字使われてたとか
入力ミスのサンプル集かと思った。
I -> 1 みたいなやつや、全角文字使われてたとか
入力ミスのサンプル集かと思った。
557デフォルトの名無しさん (ワッチョイ 82ab-A78j)
2021/01/17(日) 08:50:40.04ID:j2J8OKt50 いかにもな機械翻訳で、英訳しながら読まないと意味わかんないのとかね
558デフォルトの名無しさん (ワッチョイ 82ab-A78j)
2021/01/17(日) 10:23:01.71ID:j2J8OKt50 JIS X3010, JIS X3014どちらももうじき20年遅れ
559デフォルトの名無しさん (アウアウウー Sa05-NtCy)
2021/01/19(火) 09:32:50.28ID:eNVxWvb9a >>514
メモリ16Gの超リッチなLinux環境で使ってすいません。
メモリ16Gの超リッチなLinux環境で使ってすいません。
560デフォルトの名無しさん (スプッッ Sd41-gopP)
2021/01/19(火) 12:02:21.59ID:Uy0+fZqKd 16Gで超リッチとは何と安上りなんだ
561デフォルトの名無しさん (ワッチョイ 9152-T0Iz)
2021/01/20(水) 03:33:05.19ID:h5t/8l7N0 16GBのPCを個人所有してたら超リッチ
って話じゃないぞ
って話じゃないぞ
562デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/20(水) 08:00:15.22ID:6vEnElCe0 で、どういう話なの?
563はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 463e-A78j)
2021/01/20(水) 11:53:21.26ID:2wFV5REW0 C で書かれたコードを実行するにはリッチって話っしょ
564デフォルトの名無しさん (ワッチョイ 2285-A78j)
2021/01/20(水) 17:49:36.27ID:6B9ftBiM0 void *p=malloc(1024*1024*1024*16);
565デフォルトの名無しさん (ワッチョイ e252-SZF4)
2021/01/20(水) 17:55:29.77ID:HhPa7Y4p0 >>564
int型が32bitの環境ならその整数の乗算部分でオーバーフローが起きて16GBにならないんでないかな
int型が32bitの環境ならその整数の乗算部分でオーバーフローが起きて16GBにならないんでないかな
566デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/20(水) 20:34:38.74ID:6vEnElCe0567デフォルトの名無しさん (ワッチョイ 9152-T0Iz)
2021/01/20(水) 20:48:15.35ID:h5t/8l7N0 おまえバカだろ
RAM 16バイトの底辺CPUに比べて超リッチな環境だって話
RAM 16バイトの底辺CPUに比べて超リッチな環境だって話
568デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/20(水) 22:02:18.04ID:6vEnElCe0 バカはお前w
それは単に比べる相手がおかしいだけだろ
それは単に比べる相手がおかしいだけだろ
569デフォルトの名無しさん (ワッチョイ e101-RjaL)
2021/01/21(木) 00:28:31.26ID:MGeCCcUA0 GUIが無いんだろ、最強じゃんw
570デフォルトの名無しさん (US 0Hb6-46Pn)
2021/01/21(木) 06:10:52.98ID:gXoiSngNH C「を」書いたのはリッチー
571デフォルトの名無しさん (ワッチョイ 9152-T0Iz)
2021/01/21(木) 07:07:18.10ID:zKx4b76A0572デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/21(木) 07:12:03.65ID:rjSQv0Wq0573デフォルトの名無しさん (ワッチョイ 9152-T0Iz)
2021/01/21(木) 07:31:52.93ID:zKx4b76A0 開発ターゲットの話
574デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/21(木) 08:08:33.69ID:rjSQv0Wq0575デフォルトの名無しさん (ワッチョイ 9152-T0Iz)
2021/01/21(木) 08:12:32.96ID:zKx4b76A0576デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/21(木) 08:38:58.68ID:rjSQv0Wq0 >>575
だからそう言うのは井の中でやれよって話
だからそう言うのは井の中でやれよって話
577デフォルトの名無しさん (スップ Sd22-T0Iz)
2021/01/21(木) 12:02:22.51ID:NDHJTNIed 流れも理解せずに話に勝手に入って来て
何を言ってるんだか
何を言ってるんだか
578デフォルトの名無しさん (ワッチョイ a963-sTIO)
2021/01/21(木) 12:34:13.57ID:8rFkGfvd0 ここは胃の中です
579デフォルトの名無しさん (アウアウウー Sa05-I5sV)
2021/01/21(木) 13:14:18.23ID:hceb9QsBa 頭はプアです
580デフォルトの名無しさん (ワッチョイ 5244-5loA)
2021/01/21(木) 13:40:44.42ID:xengUv2k0 もう引っ張ることでも無いやろ
581デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/21(木) 13:54:25.02ID:rjSQv0Wq0 勝手に入ってこられるのが嫌ならブログででもやってろよw
バカすぎる
バカすぎる
582デフォルトの名無しさん (ワッチョイ 82ab-A78j)
2021/01/21(木) 22:19:55.22ID:Z9MWAls10 >>570
エデ・イー?
エデ・イー?
583デフォルトの名無しさん (エムゾネ FF7f-rvE3)
2021/01/22(金) 12:29:52.09ID:pJ+Dy7HCF 最近のOSってmallocで実メモリ足りないときはHDD/SSDからとってきてくれるんでしょう?
584デフォルトの名無しさん (ドコグロ MM8b-KCc1)
2021/01/22(金) 12:44:10.92ID:MTKvFG+KM 仮想記憶のことなら全然違うし、全然最近でもないし、swapも埋まればmalloc失敗すると思うけど、何だろう
585デフォルトの名無しさん (ブーイモ MMcb-F+C/)
2021/01/22(金) 12:50:00.55ID:3IahkNr8M 仮想アドレス空間に隙間がなければ失敗するけどな
586デフォルトの名無しさん (スップ Sdff-usbt)
2021/01/22(金) 13:07:46.80ID:/3jYtxszd587デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/22(金) 14:43:34.68ID:Pa9c7HBM0 スタック領域もコード領域も足りなくなったら補助記憶装置にスワップアウトするしmallocとは直接関係はしないよ
588デフォルトの名無しさん (オッペケ Sr7b-nsAP)
2021/01/22(金) 14:52:58.55ID:B/3A9QDar コードがスワップアウトしたら実行中のプロセスはどうなるんでしょうか?
589はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-Jq7D)
2021/01/22(金) 14:59:09.88ID:gbaM/AZn0 コード領域までスワップアウトすることがあるかどうかわからんけど、
あったとしたらタイムスライスの割り当てが戻ってきたときにその退避してたコードも
メモリに戻すことになるだけでしょ。
あったとしたらタイムスライスの割り当てが戻ってきたときにその退避してたコードも
メモリに戻すことになるだけでしょ。
590デフォルトの名無しさん (スップ Sdff-usbt)
2021/01/22(金) 15:03:45.51ID:/3jYtxszd591デフォルトの名無しさん (スップ Sdff-usbt)
2021/01/22(金) 15:07:21.69ID:/3jYtxszd592デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/22(金) 15:18:29.37ID:Pa9c7HBM0593デフォルトの名無しさん (スップ Sdff-usbt)
2021/01/22(金) 15:22:19.21ID:/3jYtxszd 主語はOS
594デフォルトの名無しさん (スップ Sdff-usbt)
2021/01/22(金) 15:25:32.00ID:/3jYtxszd mallocは単なるトリガー(の1例)
595デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/22(金) 16:21:31.38ID:Pa9c7HBM0 主語でないと関係しないって?
日本語の勉強からやり直した方がいいと思うよ
結構マジで
日本語の勉強からやり直した方がいいと思うよ
結構マジで
596デフォルトの名無しさん (スップ Sdff-usbt)
2021/01/22(金) 16:28:50.78ID:/3jYtxszd 非制限用法
597デフォルトの名無しさん (スップ Sdff-usbt)
2021/01/22(金) 16:30:53.38ID:/3jYtxszd 直接関係してなかろうと
(例えば)mallocをトリガーとしてスワップすることは事実
(例えば)mallocをトリガーとしてスワップすることは事実
598デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/22(金) 19:42:10.12ID:Pa9c7HBM0599デフォルトの名無しさん (ドコグロ MM1f-KCc1)
2021/01/22(金) 20:55:52.26ID:red8nkhVM 確かに直接関係はしないな
syscallというレイヤーが挟まるから
で?それがどうした?
syscallというレイヤーが挟まるから
で?それがどうした?
600デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/22(金) 22:55:39.06ID:Pa9c7HBM0601デフォルトの名無しさん (ワッチョイ 5fab-Jq7D)
2021/01/22(金) 23:26:46.95ID:LtnZZu+T0 mallocがスワップアウト要求すんのか? ページアウトですらなく?
602デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/23(土) 00:33:31.85ID:MUxSQoqh0 mallocは常に成功する、問題はそのメモリにアクセスした時
603デフォルトの名無しさん (オイコラミネオ MM1f-6bJc)
2021/01/23(土) 00:37:30.76ID:QrEIYEWsM Cでマルチスレッドなプログラム書くときのデザインパターンというか、オススメの書き方って何かある?
604デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/23(土) 00:40:17.93ID:MUxSQoqh0 >>603
pthread
pthread
>>603
私は c++11 以降に移行しました、言語が MT をサポしてくれているのはありがたいです‥
私は c++11 以降に移行しました、言語が MT をサポしてくれているのはありがたいです‥
606デフォルトの名無しさん (ワッチョイ 0752-usbt)
2021/01/23(土) 03:11:07.99ID:WU8kpFS10 >>600
mallocをコールした結果スワップすることがあるのは事実
mallocをコールした結果スワップすることがあるのは事実
607デフォルトの名無しさん (ワッチョイ 0752-usbt)
2021/01/23(土) 03:12:25.03ID:WU8kpFS10 pthreadやc++11がデザインパターン?
608デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 07:30:28.10ID:4VL29Q1J0609デフォルトの名無しさん (ワッチョイ 0752-usbt)
2021/01/23(土) 08:27:23.59ID:WU8kpFS10 >>602
それは実装次第
それは実装次第
610デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 08:43:07.74ID:4VL29Q1J0611デフォルトの名無しさん (ワッチョイ 077f-F+C/)
2021/01/23(土) 08:50:59.97ID:pbmfU4sr0 >>602
どんな実装でも仮想アドレスに連続領域が確保できなかったらmalloc呼び出し時点で失敗するんじゃないの?
どんな実装でも仮想アドレスに連続領域が確保できなかったらmalloc呼び出し時点で失敗するんじゃないの?
612デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/23(土) 09:44:47.82ID:MUxSQoqh0 >>611
実際にアクセスする時には仮想連続領域があるかもしれないじゃん
実際にアクセスする時には仮想連続領域があるかもしれないじゃん
613デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/23(土) 09:45:23.82ID:MUxSQoqh0 んで、そんな時こそのスワップですよw
614デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 10:27:22.67ID:4VL29Q1J0615デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/23(土) 10:29:19.13ID:MUxSQoqh0 >>614
バカなの?
バカなの?
616デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/23(土) 10:31:56.75ID:MUxSQoqh0 >>611
とりあえず割り当てちゃうんだよ
とりあえず割り当てちゃうんだよ
617デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/23(土) 10:36:34.75ID:MUxSQoqh0 アプリとかプログラムのcodeだって全部メモリ上にロードされてないからな、アクセスした時に、あっそこにはプログラム無いから今からロードするわ〜、って感じだから
618デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 12:00:13.95ID:4VL29Q1J0 >>615
ネタに突っ込んでるのか、仮想アドレスも理解できてないことを指摘されて悔しいのかをはっきりさせてくれw
ネタに突っ込んでるのか、仮想アドレスも理解できてないことを指摘されて悔しいのかをはっきりさせてくれw
619デフォルトの名無しさん (アウアウウー Sa4b-lOqV)
2021/01/23(土) 12:08:04.07ID:sAz3YI3ta >>616
仮想アドレスに連続した空き領域が足りないのに、とりあえずで何を割り当てるんだよ
仮想アドレスに連続した空き領域が足りないのに、とりあえずで何を割り当てるんだよ
620デフォルトの名無しさん (ワッチョイ 4763-xA1r)
2021/01/23(土) 12:15:26.28ID:X7rXBKGs0 メモリーマップトファイルでペタバイトの巨大なプログラムを実行するんだい
621デフォルトの名無しさん (ワッチョイ 077f-F+C/)
2021/01/23(土) 12:55:57.12ID:pbmfU4sr0 >>614
俺にレス?なんか間違ってるか?
俺にレス?なんか間違ってるか?
622デフォルトの名無しさん (ワッチョイ 077f-F+C/)
2021/01/23(土) 12:57:17.63ID:pbmfU4sr0 >>621
おっと612か。すまんかった
おっと612か。すまんかった
623デフォルトの名無しさん (スップ Sd7f-usbt)
2021/01/23(土) 15:00:04.42ID:E2XTqnevd >>610
言いきってるように見える?
おれには初心者が「大体こんな感じ?」って言っただけにしか見えないんだけど
意味的には大体合ってるのに
全然違う
とか
最近のOSとしか書いてないんだし
技術的な話をしたいならせめてOSを特定しようよ
勝手に特定のOSを前提にした視野が狭い人みたいだから
言いきってるように見える?
おれには初心者が「大体こんな感じ?」って言っただけにしか見えないんだけど
意味的には大体合ってるのに
全然違う
とか
最近のOSとしか書いてないんだし
技術的な話をしたいならせめてOSを特定しようよ
勝手に特定のOSを前提にした視野が狭い人みたいだから
624デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 15:27:34.50ID:4VL29Q1J0625デフォルトの名無しさん (スップ Sd7f-usbt)
2021/01/23(土) 15:31:32.55ID:E2XTqnevd いやどう見ても>>584がアホ
626デフォルトの名無しさん (ワッチョイ 5fab-Jq7D)
2021/01/23(土) 16:34:32.36ID:LPDMRZtK0 スワップファイルが満杯でmallocが失敗なんて状況に陥る前に対策するだろjk
627デフォルトの名無しさん (ワッチョイ a77c-rvE3)
2021/01/23(土) 16:57:50.33ID:5Na5U87Z0 linux って簡単に process 殺すよね
知らんふりも得意
知らんふりも得意
628デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 18:17:32.24ID:4VL29Q1J0629619 (ワッチョイ 8701-Dpoh)
2021/01/24(日) 15:57:31.34ID:5JJAlISZ0 >>619
64bit時代に仮想アドレスに連続した空き領域が無くなることなんか現実に無いだろ
64bit時代に仮想アドレスに連続した空き領域が無くなることなんか現実に無いだろ
630デフォルトの名無しさん (ワッチョイ 5f52-lOqV)
2021/01/24(日) 16:53:19.15ID:0zbFdmBp0631デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/24(日) 17:27:58.38ID:5JJAlISZ0 >>630
常に成功を返す
常に成功を返す
632デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/24(日) 17:35:27.66ID:1wsdfsyQ0 実際にアクセスしたときにページフォルト起こしてページを割り当てるとして、そのアドレスに
連続した空きがない状態じゃメモリ割り当てても使えないじゃん。
連続した空きがない状態じゃメモリ割り当てても使えないじゃん。
633デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/24(日) 22:06:29.57ID:5JJAlISZ0 >>632
日本語が変だぞw
日本語が変だぞw
634デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/24(日) 22:09:51.26ID:5JJAlISZ0 PFでメモリ割り当てられなきゃ、リスケジューリングだアホ
635デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/24(日) 22:14:36.76ID:1wsdfsyQ0 割り当てられたとしても使えないと言っているんだが?それとも既に他で使われている領域を上書きするか?
636デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/24(日) 22:18:58.47ID:5JJAlISZ0 >>635
4Kページ割り当てて使えないって何なんだよ・・
4Kページ割り当てて使えないって何なんだよ・・
637デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/24(日) 22:24:12.86ID:1wsdfsyQ0 アドレスに連続した空きがない状態だよ。最初からその話をしてるんだろ?
638デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/24(日) 22:28:07.43ID:5JJAlISZ0 >>637
4K+1byte目をアクセスしたらまたPFだから、MMUの勉強したら?
4K+1byte目をアクセスしたらまたPFだから、MMUの勉強したら?
639デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/24(日) 22:41:44.60ID:1wsdfsyQ0 その4Kの中に要求するサイズの連続領域が取れない場合の話だよ。
いったいなにを「とりあえず」割り当てるんだか。
いったいなにを「とりあえず」割り当てるんだか。
640デフォルトの名無しさん (ガラプー KKcb-FeWw)
2021/01/24(日) 23:52:48.21ID:5uhuun5ZK ページングの話とmallocの領域管理の話がごっちゃになってるな
ページアウトされた領域に空きがあるかどうかはページインしなきゃわからないかもしれないが、そしたら他のページを探しに行くだけ
最終的にどこにも空きがなけりゃmallocがエラーを返す
空き容量が十分あっても希望するサイズの連続領域がないなんてケースは実際にもあり得る
ページアウトされた領域に空きがあるかどうかはページインしなきゃわからないかもしれないが、そしたら他のページを探しに行くだけ
最終的にどこにも空きがなけりゃmallocがエラーを返す
空き容量が十分あっても希望するサイズの連続領域がないなんてケースは実際にもあり得る
641デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/25(月) 00:08:13.28ID:U3eoM7Fp0 仮想アドレスなんだから使う時まで要らないんだから、mallocは必ず成功する。
昨今のOSは全てそう実装されてる。
昨今のOSは全てそう実装されてる。
642デフォルトの名無しさん (ワッチョイ 4763-xA1r)
2021/01/25(月) 00:11:52.23ID:WuLpUwZU0 オーバーブッキングを平気でするホテルみたいだな
643デフォルトの名無しさん (ワッチョイ 5f52-lOqV)
2021/01/25(月) 01:00:15.57ID:8MmNCL2s0 >>641
バカ?
バカ?
644デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/25(月) 01:17:43.98ID:U3eoM7Fp0 iOSのreusableCellの取得も必ず成功するからforce unwrapできるし
645デフォルトの名無しさん (ドコグロ MM1f-Wxou)
2021/01/25(月) 07:05:04.38ID:HugL0xWrM646デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/25(月) 08:02:50.43ID:dmbNtT1m0 >>641
勉強しろと言った本人が理解していないのが丸わかり。
使う時まで要らないのは物理メモリであってmallocの時点で仮想アドレスは割り当てなきゃならん。
もし仮想アドレスに空きがなけりゃ「とりあえず割り当てる」なんてのも無理。
勉強しろと言った本人が理解していないのが丸わかり。
使う時まで要らないのは物理メモリであってmallocの時点で仮想アドレスは割り当てなきゃならん。
もし仮想アドレスに空きがなけりゃ「とりあえず割り当てる」なんてのも無理。
647デフォルトの名無しさん (ガラプー KK6b-FeWw)
2021/01/25(月) 09:02:02.61ID:+X0AlmLXK 実際「mallocは常に成功する」とか根拠なく信じ込んでる奴にはシステム開発は任せられんよ
あとで痛い目みる
あとで痛い目みる
648デフォルトの名無しさん (ワッチョイ 47d2-xA1r)
2021/01/25(月) 10:01:03.33ID:NuAiBZ6D0 >mallocは常に成功する
Win98SEで失敗したしたことあるわ。
Win98SEで失敗したしたことあるわ。
649デフォルトの名無しさん (ワッチョイ a7bd-MWrm)
2021/01/25(月) 10:44:35.68ID:MIcmX8A+0 ハードがMMUで物理的に管理するメモリ上限とか、OSが管理する上限とか、論理上いつか確保出来ない状況は絶対来るの分かっているけれど、そこでエラー起こされると打つ手がない(思い付かない)から、そのまま落ちてもらう。
俺が知らないだけで、良い回避方法とかあるのかな?
俺が知らないだけで、良い回避方法とかあるのかな?
650はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-Jq7D)
2021/01/25(月) 11:32:21.69ID:ktS6mGMX0651デフォルトの名無しさん (スプッッ Sd3b-+pmv)
2021/01/26(火) 07:53:24.98ID:ZI8ZD6Xld 非常用のメモリを取っとくのは
大昔から当たり前の手法だね
大昔から当たり前の手法だね
652デフォルトの名無しさん (ワッチョイ 475f-b71I)
2021/01/26(火) 09:07:24.49ID:7OslGgb50 mallocを信じて生きていけばいいさと 君は叫んだだろう
653はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-Jq7D)
2021/01/26(火) 10:29:56.18ID:xZCVqJnF0654デフォルトの名無しさん (ワッチョイ 47d2-xA1r)
2021/01/26(火) 11:06:15.63ID:CnGywsMw0 メモリ不足だと表示して終了しちゃいかんのか?
655はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-Jq7D)
2021/01/26(火) 11:51:32.15ID:xZCVqJnF0656デフォルトの名無しさん (スプッッ Sdff-usbt)
2021/01/26(火) 12:18:24.13ID:nusF9BATd 車を運転してたら
「メモリ不足です」と表示されてブレーキが効かなくなった
冷蔵庫が「メモリ不足です」と表示されて止まっていた
ああメモリ不足ならしょうがない
って思う人いるかな?
「メモリ不足です」と表示されてブレーキが効かなくなった
冷蔵庫が「メモリ不足です」と表示されて止まっていた
ああメモリ不足ならしょうがない
って思う人いるかな?
657デフォルトの名無しさん (ワッチョイ a744-b71I)
2021/01/26(火) 12:24:58.20ID:qqWW8hOx0 航空機搭載システムなんかは動的メモリ割り当て自体を禁止してるそうな
でもアルゴリズムによっては動的メモリ割り当てが本質的なこともあるだろうし
事前割り当てしたところで、自前でmymallocを実装するってだけな気はするし
ミッションクリティカルなアプリがどうやってるかはちゃんと調べないと判らんね
でもアルゴリズムによっては動的メモリ割り当てが本質的なこともあるだろうし
事前割り当てしたところで、自前でmymallocを実装するってだけな気はするし
ミッションクリティカルなアプリがどうやってるかはちゃんと調べないと判らんね
658デフォルトの名無しさん (スプッッ Sdff-usbt)
2021/01/26(火) 12:29:47.88ID:nusF9BATd 航空機なんて特別な例を出さなくても
身の回りの電気製品でソフト要因のエラーが許される物なんてなかなか無いような気がする
身の回りの電気製品でソフト要因のエラーが許される物なんてなかなか無いような気がする
659デフォルトの名無しさん (ワッチョイ 4763-xA1r)
2021/01/26(火) 12:41:48.87ID:Ab88y5Cj0 >>657
オーバーフローは危険なのでスタックの使用も禁止します
オーバーフローは危険なのでスタックの使用も禁止します
660デフォルトの名無しさん (スプッッ Sdff-usbt)
2021/01/26(火) 12:49:59.07ID:nusF9BATd 条件を満たせは静的解析でスタック使用量はわかる
整数型はオーバーフローして危険だから禁止
整数型はオーバーフローして危険だから禁止
661はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-Jq7D)
2021/01/26(火) 13:32:22.24ID:xZCVqJnF0 そういえば何の事例だったかでループも禁止 (停止性の証明が難しいので) とかいうのは聞いたことがあるな。
662デフォルトの名無しさん (ドコグロ MM8b-Wxou)
2021/01/26(火) 13:33:43.60ID:cSn18yXwM >>659
再帰禁止とか組み込みなら珍しくないぞ
再帰禁止とか組み込みなら珍しくないぞ
663デフォルトの名無しさん (スプッッ Sd7f-usbt)
2021/01/26(火) 14:31:35.84ID:46etcFxHd664デフォルトの名無しさん (スプッッ Sd7f-usbt)
2021/01/26(火) 14:35:21.22ID:46etcFxHd ヒープ禁止は普通にある
禁止というかそもそもヒープ用にメモリが無いとか
設計方針でヒープモジュールを搭載しないとか
あとは確保オンリーなヒープってのもある
PICとかだとハード的に再帰が難しいとか
禁止というかそもそもヒープ用にメモリが無いとか
設計方針でヒープモジュールを搭載しないとか
あとは確保オンリーなヒープってのもある
PICとかだとハード的に再帰が難しいとか
665デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/26(火) 21:31:25.38ID:INqgRhQd0 JALの航空管制制御のプログラム作ったことあるけど、
1ルーチンコードサイズ4KBまでIBM3090アセンブラ
ループ処理などなく、また呼ばれる
可愛い平さん元気かなぁ・・
1ルーチンコードサイズ4KBまでIBM3090アセンブラ
ループ処理などなく、また呼ばれる
可愛い平さん元気かなぁ・・
666デフォルトの名無しさん (ワッチョイ 8701-Dpoh)
2021/01/26(火) 21:32:25.57ID:INqgRhQd0 手塚さんとかも綺麗だったな・・おれまだ学生だったw
>>653
コード進行が凄い曲ですね‥‥ギターコードが書いている楽譜ってないですかね?
コード進行が凄い曲ですね‥‥ギターコードが書いている楽譜ってないですかね?
668デフォルトの名無しさん (ワッチョイ 4763-xA1r)
2021/01/27(水) 00:01:47.99ID:fhlKtwwY0 上の空で書いていたのか
669デフォルトの名無しさん (ワッチョイ 47d2-xA1r)
2021/01/27(水) 07:49:16.31ID:or8n1kaA0 8/16bit時代のハードみたいに起動時にメモリサイズやエラーチェックしてワークエリアサイズ固定で設計するだけだわな。
そういやぁある記事で80286って工業用途を想定してて、エラーが発生して停止したら電源入れ直す以外に再起動できないとか言ってたな。
そういやぁある記事で80286って工業用途を想定してて、エラーが発生して停止したら電源入れ直す以外に再起動できないとか言ってたな。
670デフォルトの名無しさん (ワッチョイ 0752-usbt)
2021/01/27(水) 07:52:13.49ID:MIG3AZ730671デフォルトの名無しさん (ワッチョイ 0752-usbt)
2021/01/27(水) 07:59:19.27ID:MIG3AZ730 >>667
非常に簡単なのしか使ってないんで耳コピ簡単じゃ?
非常に簡単なのしか使ってないんで耳コピ簡単じゃ?
672デフォルトの名無しさん (ワッチョイ 5f85-Jq7D)
2021/01/27(水) 10:55:52.75ID:9MA4/mbB0 >656
>「メモリ不足です」と表示されてブレーキが効かなくなった
上級国民が大喜びな仕様だな。
メモリ不足になるような仕様を避けるのが当然で、
それでも起きるなら安全に停止できる機能を搭載するだろ。
とりあえず電源喪失状態でもブレーき利くようにするとか。
そういやぁどっかの列車で安全装置の故障で自動停車されなくて事故ったってのあって、
安全装置からの信号がONになった時にブレーキが作動するって仕様になってたのを
安全装置からの信号が来なくなったら(ずっと信号ONって不具合もかあるだろうから通信のやり取りでもあるのかな)
ブレーキ作動させるようになったって聞いたわ。
>「メモリ不足です」と表示されてブレーキが効かなくなった
上級国民が大喜びな仕様だな。
メモリ不足になるような仕様を避けるのが当然で、
それでも起きるなら安全に停止できる機能を搭載するだろ。
とりあえず電源喪失状態でもブレーき利くようにするとか。
そういやぁどっかの列車で安全装置の故障で自動停車されなくて事故ったってのあって、
安全装置からの信号がONになった時にブレーキが作動するって仕様になってたのを
安全装置からの信号が来なくなったら(ずっと信号ONって不具合もかあるだろうから通信のやり取りでもあるのかな)
ブレーキ作動させるようになったって聞いたわ。
673デフォルトの名無しさん (ワッチョイ a77c-rvE3)
2021/01/27(水) 11:34:46.40ID:cJSBZXf90 >>667
Monacaの田中秀和って好き?
Monacaの田中秀和って好き?
674デフォルトの名無しさん (ワッチョイ a77c-SRxQ)
2021/01/27(水) 12:05:51.10ID:isvLWJ6Q0 >>656
飯塚会長なら言いそうだ
飯塚会長なら言いそうだ
675デフォルトの名無しさん (ワッチョイ a77c-rvE3)
2021/01/27(水) 12:09:55.82ID:cJSBZXf90676デフォルトの名無しさん (ワッチョイ a77c-rvE3)
2021/01/27(水) 12:12:51.81ID:cJSBZXf90 >>663
常にHALT+割り込みのみで書かれたものはあったはず
常にHALT+割り込みのみで書かれたものはあったはず
677デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/27(水) 12:27:46.11ID:gQSND64l0678デフォルトの名無しさん (スフッ Sd7f-n4Sq)
2021/01/27(水) 13:33:58.28ID:vpj9vmrAd679デフォルトの名無しさん (ワッチョイ ff2d-xA1r)
2021/01/27(水) 13:57:29.31ID:DAR3YVvc0 HALTと割り込みでもいつかはどこかで最初からの繰り返しループにならない?
割り込み中でステート管理して、スタックを操作して最初に戻るとか?
出来ないマイコンもありそうだけど
割り込み中でステート管理して、スタックを操作して最初に戻るとか?
出来ないマイコンもありそうだけど
680デフォルトの名無しさん (ワッチョイ 4769-V1vN)
2021/01/27(水) 14:01:16.93ID:N60gZ7990 そういう制御込みでコンパイルして吐き出してくれるなら Cの選択肢もあるだろうけど
それが期待できないとなると アセンブラしかない ってことになるのかな
それが期待できないとなると アセンブラしかない ってことになるのかな
681デフォルトの名無しさん (スップ Sdff-usbt)
2021/01/27(水) 17:35:31.51ID:6jCnxoTKd682デフォルトの名無しさん (スップ Sdff-usbt)
2021/01/27(水) 17:36:57.11ID:6jCnxoTKd683デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/27(水) 20:45:42.53ID:gQSND64l0684デフォルトの名無しさん (ワッチョイ 2702-ctsJ)
2021/01/27(水) 23:07:06.58ID:7vi5L3Y30 初心者です
変数に&を付けてメモリのアドレスを表示させるプログラムを実行して(0x7efe61e298d8←こんな感じ?)
その後1時間とか経過して別のプログラムでメモリ「0x7efe61e298d8」に格納されたものを表示させることってできるんですかね?
変数に&を付けてメモリのアドレスを表示させるプログラムを実行して(0x7efe61e298d8←こんな感じ?)
その後1時間とか経過して別のプログラムでメモリ「0x7efe61e298d8」に格納されたものを表示させることってできるんですかね?
685デフォルトの名無しさん (ワッチョイ 4763-xA1r)
2021/01/27(水) 23:11:59.94ID:fhlKtwwY0 OSが何かにもよるけど
一般論としては出来る。出来るが、
成功するかどうかは分からない
一般論としては出来る。出来るが、
成功するかどうかは分からない
686デフォルトの名無しさん (ワッチョイ a744-b71I)
2021/01/27(水) 23:34:48.42ID:XppLd9do0 MS-DOSのTSRか
687デフォルトの名無しさん (ワッチョイ 2702-ctsJ)
2021/01/27(水) 23:52:57.86ID:7vi5L3Y30 C言語というよりOS側の問題なんですね
ありがとうございます
ありがとうございます
688デフォルトの名無しさん (ワッチョイ 7f02-n4Sq)
2021/01/28(木) 05:11:34.57ID:52TUUvk80 >>681
それ、スタックを使って構造化プログラミングを実現した言語であるCを使う利点が一切ないような…
組み込み/マイコン向け言語でスタックを使わず構造化プログラミングを実現するにはcpsスタイルの言語がベストなはず、lisp方言schemeにはそれ向けのサブセット仕様もあるし、ホビー界隈ではそこそこ使われてる模様
(但し主なpc向け実装は、アーキテクチャに合ったスタックによるcps実装が多い、念のため)
forthも消えてしまったなあ
C換算百行未満でブートストラップ&セルフホスト処理系が書け、OS機能も兼ね、規格にあるライブラリ関数も改変無しコピペで動く移植性の良さ
c台頭までは組み込み/マイコン界隈を寡占してたんだが
ちゃんとスタック指向&構造化言語だけど、ハードウェアスタックに頼らないので相性がよい
唯一の敗因はlisp以上に深淵なことだな…
cは既に国際語になってしまったので、取り敢えず分かるcで書く、ってのがcが使われる唯一の理由だと思う
それ、スタックを使って構造化プログラミングを実現した言語であるCを使う利点が一切ないような…
組み込み/マイコン向け言語でスタックを使わず構造化プログラミングを実現するにはcpsスタイルの言語がベストなはず、lisp方言schemeにはそれ向けのサブセット仕様もあるし、ホビー界隈ではそこそこ使われてる模様
(但し主なpc向け実装は、アーキテクチャに合ったスタックによるcps実装が多い、念のため)
forthも消えてしまったなあ
C換算百行未満でブートストラップ&セルフホスト処理系が書け、OS機能も兼ね、規格にあるライブラリ関数も改変無しコピペで動く移植性の良さ
c台頭までは組み込み/マイコン界隈を寡占してたんだが
ちゃんとスタック指向&構造化言語だけど、ハードウェアスタックに頼らないので相性がよい
唯一の敗因はlisp以上に深淵なことだな…
cは既に国際語になってしまったので、取り敢えず分かるcで書く、ってのがcが使われる唯一の理由だと思う
689デフォルトの名無しさん (ワッチョイ 4721-aHd2)
2021/01/28(木) 05:58:13.87ID:pfPCg+P40 動的確保なしの32ビットマイコン使って飯食ってるけど、さすがに再起は使わんが、
好きなだけ関数呼び出し深く出来るだけでも恵まれてたんだな。スタックオーバーフローは一応気にしないといかんけど。
ミッションクリティカルなコードなんてゼッテー無理だわw Adaとか使われるんだっけ?と思ったら微妙に廃れ気味なんね。よーしらんけど。
好きなだけ関数呼び出し深く出来るだけでも恵まれてたんだな。スタックオーバーフローは一応気にしないといかんけど。
ミッションクリティカルなコードなんてゼッテー無理だわw Adaとか使われるんだっけ?と思ったら微妙に廃れ気味なんね。よーしらんけど。
690デフォルトの名無しさん (ガラプー KK4f-aOD4)
2021/01/28(木) 08:01:19.64ID:Z02UUfjqK >>684
たぶん意味がない。
今時のOSでは、別々のプログラムからメモリ「0x7efe61e298d8」を参照しても同じ内容にならない。「仮想アドレス」でぐぐれ。
プログラム間で変数をやりとりしたければ、共有メモリを使う方法がある。
たぶん意味がない。
今時のOSでは、別々のプログラムからメモリ「0x7efe61e298d8」を参照しても同じ内容にならない。「仮想アドレス」でぐぐれ。
プログラム間で変数をやりとりしたければ、共有メモリを使う方法がある。
691デフォルトの名無しさん (ワッチョイ 0752-usbt)
2021/01/28(木) 08:05:06.42ID:c7JCU6ma0 今時のOS,CPUだとアクセスした瞬間に例外発生する
692はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-Jq7D)
2021/01/28(木) 10:46:55.99ID:vBYpvnJx0 >>684
(現代的なコンピュータアーキテクチャでは) 各プロセスのアドレス空間が独立していて、
あるプロセスから見えているメモリの内容と他のプロセスから見えるそれは別物なんだよ。
他のプロセス (が持っているリソース) にアクセスしたりデバイスをコントロールするには
OS に依頼して仲介してもらうという形をとる。
プロセス間でメモリの共有をすることも可能だが、
それもあらかじめ OS に伝えて共有する実体 (物理メモリ) をそれぞれのメモリ空間にマッピングしてもらう形
なので、それを利用するプロセス同士が事前に共有に同意した状態である必要がある。
あるプロセスが自分用に割り当てられたリソース以外にはそう自由にはアクセスできないんだ。
それがセキュリティというものだよ。
(現代的なコンピュータアーキテクチャでは) 各プロセスのアドレス空間が独立していて、
あるプロセスから見えているメモリの内容と他のプロセスから見えるそれは別物なんだよ。
他のプロセス (が持っているリソース) にアクセスしたりデバイスをコントロールするには
OS に依頼して仲介してもらうという形をとる。
プロセス間でメモリの共有をすることも可能だが、
それもあらかじめ OS に伝えて共有する実体 (物理メモリ) をそれぞれのメモリ空間にマッピングしてもらう形
なので、それを利用するプロセス同士が事前に共有に同意した状態である必要がある。
あるプロセスが自分用に割り当てられたリソース以外にはそう自由にはアクセスできないんだ。
それがセキュリティというものだよ。
693デフォルトの名無しさん (ワッチョイ 275f-rvE3)
2021/01/28(木) 11:01:24.92ID:dNWrUHbO0 >>682
毎回リセットして最初から実行するのも君の説ではループの範疇だな
毎回リセットして最初から実行するのも君の説ではループの範疇だな
694デフォルトの名無しさん (ワッチョイ 275f-rvE3)
2021/01/28(木) 11:03:43.19ID:dNWrUHbO0695はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-Jq7D)
2021/01/28(木) 11:57:56.44ID:vBYpvnJx0 >>694
アクセスされる側にとって (普通は) 意図しないものであるには違いないけど、
一応は OS が許可した上で各プロセスにアタッチする形なので
ひとつのプロセス内でのことになるから別のプロセスからアクセスするのとは理屈が違うんじゃないかな。
プロセスの独立性は壊れないし、権限が上位のプロセスにはアタッチできないんじゃなかったっけ?
まあときどき権限昇格の脆弱性が発見されたりはしてるけど……。
アクセスされる側にとって (普通は) 意図しないものであるには違いないけど、
一応は OS が許可した上で各プロセスにアタッチする形なので
ひとつのプロセス内でのことになるから別のプロセスからアクセスするのとは理屈が違うんじゃないかな。
プロセスの独立性は壊れないし、権限が上位のプロセスにはアタッチできないんじゃなかったっけ?
まあときどき権限昇格の脆弱性が発見されたりはしてるけど……。
696デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/28(木) 12:14:49.58ID:eBfsAdOM0 >>684
デバッガでも作りたいのか?
デバッガでも作りたいのか?
697デフォルトの名無しさん (スッップ Sd7f-usbt)
2021/01/28(木) 12:16:47.81ID:Tpt+oTXId >>671
クラシック系の耳にはすごく斬新に聞こえますが、世間一般的には簡単な部類に入るのですか、私は井戸の底の蛙だったんですね‥‥
クラシック系の耳にはすごく斬新に聞こえますが、世間一般的には簡単な部類に入るのですか、私は井戸の底の蛙だったんですね‥‥
>>686
TSR はロマンで私もキー入れ替えとかいろいろ凝っていた時期があったんたけど、TSR に似たプログラミングって最近はなんですか?
TSR はロマンで私もキー入れ替えとかいろいろ凝っていた時期があったんたけど、TSR に似たプログラミングって最近はなんですか?
>>692
でも、i386 アーキテクチャの「コールゲート」とかは廃れてしまったんですよね…‥
でも、i386 アーキテクチャの「コールゲート」とかは廃れてしまったんですよね…‥
701デフォルトの名無しさん (ワッチョイ 8701-b71I)
2021/01/28(木) 20:19:09.21ID:Sg/ycOHU0 WaveToneとかの便利なソフトがあっての
>>701
そのソフトは大昔(win95 の時代)にも開発してくださっていた方がいて便利に浸かっていました‥‥
----------------------------------------------------------------------------
【ソフト名】 TonagramView for Win95 Ver.0.3β
【 作成者 】 Zephyr <NCC00723@niftyserve.or.jp>
【登 録 名】 SHIINE03.LZH
【圧縮形式】 LHa 2.55b
【動作環境】 Windows 95
【転 載】 事前の許可が必要
【掲載月日】 1997/08/30
----------------------------------------------------------------------------
このプログラムは、WAVファイルを周波数解析してtonagram(ピアノロールのような
グラフ)を表示するツールです。
耳コピをしていると、どうしてもコードが採れなくて泣きたくなることがよくあり
ます。そんなときは、tonagramを調べれば、鳴ってる音を目で見ることができるの
で、適当にピックアップしてやれば楽にコードを拾えます。v(^^)
今回、GUI化によりリードアウトカーソルなどの機能が強化されています。
また、解析結果のロード・セーブが可能になりましたので、結果をセーブしておけ
ば解析にかかる時間を節約することができます。
★Ver.0.2βからの改良点
・待望(?)のGUI化
ロード・セーブ・印刷
リードアウトカーソル 等
・ピークサーチアルゴリズムの変更(精度より見た目を重視)
NCC00723 Zephyr
そのソフトは大昔(win95 の時代)にも開発してくださっていた方がいて便利に浸かっていました‥‥
----------------------------------------------------------------------------
【ソフト名】 TonagramView for Win95 Ver.0.3β
【 作成者 】 Zephyr <NCC00723@niftyserve.or.jp>
【登 録 名】 SHIINE03.LZH
【圧縮形式】 LHa 2.55b
【動作環境】 Windows 95
【転 載】 事前の許可が必要
【掲載月日】 1997/08/30
----------------------------------------------------------------------------
このプログラムは、WAVファイルを周波数解析してtonagram(ピアノロールのような
グラフ)を表示するツールです。
耳コピをしていると、どうしてもコードが採れなくて泣きたくなることがよくあり
ます。そんなときは、tonagramを調べれば、鳴ってる音を目で見ることができるの
で、適当にピックアップしてやれば楽にコードを拾えます。v(^^)
今回、GUI化によりリードアウトカーソルなどの機能が強化されています。
また、解析結果のロード・セーブが可能になりましたので、結果をセーブしておけ
ば解析にかかる時間を節約することができます。
★Ver.0.2βからの改良点
・待望(?)のGUI化
ロード・セーブ・印刷
リードアウトカーソル 等
・ピークサーチアルゴリズムの変更(精度より見た目を重視)
NCC00723 Zephyr
703デフォルトの名無しさん (ワッチョイ 6d52-k294)
2021/01/29(金) 00:08:49.78ID:BmYQVI6m0704デフォルトの名無しさん (エムゾネ FF0a-qCTK)
2021/01/30(土) 12:01:56.26ID:EWZvTk3zF >>702
404
404
705デフォルトの名無しさん (ワッチョイ 7d4f-RNyz)
2021/01/31(日) 19:33:07.61ID:jQyDM6Cn0 enum A
{
max_value = 0x7fffffffffffffffLL;
};
こんなことしても64bitのenumはつくれないんだっけ?
{
max_value = 0x7fffffffffffffffLL;
};
こんなことしても64bitのenumはつくれないんだっけ?
706デフォルトの名無しさん (ワッチョイ 8d7f-LESd)
2021/02/01(月) 00:52:02.23ID:5yr9aQzL0 整数型ならいいらしいから、64bitになるコンパイラがあっても規格違反ではないと思う
707デフォルトの名無しさん (ワッチョイ 7d01-cVNB)
2021/02/01(月) 01:29:58.21ID:OjiuyGRS0 infinity 定義されてるだろ?
708デフォルトの名無しさん (ワッチョイ ad45-unxX)
2021/02/01(月) 07:03:50.51ID:v6ebtUL10 整数型に?
709デフォルトの名無しさん (ワッチョイ 7d4f-RNyz)
2021/02/01(月) 07:51:42.98ID:9cKOvUYE0710デフォルトの名無しさん (ワッチョイ 6d52-k294)
2021/02/01(月) 08:04:18.96ID:SoQHgLGL0 64bit整数型がない環境があるんだから
確実に64bit以上なんて無理
確実に64bit以上なんて無理
711デフォルトの名無しさん (ワッチョイ ad45-unxX)
2021/02/01(月) 08:15:50.49ID:v6ebtUL10 sizeof max_value
gcc, clang: 8
cl: 4
gcc, clang: 8
cl: 4
712デフォルトの名無しさん (ワッチョイ 7d4f-RNyz)
2021/02/01(月) 08:27:26.16ID:9cKOvUYE0 >>710
じゃあ「64bit整数が使える環境で」って条件だとどうだろう?
じゃあ「64bit整数が使える環境で」って条件だとどうだろう?
713デフォルトの名無しさん (ワッチョイ 8d7f-con+)
2021/02/01(月) 09:03:50.04ID:5yr9aQzL0 Cのenumはマクロと大して変わらんのだから、マクロで代用するとか
714デフォルトの名無しさん (ワッチョイ ad45-unxX)
2021/02/01(月) 09:11:58.71ID:v6ebtUL10 マクロに代わるべく作られたenumがマクロで代用されるとは
無様な・・・
無様な・・・
715デフォルトの名無しさん (ワッチョイ ad45-unxX)
2021/02/01(月) 09:18:04.19ID:v6ebtUL10 6.7.2.2 Enumeration specifiers
3 The identifiers in an enumerator list are declared as constants that have type int and may appear wherever such are permitted.
6.7.2.2 列挙型指定子
意味規則 列挙子並びの中の識別子は,型int をもつ定数として宣言され,この型の定数が許されるところならばどこに現れてもよい。
はっきり、intと書いてあるね
long longになる余地は全くない
3 The identifiers in an enumerator list are declared as constants that have type int and may appear wherever such are permitted.
6.7.2.2 列挙型指定子
意味規則 列挙子並びの中の識別子は,型int をもつ定数として宣言され,この型の定数が許されるところならばどこに現れてもよい。
はっきり、intと書いてあるね
long longになる余地は全くない
716デフォルトの名無しさん (アウアウウー Sa21-8ou+)
2021/02/01(月) 11:57:56.06ID:vkxM9MCda intとlong longが同一の可能性は残る
まぁ普通ではないが
素直にC++でenum classにするのがいいのでは
まぁ普通ではないが
素直にC++でenum classにするのがいいのでは
717デフォルトの名無しさん (エムゾネ FF0a-qCTK)
2021/02/01(月) 14:28:14.54ID:fos4FOVOF enum と enum class って紛らわしいよね
718デフォルトの名無しさん (ワッチョイ ad45-unxX)
2021/02/01(月) 17:41:32.38ID:v6ebtUL10 enum classは関係ない
enum-baseだ
enum-baseだ
719デフォルトの名無しさん (アウアウウー Sa21-8ou+)
2021/02/01(月) 19:37:32.66ID:vkxM9MCda720デフォルトの名無しさん (ワッチョイ 7d4f-RNyz)
2021/02/01(月) 21:43:21.53ID:9cKOvUYE0 >>715
なるほど、ありがとう。
なるほど、ありがとう。
721デフォルトの名無しさん (ワッチョイ 9e8c-bY9K)
2021/02/02(火) 06:19:12.09ID:wjKGtX300 enumはステート制御で重宝する。
722デフォルトの名無しさん (ワッチョイ 5dd2-merL)
2021/02/02(火) 15:29:55.49ID:gtWVIswm0 質問です。__lsan_disableが期待通りに動きません。
サイト見るとAllocations made between calls to __lsan_disable() and __lsan_enable() will
be treated as non-leaks. Disable/enable pairs may be nested.と書いてあったのでプログラム作りました。
しかし__lsan_enable〜__lsan_do_leak_checkもリークチェックされます。原因が分かりません。
#include </usr/lib/gcc/x86_64-linux-gnu/10/include/sanitizer/lsan_interface.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void* thFunc(void *arg) { __lsan_disable(); sleep(4); fprintf(stderr, "en start\n"); __lsan_enable();
fprintf(stderr, "en end\n"); sleep(4); __lsan_do_leak_check(); exit(-1);
}
int main() { int rc; pthread_t th; pthread_create(&th, 0, thFunc, 0);
for (int i = 0; i < 30000; i++) { sleep(1); int *p = malloc(1);
fprintf(stderr, "malloc\n"); } return 0;}
よろしくお願いいたします
サイト見るとAllocations made between calls to __lsan_disable() and __lsan_enable() will
be treated as non-leaks. Disable/enable pairs may be nested.と書いてあったのでプログラム作りました。
しかし__lsan_enable〜__lsan_do_leak_checkもリークチェックされます。原因が分かりません。
#include </usr/lib/gcc/x86_64-linux-gnu/10/include/sanitizer/lsan_interface.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void* thFunc(void *arg) { __lsan_disable(); sleep(4); fprintf(stderr, "en start\n"); __lsan_enable();
fprintf(stderr, "en end\n"); sleep(4); __lsan_do_leak_check(); exit(-1);
}
int main() { int rc; pthread_t th; pthread_create(&th, 0, thFunc, 0);
for (int i = 0; i < 30000; i++) { sleep(1); int *p = malloc(1);
fprintf(stderr, "malloc\n"); } return 0;}
よろしくお願いいたします
723デフォルトの名無しさん (ワッチョイ ea01-s+/V)
2021/02/03(水) 08:08:40.40ID:3ZiqWZ4T0 >>712
処理系依存
処理系依存
724デフォルトの名無しさん (ワッチョイ a902-rtUD)
2021/02/04(木) 11:24:59.43ID:P1e/f4pz0 テキストファイルを読み込む場合、主にfgetsやfgetcでやる方法があると思うのですが調べてみるとmmapを使う方法もあるようなのですがどれを使うのが良いんですかね?
やりたいのはhtmlソースの書かれたテキストファイルの簡単な解析です
もしくは全く別に有名なライブラリみたいなのがあるんでしょうか?
やりたいのはhtmlソースの書かれたテキストファイルの簡単な解析です
もしくは全く別に有名なライブラリみたいなのがあるんでしょうか?
725はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e3e-unxX)
2021/02/04(木) 12:15:35.04ID:ttCVH4wp0 >>724
大きなファイルに細かなランダムアクセスが発生するときは
シークを繰り返すよりも mmap を活用した方が有利になることもあると思うけど、
常識的に考えればひとつの html はせいぜいが数メガ程度だろうし、
凝った管理をしなくても全部メモリに乗るでしょ。
大きなファイルに細かなランダムアクセスが発生するときは
シークを繰り返すよりも mmap を活用した方が有利になることもあると思うけど、
常識的に考えればひとつの html はせいぜいが数メガ程度だろうし、
凝った管理をしなくても全部メモリに乗るでしょ。
726デフォルトの名無しさん (ワッチョイ a902-rtUD)
2021/02/04(木) 13:31:56.12ID:P1e/f4pz0727はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e3e-unxX)
2021/02/04(木) 13:43:25.23ID:ttCVH4wp0728デフォルトの名無しさん (スップ Sdea-k294)
2021/02/04(木) 14:20:09.93ID:jgksMTX2d C言語スレで
せいぜい数メガと言っちゃう感覚
せいぜい数メガと言っちゃう感覚
729デフォルトの名無しさん (ワッチョイ 6aa5-eHoJ)
2021/02/04(木) 14:24:26.67ID:xGlwnT6u0 もう21世紀だからな
ここから先は1GBのテキストファイルが普通になる
ここから先は1GBのテキストファイルが普通になる
730デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/05(金) 07:55:44.29ID:I+zADhcc0 >>728
テキストファイルを読めてhtmlをパースするような機器で今どき数メガも載ってないケースってかなり珍しいだろ
テキストファイルを読めてhtmlをパースするような機器で今どき数メガも載ってないケースってかなり珍しいだろ
731デフォルトの名無しさん (ワッチョイ 5752-IB1A)
2021/02/05(金) 08:01:49.33ID:XbPEadHi0 せいぜい数メガと言えるようなリッチな環境で
C言語でアプリを書く方が珍しいだろ
C言語でアプリを書く方が珍しいだろ
732デフォルトの名無しさん (ワッチョイ 9f52-xUEw)
2021/02/05(金) 08:20:44.95ID:JqQJ/dMo0733デフォルトの名無しさん (ワッチョイ 5752-IB1A)
2021/02/05(金) 08:32:27.83ID:XbPEadHi0734デフォルトの名無しさん (ワッチョイ 17d2-JWMU)
2021/02/05(金) 08:42:07.98ID:oeXhrntJ0 「決めつけ」はバグとセキュリティホールの元。
735デフォルトの名無しさん (スプッッ Sdcb-aPA7)
2021/02/05(金) 09:02:30.99ID:AjJLCZmld スパコンのOSはCで書かれている
736デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/05(金) 09:20:14.53ID:I+zADhcc0737デフォルトの名無しさん (スップ Sd3f-IB1A)
2021/02/05(金) 12:39:42.10ID:1XmQmKI8d738デフォルトの名無しさん (ドコグロ MMdf-pSMo)
2021/02/05(金) 12:52:09.08ID:AV0Gp17OM >>737
珍しくないと言うなら実例をあげればいいだけ
珍しくないと言うなら実例をあげればいいだけ
739デフォルトの名無しさん (ワッチョイ 9fad-MLSE)
2021/02/06(土) 10:12:48.76ID:DFt8vUVO0 mmapってUNIX系OSだけでは?他にもあるかも知れないが互換ライブラリ経由でそのOS固有の同機能のやつ呼んでたりしない?(それで良いなら良いんだが)
740デフォルトの名無しさん (アウウィフ FF9b-6HDI)
2021/02/06(土) 10:51:00.80ID:PohEB++tF 対象をhtmlに限定したのが敗因
741デフォルトの名無しさん (ガラプー KK4f-o9Gs)
2021/02/06(土) 11:26:44.70ID:EjDQT0l8K742デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/06(土) 11:45:50.67ID:zn5WrP4C0 >>739
何が問題なのかよくわからんが?
何が問題なのかよくわからんが?
743デフォルトの名無しさん (ワッチョイ 6f8c-w83u)
2021/02/22(月) 07:04:45.29ID:Xbe4DE+80 どうやったらループを小さくしたり無くしたり出来るのか教えてほしい。
744デフォルトの名無しさん (ワントンキン MM9f-H4LT)
2021/02/22(月) 08:02:42.93ID:NYs90WT8M べた書き?
printf("hello flat!\n");
printf("hello flat!\n");
printf("hello flat!\n");
printf("hello flat!\n");
printf("hello flat!\n");
printf("hello flat!\n");
745デフォルトの名無しさん (ワッチョイ b325-Hwf9)
2021/02/22(月) 17:21:30.68ID:iIDQLaUs0 標準ライブラリにある処理はなるべく標準ライブラリのを使うとか
ループをまとめて関数に出すとかでいいんじゃないの?
根本的な解決にはならないかもだけど複雑度は下がる
あとはアルゴリズムの改善しかないんやない
ループをまとめて関数に出すとかでいいんじゃないの?
根本的な解決にはならないかもだけど複雑度は下がる
あとはアルゴリズムの改善しかないんやない
746デフォルトの名無しさん (スフッ Sd1f-4oy0)
2021/02/23(火) 02:48:11.51ID:VIkkm8/qd747デフォルトの名無しさん (スフッ Sd1f-4oy0)
2021/02/23(火) 03:04:42.97ID:VIkkm8/qd >>743
ループ変数をi, j, kとすれば、int ijk(範囲はi*j*k)とまとめればネストレベル3→1にできるよ
i = ijk/j/k
j = ijk%(j*k)/k
k = ijk%kね
パフォーマンスの利点もある
mo量子化学計算はナイーブには最低4段のforが要求されるんで、かなり重宝
なんで4段をcollapseしたいけど、他人が初見で解釈するのはちょっと無理強いなので控えてる
ループ変数をi, j, kとすれば、int ijk(範囲はi*j*k)とまとめればネストレベル3→1にできるよ
i = ijk/j/k
j = ijk%(j*k)/k
k = ijk%kね
パフォーマンスの利点もある
mo量子化学計算はナイーブには最低4段のforが要求されるんで、かなり重宝
なんで4段をcollapseしたいけど、他人が初見で解釈するのはちょっと無理強いなので控えてる
748デフォルトの名無しさん (スフッ Sd1f-4oy0)
2021/02/23(火) 03:15:27.68ID:VIkkm8/qd いや今書いたのも改めて並べるとmodに慣れていと1分くらい考えるか…
二段は簡潔なのでイディオムとして使って良いと思う
i*jを走るループ変数ijに対し、i==ij/j, j==ij%j
ネストは半分になるし可読性もよいので、多分ベストプラクティス
ネストしたループを全てワンライナーで書けるFortranが羨ましい
二段は簡潔なのでイディオムとして使って良いと思う
i*jを走るループ変数ijに対し、i==ij/j, j==ij%j
ネストは半分になるし可読性もよいので、多分ベストプラクティス
ネストしたループを全てワンライナーで書けるFortranが羨ましい
749デフォルトの名無しさん (ワッチョイ 93da-W5tZ)
2021/02/23(火) 03:42:44.91ID:1ia+Vnu00 divもmodもクソ遅いと思うんですがそれは
750デフォルトの名無しさん (スフッ Sd1f-4oy0)
2021/02/23(火) 04:31:33.75ID:VIkkm8/qd751デフォルトの名無しさん (スフッ Sd1f-4oy0)
2021/02/23(火) 04:35:35.49ID:VIkkm8/qd だからといってわざわざ速い最適化divmod拾ってくるまでの価値も無いし、つまらんハックか
猛省
猛省
752デフォルトの名無しさん (ガラプー KKa7-b/Iq)
2021/02/23(火) 08:24:27.89ID:NtDnGIIYK まあ定数の割り算は掛け算で実装するよな
753751 (スフッ Sd1f-4oy0)
2021/02/23(火) 12:00:01.73ID:EYNng8zFd >>752
今アセンブリ見てみたら2147...647=2^32-1を引いて頑張ってる様子が見えた!gcc -O3/win
色々パラメータ弄って様子見ようとしたら普通に割り出したので混乱したが、実行時に与えるとフォールバックするよう
コンパイル時に定数で与えたらそうするっぽい
勉強になった
今アセンブリ見てみたら2147...647=2^32-1を引いて頑張ってる様子が見えた!gcc -O3/win
色々パラメータ弄って様子見ようとしたら普通に割り出したので混乱したが、実行時に与えるとフォールバックするよう
コンパイル時に定数で与えたらそうするっぽい
勉強になった
754デフォルトの名無しさん (ワッチョイ 93da-W5tZ)
2021/02/23(火) 12:21:23.56ID:1ia+Vnu00 目安でしかないがx86-64ではmulと比べてdivやmodはレイテンシ2倍どころではない場合が多い
https://www.agner.org/optimize/instruction_tables.pdf
パフォーマンスが重要な場合は除数を定数にするか2の冪にしてシフト/論理積にする
https://www.agner.org/optimize/instruction_tables.pdf
パフォーマンスが重要な場合は除数を定数にするか2の冪にしてシフト/論理積にする
755デフォルトの名無しさん (ワッチョイ 6f8c-Dcdc)
2021/02/24(水) 15:46:51.63ID:/D2VYVJH0 ソフトウェア割り込みプログラムは書けるのか
756デフォルトの名無しさん (ワッチョイ a301-GD1z)
2021/02/25(木) 06:12:34.32ID:R7WVwVFS0 >>755
インラインアセンブラ必須かな
インラインアセンブラ必須かな
757デフォルトの名無しさん (ワッチョイ ff01-aOo0)
2021/02/25(木) 07:07:20.11ID:bxBNuN1v0 環境次第
組み込み系の処理系だと割り込みハンドラーを書けたり割り込みフラグの制御ができたりするのはよくある
組み込み系の処理系だと割り込みハンドラーを書けたり割り込みフラグの制御ができたりするのはよくある
758デフォルトの名無しさん (ワッチョイ a301-GD1z)
2021/02/25(木) 09:55:57.73ID:R7WVwVFS0 >>757
それはC言語仕様には無い特殊な命令。SHのCコンパイラとか。
それはC言語仕様には無い特殊な命令。SHのCコンパイラとか。
759デフォルトの名無しさん (ワッチョイ a32f-2wuD)
2021/02/25(木) 19:11:28.17ID:k63j55rm0 VCで作った実行ファイルを
cgiファイルに変える方法て
わからない?
どうしてもc.cgi.exeになって
しまう
cgiファイルに変える方法て
わからない?
どうしてもc.cgi.exeになって
しまう
760デフォルトの名無しさん (ドコグロ MMdf-jbj7)
2021/02/25(木) 19:17:09.21ID:JLHf2OjdM761デフォルトの名無しさん (ワッチョイ a301-VKJl)
2021/02/25(木) 20:00:24.23ID:MOr3wCfr0 ファイル名変えておいとくだけなんとちゃうの?
762デフォルトの名無しさん (ワッチョイ 8363-W5tZ)
2021/02/25(木) 20:06:31.57ID:ZW7ncKwI0 Windows系サーバーだったら、
実行ファイルc.exeをc.cgiにリネームすれば動くはず
実行ファイルc.exeをc.cgiにリネームすれば動くはず
763デフォルトの名無しさん (ガラプー KKa7-b/Iq)
2021/02/25(木) 20:47:45.34ID:yh+1kBamK764デフォルトの名無しさん (ワッチョイ cb01-jB1a)
2021/02/26(金) 03:45:13.89ID:5d4w5oMJ0 >>763
スレチ
スレチ
765デフォルトの名無しさん (ガラプー KKbb-sT37)
2021/02/26(金) 06:57:40.05ID:eCf8RuSVK //何だよ俺のせいかいw
//じゃせいぜいCだけででがんばりや
#include <stdio.h>
int main() { return rename("c.cgi.exe", "c.cgi"); }
//じゃせいぜいCだけででがんばりや
#include <stdio.h>
int main() { return rename("c.cgi.exe", "c.cgi"); }
766デフォルトの名無しさん (スップ Sd8a-m+7K)
2021/02/26(金) 08:02:43.73ID:M2eccXrmd renameってstdio.hだっけ?
767デフォルトの名無しさん (ワッチョイ 0705-DFeu)
2021/02/26(金) 09:51:30.74ID:31AFaQsJ0 >>766
stdioじゃよ
stdioじゃよ
768デフォルトの名無しさん (スップ Sd8a-m+7K)
2021/02/26(金) 12:12:32.73ID:M2eccXrmd げ、本当だ
769デフォルトの名無しさん (アウアウウー Sac5-a/3A)
2021/03/15(月) 16:52:25.12ID:XyNDIUjTa すみません、質問させてください
exturn FUNC(void, define1) 関数名(void)
ってなってるのが、関数のプロトタイプ宣言であることは理解できているのですが
FUNC()の意味が分からないです
define1にはキーワード定義だけされたdefineが入ってます
exturn FUNC(void, define1) 関数名(void)
ってなってるのが、関数のプロトタイプ宣言であることは理解できているのですが
FUNC()の意味が分からないです
define1にはキーワード定義だけされたdefineが入ってます
770デフォルトの名無しさん (ブーイモ MM76-9YAs)
2021/03/15(月) 17:06:32.77ID:Db4OPSpGM >>769
それはC言語の文法じゃなくて、あなたのプロジェクト固有のマクロなので、同僚に聞くかgrepしてください
それはC言語の文法じゃなくて、あなたのプロジェクト固有のマクロなので、同僚に聞くかgrepしてください
771デフォルトの名無しさん (アウアウウー Sac5-a/3A)
2021/03/15(月) 17:07:39.42ID:XyNDIUjTa772デフォルトの名無しさん (ワッチョイ 8569-9blg)
2021/03/16(火) 08:22:50.63ID:7emEuadh0 Cの文法内に収まる FUNC() って
一般C
#define FUNC(ret,opt) ret
Microsoft系のやつ 呼び出し規約まで対応
#define FUNC(ret,opt) ret opt
ぐらいしか想像つかんな それを吸収しようとしてるのかしら?
一般C
#define FUNC(ret,opt) ret
Microsoft系のやつ 呼び出し規約まで対応
#define FUNC(ret,opt) ret opt
ぐらいしか想像つかんな それを吸収しようとしてるのかしら?
773デフォルトの名無しさん (ブーイモ MMcb-T0kI)
2021/03/19(金) 19:09:51.97ID:mKZFPhjYM ret opt の記述順を変えなきゃなんないコンパイラ併用でもしてなきゃ
必然性無いよな
必然性無いよな
774デフォルトの名無しさん (ワッチョイ 9763-On6t)
2021/04/25(日) 18:24:42.50ID:1rqnmNJD0 VS2019を使用してます。
c言語でハッシュテーブルを使いたい場合、
定番のライブラリってありますか?
自作は考えてません。
c言語でハッシュテーブルを使いたい場合、
定番のライブラリってありますか?
自作は考えてません。
775デフォルトの名無しさん (ワッチョイ 8e63-On6t)
2021/04/25(日) 18:43:09.76ID:f5CNtQYv0 C++ hashクラスを使う
C 自作する
スキな道を歩もう
C 自作する
スキな道を歩もう
776デフォルトの名無しさん (ブーイモ MMed-t/cM)
2021/04/25(日) 19:49:36.36ID:bD1toMMoM Cにはない
多少は作るに該当するが、GPL汚染気にしないならhlist(list.h)かいっそのことrbtree引っ張ってくるのが楽
hlistは覚えてないがfreeBSDにもlist_headはあったと思うから雑に書いて作れる
多少は作るに該当するが、GPL汚染気にしないならhlist(list.h)かいっそのことrbtree引っ張ってくるのが楽
hlistは覚えてないがfreeBSDにもlist_headはあったと思うから雑に書いて作れる
777デフォルトの名無しさん (ワッチョイ 9763-On6t)
2021/04/25(日) 20:00:40.49ID:1rqnmNJD0 >>775-776
ありがとうございます。
ありがとうございます。
778デフォルトの名無しさん (ワッチョイ 9e90-On6t)
2021/04/26(月) 17:39:11.35ID:BhPjOTnw0 境界調整について教えて下さい
typedef struct stru{
int inta;
char ch;
double db;
} Str;
という構造体を作って、
Str st = {10 , 'n' , 5.20};
printf("構造体全体の大きさは %dバイト アドレスは %p \n", sizeof(st) , &st);
printf("inta の大きさ %dバイト アドレスは %p 値は %d \n", sizeof(st.inta), &st.inta , st.inta);
printf("ch の大きさ %dバイト アドレスは %p 値は %c \n", sizeof(st.ch) , &st.ch , st.ch);
printf("db の大きさ %dバイト アドレスは %p 値は %lf \n", sizeof(st.db) , &st.db , st.db);
としたところ、
構造体全体の大きさは 16バイト アドレスは 0019FF2C
inta の大きさ 4バイト アドレスは 0019FF2C 値は 10
ch の大きさ 1バイト アドレスは 0019FF30 値は n
db の大きさ 8バイト アドレスは 0019FF34 値は 5.200000
という結果が得られたんですけど、この中で
0019FF30から1バイト分には'n'という値が入っていて、
0019FF34から8バイト分には5.200000という値が入っているわけですよね?
では0019FF31から0019FF34までは何があるの?
typedef struct stru{
int inta;
char ch;
double db;
} Str;
という構造体を作って、
Str st = {10 , 'n' , 5.20};
printf("構造体全体の大きさは %dバイト アドレスは %p \n", sizeof(st) , &st);
printf("inta の大きさ %dバイト アドレスは %p 値は %d \n", sizeof(st.inta), &st.inta , st.inta);
printf("ch の大きさ %dバイト アドレスは %p 値は %c \n", sizeof(st.ch) , &st.ch , st.ch);
printf("db の大きさ %dバイト アドレスは %p 値は %lf \n", sizeof(st.db) , &st.db , st.db);
としたところ、
構造体全体の大きさは 16バイト アドレスは 0019FF2C
inta の大きさ 4バイト アドレスは 0019FF2C 値は 10
ch の大きさ 1バイト アドレスは 0019FF30 値は n
db の大きさ 8バイト アドレスは 0019FF34 値は 5.200000
という結果が得られたんですけど、この中で
0019FF30から1バイト分には'n'という値が入っていて、
0019FF34から8バイト分には5.200000という値が入っているわけですよね?
では0019FF31から0019FF34までは何があるの?
779デフォルトの名無しさん (スッップ Sd70-cgNm)
2021/04/26(月) 17:55:49.95ID:NyQKOVd9d 何もない
780デフォルトの名無しさん (アウアウウー Sa30-QG0P)
2021/04/26(月) 18:15:58.84ID:IaPVNFDHa ごみ
781デフォルトの名無しさん (テテンテンテン MM34-TKdI)
2021/04/26(月) 18:21:46.90ID:uqOlgHvIM782デフォルトの名無しさん (ブーイモ MMfd-t/cM)
2021/04/26(月) 18:27:06.04ID:4kXIzh+CM783778 (ワッチョイ 9e90-On6t)
2021/04/26(月) 18:28:20.87ID:BhPjOTnw0 その領域はとにかく使えないって事なんすかね。
784デフォルトの名無しさん (スッップ Sd70-cgNm)
2021/04/26(月) 18:31:26.64ID:NyQKOVd9d そうなんです
785デフォルトの名無しさん (ワッチョイ 4d61-1Gce)
2021/04/26(月) 18:32:08.60ID:TR73VE240 使いたいならchの後にcharを3つ作ればいいじゃない
786デフォルトの名無しさん (アウアウウー Sa83-t/cM)
2021/04/26(月) 20:06:39.04ID:fVzcGJCCa >>778
__attribute__ ((packed))
__attribute__ ((packed))
787デフォルトの名無しさん (ワッチョイ 1e01-3cD6)
2021/04/26(月) 20:43:03.58ID:+l9LtKe60788デフォルトの名無しさん (ワッチョイ 9e90-On6t)
2021/04/26(月) 22:14:43.60ID:BhPjOTnw0790デフォルトの名無しさん (ワッチョイ 4dda-vrNx)
2021/04/26(月) 22:20:18.66ID:fe3Q/YJ30 訓練でC言語を習っています。
就職先としてはJAVAの客先常駐になると思うのですが、
C言語も習う以上はある程度使えるようになりたいと思っています。
ポインタが難しいとよく見るのですが、勉強になるウェブサイトが
ありましたら教えてください。
もしくはポインタだけの参考書があるようなのですが、
それを買った方が良いですかね?
就職先としてはJAVAの客先常駐になると思うのですが、
C言語も習う以上はある程度使えるようになりたいと思っています。
ポインタが難しいとよく見るのですが、勉強になるウェブサイトが
ありましたら教えてください。
もしくはポインタだけの参考書があるようなのですが、
それを買った方が良いですかね?
791デフォルトの名無しさん (ラクッペペ MM34-/WW/)
2021/04/27(火) 06:03:07.86ID:RrDgDJ6XM ゆとり?
技術的な内容ならまだしも学習方法や心構えまで他人に丸投げするのは職業人の姿勢として如何なものか
技術的な内容ならまだしも学習方法や心構えまで他人に丸投げするのは職業人の姿勢として如何なものか
792デフォルトの名無しさん (ワッチョイ 66e6-cgNm)
2021/04/28(水) 18:46:29.71ID:7AKt1vSf0 そういう時代
熱くなるな
PCを持ってないような人がソフト開発者として面接に来るような時代
熱くなるな
PCを持ってないような人がソフト開発者として面接に来るような時代
793デフォルトの名無しさん (アウアウウー Sa83-jiG2)
2021/04/28(水) 21:52:06.89ID:PZc7df0ca Cで Windows、Linux、macOS のすべてで動作するコンソールアプリを作りました
標準のライブラリのみを使用していたつもりでも、知らずにGNU拡張を使用していたり、若干の移植の障害はありましたが、それほどではありませんでした
同じようなことを C++ でやろうとした場合、Cより難しくなりそうでしょうか、そうでもないでしょうか
C++ でやるからには STL は使いたいです
標準のライブラリのみを使用していたつもりでも、知らずにGNU拡張を使用していたり、若干の移植の障害はありましたが、それほどではありませんでした
同じようなことを C++ でやろうとした場合、Cより難しくなりそうでしょうか、そうでもないでしょうか
C++ でやるからには STL は使いたいです
794デフォルトの名無しさん (ワッチョイ 66e6-cgNm)
2021/04/28(水) 22:44:05.13ID:7AKt1vSf0 同じようなもんじゃない?
795デフォルトの名無しさん (ワッチョイ 8e63-On6t)
2021/04/28(水) 23:21:11.19ID:PlZRAN+K0 言語仕様としてのGNU拡張は使ってもライセンスに触れないよな?
触れるのはライブラリ使用した場合じゃないか?
触れるのはライブラリ使用した場合じゃないか?
796デフォルトの名無しさん (ワッチョイ 1e01-3cD6)
2021/04/28(水) 23:35:23.05ID:4KD2riuz0 コンパイラ独自の拡張であってポータビリティに欠けるってだけで
それ自体がGNUライセンスに引っかかるわけではない
それ自体がGNUライセンスに引っかかるわけではない
797デフォルトの名無しさん (ブーイモ MM5e-t/cM)
2021/04/28(水) 23:56:50.52ID:sVhsMckNM798デフォルトの名無しさん (ワッチョイ 8e63-On6t)
2021/04/29(木) 00:15:24.35ID:T1kQSA270 意外と引っかかるのは、複雑な変数宣言を読み解くこと
799793 (アウアウウー Sa83-jiG2)
2021/04/29(木) 10:41:18.72ID:8DhczGXra ご意見ありがとうございました
やはり、掛かる手間は同じようなものですかね
やはり、掛かる手間は同じようなものですかね
800デフォルトの名無しさん (ワッチョイ 9f45-3cD6)
2021/04/29(木) 11:08:27.39ID:1rAkIDNr0 基本文法を憶えたら何かまとまったアプリを作んないと
ただ言語そのものを習ってそれっきりだと忘れるだけだぞ
ただ言語そのものを習ってそれっきりだと忘れるだけだぞ
801デフォルトの名無しさん (ワッチョイ d469-sVZV)
2021/04/29(木) 13:50:03.41ID:56IZFSRD0 所詮は道具だし、使わないと忘れる
>>793
C++11 以降は、例えばスレッド制御・ファイルシステムをライブラリに取り込む、など積極的に環境依存が少なくなるように動いている(ように私には見える)ので、多分移植はもっともっと易しくなる、と思います、失礼、易しくなる気がしないでもありません‥‥
C++11 以降は、例えばスレッド制御・ファイルシステムをライブラリに取り込む、など積極的に環境依存が少なくなるように動いている(ように私には見える)ので、多分移植はもっともっと易しくなる、と思います、失礼、易しくなる気がしないでもありません‥‥
>>790
「新・標準プログラマーズライブラリ C言語 ポインタ完全制覇」前橋 和弥著
https://www.%61%6d%61%7a%6f%6e.co.jp/dp/B077ZTQY62/
ポインタを完全制覇してくれる本だそうです、私も興味があったのでポチりました‥‥
「新・標準プログラマーズライブラリ C言語 ポインタ完全制覇」前橋 和弥著
https://www.%61%6d%61%7a%6f%6e.co.jp/dp/B077ZTQY62/
ポインタを完全制覇してくれる本だそうです、私も興味があったのでポチりました‥‥
804793 (アウアウウー Sa83-jiG2)
2021/04/29(木) 16:48:12.19ID:loQVmfSpa805デフォルトの名無しさん (ワッチョイ c7da-g980)
2021/05/02(日) 15:45:22.42ID:LfIZA/yy0 cについてほとんど知らないけど、組み込みがメインな感じですか?
806デフォルトの名無しさん (ワッチョイ 8702-ZmhP)
2021/05/02(日) 15:56:09.60ID:/1wJlD5g0 システムプログラミングの方が多いんでない?元々それ用だし
OSのインターフェース提供はどこもC
OSのインターフェース提供はどこもC
807はちみつ餃子 ◆8X2XSCHEME (ワッチョイ df3e-OedE)
2021/05/02(日) 16:01:37.32ID:VAfyzxcR0 パソコンでも低レイヤ (カーネルとかデバイスドライバとか) は C で書くことも珍しくはないし、
アプリケーションのめっちゃ速度が重要なとことかは C で書いたほうがチューニングしやすい。
言語処理系なんかはだいたい C か C++ で実装されるよ。 (Python とか Ruby とか Perl とか。)
ハードウェアの都合に合わせたチューニングが必要なところはパソコンにもまだまだ有って、
割合で言えばそれほど多くは無いけど、
絶対数で言えば組み込みで C が使われるよりはパソコンで C が使われるほうが多いと思う。
(数値的な根拠があるわけじゃなくて私の印象だけど。)
アプリケーションのめっちゃ速度が重要なとことかは C で書いたほうがチューニングしやすい。
言語処理系なんかはだいたい C か C++ で実装されるよ。 (Python とか Ruby とか Perl とか。)
ハードウェアの都合に合わせたチューニングが必要なところはパソコンにもまだまだ有って、
割合で言えばそれほど多くは無いけど、
絶対数で言えば組み込みで C が使われるよりはパソコンで C が使われるほうが多いと思う。
(数値的な根拠があるわけじゃなくて私の印象だけど。)
808デフォルトの名無しさん (ワッチョイ e7da-Ew5U)
2021/05/02(日) 16:46:12.37ID:3j0DSsAI0 これからはカーネルドライバもRustで書こうぜ
809デフォルトの名無しさん (ワッチョイ 7fad-PtfA)
2021/05/02(日) 18:40:43.65ID:r2Ed4Ypi0 >>808
だからメモリ割り当てでABENDするような言語系を
カーネルで使えるわけないでしょw
2021年4月15日 パニックお断り―Linus,"Rust for Linux"の盛り上がりに釘を刺す:Linux Daily Topics|gihyo.jp … 技術評論社
https://gihyo.jp/admin/clip/01/linux_dt/202104/15
だからメモリ割り当てでABENDするような言語系を
カーネルで使えるわけないでしょw
2021年4月15日 パニックお断り―Linus,"Rust for Linux"の盛り上がりに釘を刺す:Linux Daily Topics|gihyo.jp … 技術評論社
https://gihyo.jp/admin/clip/01/linux_dt/202104/15
810デフォルトの名無しさん (ワッチョイ e7da-Ew5U)
2021/05/02(日) 20:01:40.03ID:3j0DSsAI0811デフォルトの名無しさん (ワッチョイ 7fad-6mS1)
2021/05/02(日) 22:32:14.89ID:r2Ed4Ypi0812デフォルトの名無しさん (ラクッペペ MM8f-EcTW)
2021/05/03(月) 12:38:32.98ID:2qlH4pSsM >>811
まさにそうする話がもまいの提示した記事に書いてあるんよ
まさにそうする話がもまいの提示した記事に書いてあるんよ
813デフォルトの名無しさん (ワッチョイ bbda-DjaX)
2021/05/07(金) 21:44:15.09ID:vGOhdVnf0 >>811
https://www.tag1consulting.com/blog/interview-linus-torvalds-linux-and-git
「Rustなー、まあそのうちわかるんじゃねーの?
コアはねーだろうけどドライバならいんじゃね?
C言語の置き換えっつーよりCの補佐的な?」
って言ってるし、これ読む限り Linusもだいぶ前向きじゃん
https://www.tag1consulting.com/blog/interview-linus-torvalds-linux-and-git
「Rustなー、まあそのうちわかるんじゃねーの?
コアはねーだろうけどドライバならいんじゃね?
C言語の置き換えっつーよりCの補佐的な?」
って言ってるし、これ読む限り Linusもだいぶ前向きじゃん
814デフォルトの名無しさん (ワッチョイ be46-Rb4A)
2021/05/08(土) 20:10:13.24ID:jbZm9MmR0 github.com/bear24rw/alsa-utils/blob/master/aplay/aplay.c :135行
static off64_t pbrec_count = LLONG_MAX, fdcount;
が
static off64_t pbrec_count = LLONG_MAX;
と書かれていない理由を400字以内で述べよ。
ちなみに、我が家では LLONG_MAX値 == fdcount値 です。
static off64_t pbrec_count = LLONG_MAX, fdcount;
が
static off64_t pbrec_count = LLONG_MAX;
と書かれていない理由を400字以内で述べよ。
ちなみに、我が家では LLONG_MAX値 == fdcount値 です。
815デフォルトの名無しさん (ワッチョイ 6aad-jjtP)
2021/05/08(土) 22:16:59.18ID:4nIz2VjA0 しらねえ。
↑
5文字目
↑
5文字目
816デフォルトの名無しさん (アウウィフ FF1f-dxvU)
2021/05/09(日) 13:32:52.94ID:WMytKT+1F >static off64_t pbrec_count = LLONG_MAX, fdcount;
>が
>static off64_t pbrec_count = LLONG_MAX;
>と書かれていない理由を400字以内で述べよ。
知らんがな
>static off64_t pbrec_count = LLONG_MAX, fdcount;
>が
>static off64_t pbrec_count = fdcount;
>と書かれていない理由を400字以内で述べよ。
書いた香具師に聴け
>が
>static off64_t pbrec_count = LLONG_MAX;
>と書かれていない理由を400字以内で述べよ。
知らんがな
>static off64_t pbrec_count = LLONG_MAX, fdcount;
>が
>static off64_t pbrec_count = fdcount;
>と書かれていない理由を400字以内で述べよ。
書いた香具師に聴け
817デフォルトの名無しさん (ワッチョイ 5a81-2aW8)
2021/05/25(火) 13:13:50.22ID:0e19GInL0 int (**c)[];
と
int *(*e[]);
の意味がわからずに困っています。
ちなみに二つとも意味がわかりません。これらは同じものなんでしょうか?
と
int *(*e[]);
の意味がわからずに困っています。
ちなみに二つとも意味がわかりません。これらは同じものなんでしょうか?
818デフォルトの名無しさん (ワッチョイ f345-lMMI)
2021/05/25(火) 13:28:28.93ID:d4PPfL2v0 cはint配列へのポインタへのポインタ
eはintポインタへのポインタの配列で、丸括弧は不要
cとeは同じではない
eはintポインタへのポインタの配列で、丸括弧は不要
cとeは同じではない
819デフォルトの名無しさん (ワッチョイ df69-I6Yg)
2021/05/25(火) 13:33:48.93ID:tg9vUr3N0 ややこしそうなのは途中に strust や typedef 使って先送りにする
820デフォルトの名無しさん (ワッチョイ df69-I6Yg)
2021/05/25(火) 13:37:45.63ID:tg9vUr3N0 struct
821デフォルトの名無しさん (ワッチョイ dfd2-lZiV)
2021/05/25(火) 13:44:44.11ID:7uNVaR2o0 ポインタ変数定義に()が付くと理解が困難になる・・・。
822デフォルトの名無しさん (ワッチョイ 4e63-cE2x)
2021/05/25(火) 13:50:25.07ID:mW0d20UP0823デフォルトの名無しさん (ワッチョイ 5a81-2aW8)
2021/05/25(火) 13:57:49.19ID:0e19GInL0824デフォルトの名無しさん (ワッチョイ 8abd-+D+D)
2021/05/25(火) 19:01:00.19ID:5zVTpare0 小生使う機会ないんでそんな複雑な記述の経験ないし機会あっても出来る自信ないのだけれど、アセンブラで書くと縦長になるソレを横に圧縮したC言語って、ホント効率落とさず物臭する為の記述だよね。
(アセンブラよりは)安全だし。
(アセンブラよりは)安全だし。
825デフォルトの名無しさん (ワッチョイ f345-lMMI)
2021/05/25(火) 21:20:58.20ID:d4PPfL2v0 ケントンプソンの面倒くさがりをデニスリッチーが後継した高級アセンブラ
826デフォルトの名無しさん (ワッチョイ 765f-baYp)
2021/05/25(火) 21:26:46.44ID:mNrV1IEb0 cdecl で説明してもらえば?
827デフォルトの名無しさん (ワッチョイ 765f-baYp)
2021/05/26(水) 09:42:42.04ID:mfYAtZMN0 pkg install cdecl すると,c++decl -> cdecl しかsym-linkしてないので
手動でexplain -> cdecl cast -> cdecl declare -> cdecl もいれておいた.
で,
explain 'int (**c)[]'
declare c as pointer to pointer to array of int
explain 'int *(*e[]);'
declare e as array of pointer to pointer to int
と説明された.
手動でexplain -> cdecl cast -> cdecl declare -> cdecl もいれておいた.
で,
explain 'int (**c)[]'
declare c as pointer to pointer to array of int
explain 'int *(*e[]);'
declare e as array of pointer to pointer to int
と説明された.
828デフォルトの名無しさん (エムゾネ FFba-4Cki)
2021/05/26(水) 11:19:17.43ID:2/BE6bBSF829デフォルトの名無しさん (エムゾネ FFba-4Cki)
2021/05/26(水) 11:21:32.69ID:2/BE6bBSF830デフォルトの名無しさん (ワッチョイ f345-lMMI)
2021/05/26(水) 12:07:18.36ID:DNuuAFHS0 ++eがOKなわけねえだろw
831デフォルトの名無しさん (ワッチョイ f345-lMMI)
2021/05/27(木) 10:47:37.95ID:kQVwJQto0 ID:2/BE6bBSFは逃げたかw
まあ逃げたくもなるよな
あんな赤っ恥w
まあ逃げたくもなるよな
あんな赤っ恥w
832デフォルトの名無しさん (スフッ Sdba-a81G)
2021/05/27(木) 14:56:50.43ID:UXlES6Sbd typespecifer declarator-initializer;
と実質的に型を決める文法要素が二分されてるのがイケてないとは思う
=で示されるinitializerまたは代入式の右辺でアサインされる対象が左辺そのものでなく、declaratorの識別子部分なのも=の意味論(等しくする)に合ってないよなあ
まあ慣れるんだけど
と実質的に型を決める文法要素が二分されてるのがイケてないとは思う
=で示されるinitializerまたは代入式の右辺でアサインされる対象が左辺そのものでなく、declaratorの識別子部分なのも=の意味論(等しくする)に合ってないよなあ
まあ慣れるんだけど
833デフォルトの名無しさん (スフッ Sdba-a81G)
2021/05/27(木) 15:03:11.46ID:UXlES6Sbd 関数ポインタと配列とポインタが入り交じるようなときは、各部分毎にtypedefして、数行に分けて型を組み立てるのがよいと思う
834デフォルトの名無しさん (スフッ Sdba-a81G)
2021/05/27(木) 15:08:30.66ID:UXlES6Sbd c23では宣言(というか殆どの構文)に付けられるattribute([[attr]])が入るけど、これ改造して[[type]] identifier;の形で宣言するように(仕様上は)できるよね
c23以降の規格で取り入れられないかな?
c23以降の規格で取り入れられないかな?
835デフォルトの名無しさん (ワッチョイ e107-Qu4r)
2021/05/28(金) 01:02:59.83ID:7zb2zdx50 基本情報で分からないとこあるんで教えてください。。
Cに入るのがなんでキなんでしょうか
p→coursenameはポインタだから、出力する時は*p→coursenameにすべきでは無いでしょうか
https://i.imgur.com/8Lp9aMx.jpg
https://i.imgur.com/DgNEbGT.jpg
https://i.imgur.com/xvvs1oJ.jpg
https://i.imgur.com/3bG8iC8.jpg
https://i.imgur.com/qHhb9jj.jpg
Cに入るのがなんでキなんでしょうか
p→coursenameはポインタだから、出力する時は*p→coursenameにすべきでは無いでしょうか
https://i.imgur.com/8Lp9aMx.jpg
https://i.imgur.com/DgNEbGT.jpg
https://i.imgur.com/xvvs1oJ.jpg
https://i.imgur.com/3bG8iC8.jpg
https://i.imgur.com/qHhb9jj.jpg
836デフォルトの名無しさん (ワッチョイ b3bd-6JRX)
2021/05/28(金) 03:00:31.68ID:EK8Kl+z60837デフォルトの名無しさん (ワッチョイ 2bbb-3d87)
2021/05/28(金) 03:02:57.31ID:reEc78CW0 うーん、入門書はなんて書いてあるんだろ
Cで文字列を表現するときはchar型の配列もしくはchar型の配列を指し示すポインタを用いる。
だから出力するときも配列もしくはポインタを用いて、
printf("%s", str); //ここでstrはchar型配列かポインタ
みたいに記述する。
もしもここで*strと書いてしまうと、それは配列もしくはポインタが指し示す配列の先頭の1文字を示すことになり、それはもう'a'とか'b'とかいった値でしかないから、次の文字の所在がわからず文字列を取り出せない
Cで文字列を表現するときはchar型の配列もしくはchar型の配列を指し示すポインタを用いる。
だから出力するときも配列もしくはポインタを用いて、
printf("%s", str); //ここでstrはchar型配列かポインタ
みたいに記述する。
もしもここで*strと書いてしまうと、それは配列もしくはポインタが指し示す配列の先頭の1文字を示すことになり、それはもう'a'とか'b'とかいった値でしかないから、次の文字の所在がわからず文字列を取り出せない
838デフォルトの名無しさん (ワッチョイ 49da-EUNK)
2021/05/28(金) 06:03:30.13ID:2aHU1C7x0 現在訓練校でCを学んでいます。
基本情報って資格としての価値はどの程度なのでしょうか?
私なりに調べてみましたが、マストではなく、昇給・昇格のために必要なケースが多そうな
印象だったので、訓練中はプログラミングを中心に勉強して、就職後に資格に挑戦しようと思っています。
基本情報って資格としての価値はどの程度なのでしょうか?
私なりに調べてみましたが、マストではなく、昇給・昇格のために必要なケースが多そうな
印象だったので、訓練中はプログラミングを中心に勉強して、就職後に資格に挑戦しようと思っています。
839デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/28(金) 06:23:27.84ID:fuFcwWPl0 価値があるのはレベル4だけ
それ以外はレベル4を目指す者の励みとしての昇段のようなもの
それ以外はレベル4を目指す者の励みとしての昇段のようなもの
840デフォルトの名無しさん (ワッチョイ 938b-Qu4r)
2021/05/28(金) 08:14:27.25ID:keyTlfbM0841デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/28(金) 09:35:32.42ID:fuFcwWPl0 昔、特種持ってるけどひでえコードかくバカいたよ
842デフォルトの名無しさん (ワッチョイ 93a5-bhdz)
2021/05/28(金) 11:12:18.91ID:ymLe7hdU0843デフォルトの名無しさん (ワッチョイ 01d2-83tl)
2021/05/28(金) 11:53:19.85ID:0F7o22rA0 大学のC言語講義の最初のテストの時点で"1234"と'1234'の違いさえ理解してなかったよ。
翌年にはアセンブラでC言語から呼び出す関数書いてたけど。
翌年にはアセンブラでC言語から呼び出す関数書いてたけど。
844デフォルトの名無しさん (ワッチョイ 512c-IGeJ)
2021/05/28(金) 12:11:32.46ID:eNCMSwEe0 >>838
基本情報資格は、プロの登竜門・初級以上と認められる。
これを持っていないと、アマチュアの趣味扱いで、プログラミングが好きな人
例えば、YouTube で有名な、雑食系エンジニア・KENTA のサロンでも、
自社開発ウェブ系の未経験者の初級カリキュラムにも入っている
基本情報、Ruby on Rails, Linux, Docker Compose, VSCode, Node.js など。
Docker Composeまでが初級者コース
基本情報資格は、プロの登竜門・初級以上と認められる。
これを持っていないと、アマチュアの趣味扱いで、プログラミングが好きな人
例えば、YouTube で有名な、雑食系エンジニア・KENTA のサロンでも、
自社開発ウェブ系の未経験者の初級カリキュラムにも入っている
基本情報、Ruby on Rails, Linux, Docker Compose, VSCode, Node.js など。
Docker Composeまでが初級者コース
845デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/28(金) 13:21:37.52ID:fuFcwWPl0 アマチュアの趣味で、プログラミングが好きな人にもすげえのいるけどな
846844 (ワッチョイ 512c-IGeJ)
2021/05/28(金) 14:32:25.27ID:eNCMSwEe0 基本情報とか持っていない人は、
知識が偏っている・狭いとか、常識が無いこともある
資格の知識は、広く浅いから、基礎・常識を学ぶには良い
医者で言えば、身体全体は常識の範囲内で分かるけど、
手術できるのは、自分の専門分野に限るとか
爺の医者が言ってるけど、
若い医者には、常識のない香具師とかいるので怖いとかw
専門分野以外でも、それぐらい常識だろうみたいな
知識が偏っている・狭いとか、常識が無いこともある
資格の知識は、広く浅いから、基礎・常識を学ぶには良い
医者で言えば、身体全体は常識の範囲内で分かるけど、
手術できるのは、自分の専門分野に限るとか
爺の医者が言ってるけど、
若い医者には、常識のない香具師とかいるので怖いとかw
専門分野以外でも、それぐらい常識だろうみたいな
847844 (ワッチョイ 512c-IGeJ)
2021/05/28(金) 14:39:17.23ID:eNCMSwEe0 日本の雇用体系では解雇できないから、
どうしても、学歴・資格による事前審査型になってしまう
出来ない人を雇いたくない。
損害が大きいから
一方、米国では、全員がフリーランスと同じ扱いだから、
お試しで雇って、出来なければすぐに解雇できる
実力主義。
学歴・資格も関係ない
出来る香具師が来るまで、解雇し続ける。
事後の結果重視型
どうしても、学歴・資格による事前審査型になってしまう
出来ない人を雇いたくない。
損害が大きいから
一方、米国では、全員がフリーランスと同じ扱いだから、
お試しで雇って、出来なければすぐに解雇できる
実力主義。
学歴・資格も関係ない
出来る香具師が来るまで、解雇し続ける。
事後の結果重視型
848デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/28(金) 14:47:30.76ID:fuFcwWPl0 専門外の手術ができる医者なんかいねえぞ
849デフォルトの名無しさん (ワッチョイ 0905-4Wjq)
2021/05/28(金) 14:57:42.29ID:R3ooSWDP0 >>848
専門外とはいっても傷を縫うくらいは割と誰でもできるよ
専門外とはいっても傷を縫うくらいは割と誰でもできるよ
850デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/28(金) 15:41:13.46ID:fuFcwWPl0 重箱の隅を突くような例を持ち出して何が言いたいんだ?
情報処理技術者試験の何を例えようとしてるんだよ
情報処理技術者試験の何を例えようとしてるんだよ
851デフォルトの名無しさん (エムゾネ FFb3-D/jZ)
2021/05/28(金) 15:41:44.26ID:noi5k0SLF852デフォルトの名無しさん (ワッチョイ d305-IGeJ)
2021/05/28(金) 16:21:08.86ID:d4trihsO0 放屁を表現するにはどのように組めばいいですか?
853デフォルトの名無しさん (ワッチョイ 49da-4nYX)
2021/05/28(金) 17:22:56.65ID:2aHU1C7x0854デフォルトの名無しさん (ワッチョイ 41da-w12y)
2021/05/29(土) 13:03:23.38ID:r3cbJcYW0 >>850
情報処理技術者と医者は違うよ
情報処理技術者と医者は違うよ
855デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/29(土) 13:45:09.13ID:aPQQ38Uv0 >>854
それは846に言ってくれ
それは846に言ってくれ
856デフォルトの名無しさん (ワッチョイ b146-5213)
2021/05/29(土) 23:42:24.57ID:My8NRvOD0 >>854
情報処理技術者と医者の比喩とは、どう違うのですか。
情報処理技術者と医者の比喩とは、どう違うのですか。
857デフォルトの名無しさん (ワッチョイ b95f-83tl)
2021/05/30(日) 10:37:22.47ID:ssDmNHo+0 医者は治療に特化した知識や技術はあるけど
科学的な思考を出来る医者は意外と少数派のイメージ
科学的な思考を出来る医者は意外と少数派のイメージ
858844 (ワッチョイ 512c-0h5H)
2021/05/30(日) 11:15:42.19ID:Gk//zzeB0 外科部長とか、手術のトップでも、何十年も専門医を取れない香具師もいる。
かと思えば、専門医は常識だけで取れる、取れない香具師は馬鹿という香具師もいる
教授クラスでも、病理・解剖の報告書の意味が分からない香具師も一杯いる
報告書は難しくて、意味が分からないけど、
大丈夫と書いてありますから、大丈夫ですと説明する教授とかw
基本、自分の専門分野以外は分からない
かと思えば、専門医は常識だけで取れる、取れない香具師は馬鹿という香具師もいる
教授クラスでも、病理・解剖の報告書の意味が分からない香具師も一杯いる
報告書は難しくて、意味が分からないけど、
大丈夫と書いてありますから、大丈夫ですと説明する教授とかw
基本、自分の専門分野以外は分からない
859デフォルトの名無しさん (ワッチョイ 93ad-IGeJ)
2021/05/30(日) 12:45:34.55ID:V/qTlijF0 資格の壁を欲しがるのは、実際的な実力のない人でしょうな
立場が弱い方が過酷ゆえ、実際的な実力が付く(初心者はさておき)
それを抑え込みたい(過酷ゆえ、彼らは時間のかかる読書をする余力がない)
残念ながらそういう社会なので、生活の知恵としては、有益、てことなんだろうけど
そして昨今の大企業や役所で多いトラブルは、その資格神話が原因だと思う
下を切り過ぎて、下に丸投げしてたプロパーにやらせるケースが増えたんじゃないかな
実力があるんでしょ?ていうw
立場が弱い方が過酷ゆえ、実際的な実力が付く(初心者はさておき)
それを抑え込みたい(過酷ゆえ、彼らは時間のかかる読書をする余力がない)
残念ながらそういう社会なので、生活の知恵としては、有益、てことなんだろうけど
そして昨今の大企業や役所で多いトラブルは、その資格神話が原因だと思う
下を切り過ぎて、下に丸投げしてたプロパーにやらせるケースが増えたんじゃないかな
実力があるんでしょ?ていうw
860デフォルトの名無しさん (ワッチョイ 49da-EUNK)
2021/05/30(日) 13:19:09.44ID:4Llulaw20 なるほど
日本語が不自由ですね(やべーなコイツ)
日本語が不自由ですね(やべーなコイツ)
861デフォルトの名無しさん (ワッチョイ 93a5-bhdz)
2021/05/30(日) 13:29:49.69ID:7FUVn7Mh0 実力のある下級奴隷を抑え込むために中級奴隷は資格が欲しい?
862844 (ワッチョイ 512c-0h5H)
2021/05/30(日) 14:09:05.31ID:Gk//zzeB0 資格を取れない香具師は、理解能力がない香具師が多い
企画書・規格書・文書などを読めない。
要求定義を出来ない。
客のニーズが分からないから、適切な提言ができない
客に言われた事しかできない。
客は素人だから、客に言われた事をやったら、ダメ
ちゃんと目的を聞いて、効率的な方法を提案しないといけない。
だから成功しているのは、文系のRuby on Rails ばかり
理系のPython をやってる香具師は、コミュニケーションが取れない。
まともに話・説明ができない
技術はどんどん変化するから、コミュ力・理解力・説明力が必要。
ずっと1人で、誰にも理解されない・訳の分からない事をやっている、理系の職人じゃダメ
軍隊で言えば、全員で意思疎通しながら、足並みを揃えて進行していかないといけない。
個人・独学では通用しない。
チーム力が重視される
企画書・規格書・文書などを読めない。
要求定義を出来ない。
客のニーズが分からないから、適切な提言ができない
客に言われた事しかできない。
客は素人だから、客に言われた事をやったら、ダメ
ちゃんと目的を聞いて、効率的な方法を提案しないといけない。
だから成功しているのは、文系のRuby on Rails ばかり
理系のPython をやってる香具師は、コミュニケーションが取れない。
まともに話・説明ができない
技術はどんどん変化するから、コミュ力・理解力・説明力が必要。
ずっと1人で、誰にも理解されない・訳の分からない事をやっている、理系の職人じゃダメ
軍隊で言えば、全員で意思疎通しながら、足並みを揃えて進行していかないといけない。
個人・独学では通用しない。
チーム力が重視される
863デフォルトの名無しさん (ワッチョイ 2b63-6ypv)
2021/05/30(日) 14:32:33.23ID:+cXBE89D0 金バッチみたいなものか
864844 (ワッチョイ 512c-0h5H)
2021/05/30(日) 14:58:39.30ID:Gk//zzeB0 論理力があるかどうかは、国語のテストで判別できる
幾つかの文章を、ヒントから正しく並べ替えるとか、
時系列や、原因・結果が逆になっていないかとか、
これは何を指しているかとか、
その時の主人公の気持ちを答えろとか
ここにこう書いてあるからこうですと、論理的に説明できないといけない。
どこにも書いていないことを、想像で答える問題ではない
だから、Rails をやるような文系女の方が、論理的。
Python をやるような理系男は、論理力が苦手だろ
幾つかの文章を、ヒントから正しく並べ替えるとか、
時系列や、原因・結果が逆になっていないかとか、
これは何を指しているかとか、
その時の主人公の気持ちを答えろとか
ここにこう書いてあるからこうですと、論理的に説明できないといけない。
どこにも書いていないことを、想像で答える問題ではない
だから、Rails をやるような文系女の方が、論理的。
Python をやるような理系男は、論理力が苦手だろ
865デフォルトの名無しさん (ワッチョイ b95f-D/jZ)
2021/05/30(日) 16:05:08.30ID:ssDmNHo+0 > 864 が全然論理的じゃなくてワロス
>>864
>論理力があるかどうかは、国語のテストで判別できる
まあ母語で思考力を試すのはわからないでもないのですが、
>幾つかの文章を、ヒントから正しく並べ替えるとか、
>時系列や、原因・結果が逆になっていないかとか、
>これは何を指しているかとか、
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
そんな問題で思考力を試すのですか?あなたが思考力に乏しいことを露呈しているのではないのですか?
初等教育での問題設定は私にもよくわかりませんが、中等教育課程でなら、単に問題として適切なばかりか、教育訓練方法としても適切な手法はありますよ
それは英文和訳です。
翻訳レベルまでは求めませんが、目があり手があり内蔵があり手足があり五感があり感情・激情があり同じ食べ物を食べ同じ武器で怪我をし同じ行気にかかり同じく薬でなおり冬や夏には暑さ寒さを感じ針で刺せば血が出てくすぐったら笑う毒をもったらあっけなく死ぬるような同じ「人間」が書いたとは思えない訳文を私もよく書いたものです
>論理力があるかどうかは、国語のテストで判別できる
まあ母語で思考力を試すのはわからないでもないのですが、
>幾つかの文章を、ヒントから正しく並べ替えるとか、
>時系列や、原因・結果が逆になっていないかとか、
>これは何を指しているかとか、
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
そんな問題で思考力を試すのですか?あなたが思考力に乏しいことを露呈しているのではないのですか?
初等教育での問題設定は私にもよくわかりませんが、中等教育課程でなら、単に問題として適切なばかりか、教育訓練方法としても適切な手法はありますよ
それは英文和訳です。
翻訳レベルまでは求めませんが、目があり手があり内蔵があり手足があり五感があり感情・激情があり同じ食べ物を食べ同じ武器で怪我をし同じ行気にかかり同じく薬でなおり冬や夏には暑さ寒さを感じ針で刺せば血が出てくすぐったら笑う毒をもったらあっけなく死ぬるような同じ「人間」が書いたとは思えない訳文を私もよく書いたものです
867デフォルトの名無しさん (ワッチョイ 93ad-B6Af)
2021/05/30(日) 17:38:07.40ID:4jG5kCp70 本当の気持ちは言葉にできないものだ
868デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/30(日) 20:54:28.67ID:p+VrCgXk0869デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/30(日) 20:54:47.64ID:p+VrCgXk0 >>865
同感
同感
870844 (ワッチョイ 512c-0h5H)
2021/05/31(月) 09:18:48.01ID:etoumxTf0 >>866
ちょうど昨夜のテレビ、東大合格ドラマ「ドラゴン桜」で国語をやってた
どの文章とどの文章が、等価・つまり同じ事を言い換えたものでしょうかとか。
結局、筆者の言いたかった事は何か? 要約しろとか
つまり、読解力とは理解能力
ちょうど昨夜のテレビ、東大合格ドラマ「ドラゴン桜」で国語をやってた
どの文章とどの文章が、等価・つまり同じ事を言い換えたものでしょうかとか。
結局、筆者の言いたかった事は何か? 要約しろとか
つまり、読解力とは理解能力
871844 (ワッチョイ 512c-0h5H)
2021/05/31(月) 09:25:18.02ID:etoumxTf0 「走れメロス」を要約しろとか、「ドラゴン桜」の国語でやってた
友達を信じて待つ
友達を信じて待つ
872844 (ワッチョイ 512c-0h5H)
2021/05/31(月) 09:35:25.57ID:etoumxTf0 「ドラゴン桜」では、
国語が出来ない・読解力が無いと、
題意を勘違いして、求められる回答を書けないなど、
すべての教科の点数が下がるから、国語が重要!
国語が出来ない・読解力が無いと、
題意を勘違いして、求められる回答を書けないなど、
すべての教科の点数が下がるから、国語が重要!
873デフォルトの名無しさん (エムゾネ FFb3-83tl)
2021/05/31(月) 09:51:02.68ID:Tm9sROGBF ドラコン櫻で教えてるのは「受験のテクニック」であって
論理学ではない
所詮漫画
テストの点は取れるようになるかも知れないが実際馬鹿な公務員が増えただろ?
論理学ではない
所詮漫画
テストの点は取れるようになるかも知れないが実際馬鹿な公務員が増えただろ?
874デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/31(月) 09:53:41.48ID:O9N9c2eG0 そうなんだよな
塾とかの競争原理で実績を出さにゃならんから
本当の実力とは違う点数の取り方ってのがある
塾とかの競争原理で実績を出さにゃならんから
本当の実力とは違う点数の取り方ってのがある
875844 (ワッチョイ 512c-0h5H)
2021/05/31(月) 12:53:27.36ID:etoumxTf0 漫画だけど、塾を取材して、そのやり方を書いてる
例えば、塾では問題を解かない。
解いたり考えたりする時間が無駄だから
問題のパターンを教える。
1つの問題を解いている時間で、10個以上の問題のパターンを覚えられる
YouTube で有名な、雑食系エンジニア・KENTA のサロンと同じ。
学校・会社を取材して、必要な技術を選んでいる
Ruby on Rails 初心者用コースに、
Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース
Docker Composeが出来ないと、採用されませんよとか。
考える要素などない。
競争に勝つ、勉強をしたか・してないかだけ
例えば、塾では問題を解かない。
解いたり考えたりする時間が無駄だから
問題のパターンを教える。
1つの問題を解いている時間で、10個以上の問題のパターンを覚えられる
YouTube で有名な、雑食系エンジニア・KENTA のサロンと同じ。
学校・会社を取材して、必要な技術を選んでいる
Ruby on Rails 初心者用コースに、
Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース
Docker Composeが出来ないと、採用されませんよとか。
考える要素などない。
競争に勝つ、勉強をしたか・してないかだけ
876デフォルトの名無しさん (ワッチョイ 0905-4Wjq)
2021/05/31(月) 12:56:00.90ID:QwUa5xlW0 >>873
テストの点すら取れない真のバカよりはずっとずっとマシだよ
テストの点すら取れない真のバカよりはずっとずっとマシだよ
877デフォルトの名無しさん (ワッチョイ 93a5-bhdz)
2021/05/31(月) 13:21:04.29ID:BBpqu8AM0 真のバカはテストの点のみならず両方ダメだから文字通りに「ずっとマシ」だろうけど
テストの点がとれない頭のいい奴を排除してしまうのが最大の問題だ
こういう場合は「(テストは)無い方がいい」になる
排除するのが目的なら真のバカは両方ダメだから排除できる
テストの点がとれない頭のいい奴を排除してしまうのが最大の問題だ
こういう場合は「(テストは)無い方がいい」になる
排除するのが目的なら真のバカは両方ダメだから排除できる
878デフォルトの名無しさん (ワッチョイ 0905-4Wjq)
2021/05/31(月) 13:59:08.86ID:QwUa5xlW0 >>877
こと公務員についてのみ言うなら・・・
テストの点が取れないバカは不要だし
テストの点が取れるバカはハサミと同じく普通に使いでがある
テストの点が取れない天才は取りこぼしても大勢に影響はない
Cプログラマにはテストの点が取れない天才はいないので大丈夫
こと公務員についてのみ言うなら・・・
テストの点が取れないバカは不要だし
テストの点が取れるバカはハサミと同じく普通に使いでがある
テストの点が取れない天才は取りこぼしても大勢に影響はない
Cプログラマにはテストの点が取れない天才はいないので大丈夫
879デフォルトの名無しさん (ワッチョイ 2b63-6ypv)
2021/05/31(月) 14:18:39.01ID:rigi+WDl0 学校の試験は、出題者の意図を読み取り期待する回答を書く能力を調べること
だから、社会に出てからその能力が役に立つ分野は限られている
だから、社会に出てからその能力が役に立つ分野は限られている
880デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/31(月) 14:46:22.19ID:O9N9c2eG0 試験で試すことのできる能力と
本当に必要な能力に「ズレがある」ってだけの話を
まったく違うと拡大解釈して
現実味のない極論を始める軽率なやついるよな
本当に必要な能力に「ズレがある」ってだけの話を
まったく違うと拡大解釈して
現実味のない極論を始める軽率なやついるよな
881デフォルトの名無しさん (ワッチョイ 93a5-bhdz)
2021/05/31(月) 14:46:25.43ID:BBpqu8AM0 テストと現実が乖離しまくって大勢に影響出まくってんのが現状じゃないの
『天才』まで行かなくても『頭のいい奴』ていどでも
「テストの点が取れないちょっと頭のいいやつを取りこぼしまくると大勢に影響が出る」
そして一般大衆の頭の中では「テストの点が取れない⇒バカである」になる
『テストの点が取れる○○はハサミと同じく普通に使いでがある』このパターンと見分けがつかないからな
○○に何が入ろうがバカと判断されてしまい鼻毛切り程度の小さな仕事しか回ってこなくなる
『天才』まで行かなくても『頭のいい奴』ていどでも
「テストの点が取れないちょっと頭のいいやつを取りこぼしまくると大勢に影響が出る」
そして一般大衆の頭の中では「テストの点が取れない⇒バカである」になる
『テストの点が取れる○○はハサミと同じく普通に使いでがある』このパターンと見分けがつかないからな
○○に何が入ろうがバカと判断されてしまい鼻毛切り程度の小さな仕事しか回ってこなくなる
882デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/31(月) 15:00:06.82ID:O9N9c2eG0 どう乖離してるのか具体的に言えるか?
883デフォルトの名無しさん (ワッチョイ 93a5-bhdz)
2021/05/31(月) 15:10:57.39ID:BBpqu8AM0 ズレがある=乖離してる、でしょ
すると、ズレがデカくなりすぎる=乖離しまくってる、になる
そしてズレがあると現実に影響が及ぶ
すると、ズレがデカくなりすぎる=乖離しまくってる、になる
そしてズレがあると現実に影響が及ぶ
884デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/05/31(月) 15:35:06.23ID:O9N9c2eG0 ほらな
抽象的なことしか言えない
案の定ってやつ
抽象的なことしか言えない
案の定ってやつ
885デフォルトの名無しさん (エムゾネ FFb3-83tl)
2021/05/31(月) 17:11:14.35ID:dxZCxWYyF886デフォルトの名無しさん (ワッチョイ 93a5-bhdz)
2021/05/31(月) 17:12:54.07ID:BBpqu8AM0 ズレ=乖離だよ
ズレがありすぎるから問題なんでしょ
ズレがありすぎるのはまったく違うのとほぼ等しい
特に拡大解釈ではない
ズレがありすぎるから問題なんでしょ
ズレがありすぎるのはまったく違うのとほぼ等しい
特に拡大解釈ではない
887デフォルトの名無しさん (ワッチョイ 0905-4Wjq)
2021/05/31(月) 20:09:39.07ID:QwUa5xlW0888デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/06/01(火) 05:51:42.02ID:P/S2+Nob0 具体的に例を挙げろつってんの
ズレだの乖離だのの言葉の定義ではなく
ズレだの乖離だのの言葉の定義ではなく
889デフォルトの名無しさん (ワッチョイ 93a5-bhdz)
2021/06/01(火) 11:04:18.90ID:kkYAvrn40 >>878で「大勢に影響はない」と言い切ったのはオレじゃねーぞ
お前だぞ
お前だぞ
890デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/06/01(火) 12:08:12.15ID:P/S2+Nob0 具体的に例を挙げろ
余計な無駄口は聞こえねえ
余計な無駄口は聞こえねえ
891デフォルトの名無しさん (ワッチョイ 93a5-bhdz)
2021/06/01(火) 13:44:16.89ID:kkYAvrn40 ズレてるとか言ったのもオレじゃねえからな
>>880だ
>>880だ
892デフォルトの名無しさん (ワッチョイ 512c-0h5H)
2021/06/01(火) 15:23:06.69ID:Dbf622Mk0 出題者の意図を読み取り、期待する回答を書くのは、
社会のすべての事に関して重要
理解力・意思疎通・説明能力
これが無いと、客の意味を取り違えたりする。
ちょっとした技術自慢だけで、実は役に立たない典型的な馬鹿
技術自慢は転職でも、最も嫌われる
意思疎通できない香具師とか、
熱い志がないとか、その会社の製品・事業に興味がないけど、
技術自慢だけしに来る香具師
社会のすべての事に関して重要
理解力・意思疎通・説明能力
これが無いと、客の意味を取り違えたりする。
ちょっとした技術自慢だけで、実は役に立たない典型的な馬鹿
技術自慢は転職でも、最も嫌われる
意思疎通できない香具師とか、
熱い志がないとか、その会社の製品・事業に興味がないけど、
技術自慢だけしに来る香具師
893デフォルトの名無しさん (ワッチョイ 2145-w12y)
2021/06/01(火) 16:31:59.27ID:P/S2+Nob0894デフォルトの名無しさん (ワッチョイ 0905-4Wjq)
2021/06/01(火) 17:24:06.49ID:aPzpXp8H0895デフォルトの名無しさん (ドコグロ MMa5-6JRX)
2021/06/01(火) 18:04:43.83ID:qeHvspwIM 言い出しっぺはとっくにいなさそうだしこの話もう終わりにすれば?
896デフォルトの名無しさん (ワッチョイ caad-p9zx)
2021/06/04(金) 01:41:15.92ID:n2NTEjZ40897デフォルトの名無しさん (ワッチョイ 8646-+/2V)
2021/06/04(金) 01:43:19.30ID:oNV2u1VT0 なぜゼロを固定的に返すのか。
898デフォルトの名無しさん (ワッチョイ caad-p9zx)
2021/06/04(金) 01:54:39.72ID:n2NTEjZ40 >>897
わかった。君だけは他の値を返すことを許す。
わかった。君だけは他の値を返すことを許す。
899はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a13e-p9zx)
2021/06/04(金) 01:55:33.20ID:Xsuyfl+R0 >>897
main で 0 または EXIT_SUCCESS を返すと
成功終了であることをホスト環境に (処理系定義の方法で) 通知するという仕様になってる。
ちなみに main に限っては return 文を省略すると 0 を返したことになるので
書きたくなければ省略してもいい。
main で 0 または EXIT_SUCCESS を返すと
成功終了であることをホスト環境に (処理系定義の方法で) 通知するという仕様になってる。
ちなみに main に限っては return 文を省略すると 0 を返したことになるので
書きたくなければ省略してもいい。
900デフォルトの名無しさん (ワッチョイ 8663-IO17)
2021/06/04(金) 02:05:38.62ID:3rxFsIot0 身は出しちゃ駄目
901デフォルトの名無しさん (ワッチョイ 6953-WP4G)
2021/06/04(金) 02:19:44.39ID:n50ApA7d0902デフォルトの名無しさん (ワッチョイ 8663-IO17)
2021/06/04(金) 02:28:56.87ID:3rxFsIot0 exit()はmain以外でも使えるから便利w
903デフォルトの名無しさん (ワッチョイ 8646-+/2V)
2021/06/04(金) 02:29:12.39ID:oNV2u1VT0 >>896
なぜputs()のエラー判定をしないのか。
なぜputs()のエラー判定をしないのか。
904デフォルトの名無しさん (ワッチョイ 6953-WP4G)
2021/06/04(金) 02:32:02.03ID:n50ApA7d0905デフォルトの名無しさん (ワッチョイ 1abd-lV5Q)
2021/06/04(金) 04:19:06.21ID:bj0HIe9W0 longjmpのほうがよっぽどないわー
906デフォルトの名無しさん (ワッチョイ 6953-WP4G)
2021/06/04(金) 10:54:44.43ID:n50ApA7d0 >>905
まだまだ経験が足りんな
まだまだ経験が足りんな
907デフォルトの名無しさん (ワッチョイ c602-/VAH)
2021/06/04(金) 13:19:20.87ID:o4J1slTs0 inf main(void)
908デフォルトの名無しさん (ワッチョイ 9d45-hKmE)
2021/06/04(金) 13:33:17.16ID:VPG/eawh0 フラグを返して呼び出し直後でif文、またフラグを返して、の繰り返しが
今まで何やってたんだろうというくらい、すっきりする
今まで何やってたんだろうというくらい、すっきりする
909はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a13e-p9zx)
2021/06/04(金) 14:38:58.11ID:Xsuyfl+R0 C++ の例外送出の実装方式にはいくつか種類があるけど、
sjlj と呼ばれる方式は setjmp/longjmp の略で C の setjmp と longjmp と同じことをしている。
(sjlj は移植性はあるがかなり遅いので実際には廃れ気味。)
逆に setjmp と longjmp で例外の真似をするという発想もわからんでもない。
ただなぁ、例外は例外で色々と問題をかかえているし、
後発の言語である Go や Rust がエラーを返却値で返す方式に回帰しているのを見ると、
こういうのでいいんだよこういうので……と近頃は思うようになった。
sjlj と呼ばれる方式は setjmp/longjmp の略で C の setjmp と longjmp と同じことをしている。
(sjlj は移植性はあるがかなり遅いので実際には廃れ気味。)
逆に setjmp と longjmp で例外の真似をするという発想もわからんでもない。
ただなぁ、例外は例外で色々と問題をかかえているし、
後発の言語である Go や Rust がエラーを返却値で返す方式に回帰しているのを見ると、
こういうのでいいんだよこういうので……と近頃は思うようになった。
910デフォルトの名無しさん (ワッチョイ 9d45-hKmE)
2021/06/04(金) 21:29:01.37ID:VPG/eawh0 C++の例外はイケてない
俺はそこそこのC++loverのつもりだが
ここはどうにも愛せない
C++98の動的例外指定をやめてnoexceptにしたおかげでマシにはなったが
まだまだ膿が出し切れてない
もうexceptionやめてnested_exceptionだけに絞った方がいいんじゃないかという気がしてる
あれこそ単一継承教の害悪の典型だろ
俺はそこそこのC++loverのつもりだが
ここはどうにも愛せない
C++98の動的例外指定をやめてnoexceptにしたおかげでマシにはなったが
まだまだ膿が出し切れてない
もうexceptionやめてnested_exceptionだけに絞った方がいいんじゃないかという気がしてる
あれこそ単一継承教の害悪の典型だろ
911デフォルトの名無しさん (ワッチョイ 6953-WP4G)
2021/06/04(金) 22:27:18.41ID:n50ApA7d0 >>909
まあその辺の考え方はわからんでもないけどね
ただ、一度longjmp()慣れたら、はっきりいって違和感はないし。
そもそもあちこちでexitするとか、それは昔のIBM系で悪名高い、
おかしくなったらABENDってのと何が違うんだよ、と思ってしまうので
それを考えるとね、exit()するくらいなら、longjmp()で制御戻して
出口一つにしとくようにしようよ、と思うわけさ。
問題って言っても、それこそANSIの最初の標準からあるわけだし。
まあその辺の考え方はわからんでもないけどね
ただ、一度longjmp()慣れたら、はっきりいって違和感はないし。
そもそもあちこちでexitするとか、それは昔のIBM系で悪名高い、
おかしくなったらABENDってのと何が違うんだよ、と思ってしまうので
それを考えるとね、exit()するくらいなら、longjmp()で制御戻して
出口一つにしとくようにしようよ、と思うわけさ。
問題って言っても、それこそANSIの最初の標準からあるわけだし。
912デフォルトの名無しさん (ワッチョイ 6953-WP4G)
2021/06/04(金) 22:51:54.40ID:n50ApA7d0 あと、もう一つメリット。
デバッガで動きを追うときに必ずsetjmp()の後ろにブレークを張っておく、と。
そすると、おおぅ、というような動きで異常終了とかでも、プログラムは落ちないから
グローバル変数くらいは確認できるw
デバッガで動きを追うときに必ずsetjmp()の後ろにブレークを張っておく、と。
そすると、おおぅ、というような動きで異常終了とかでも、プログラムは落ちないから
グローバル変数くらいは確認できるw
913デフォルトの名無しさん (ドコグロ MM4e-lV5Q)
2021/06/04(金) 23:18:26.41ID:HbomffeSM それはexitにブレーク貼れば同じことできるのでは?
914デフォルトの名無しさん (ワッチョイ caad-p9zx)
2021/06/05(土) 16:53:19.77ID:lg0pCfQ90 >>903
/)
///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
/)
///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
915デフォルトの名無しさん (テテンテンテン MMde-sC8v)
2021/06/06(日) 09:53:00.73ID:ZY57P3KvM BSD, macOS, Linuxで動くgets_sの模範的実装下さい。
916デフォルトの名無しさん (ワッチョイ 9d45-hKmE)
2021/06/06(日) 10:02:19.40ID:uVO5juz10 C++ならtemplate <typename charT, int N> charT* gets(charT (&ary)[N]);と
従来の使い方をそのまま残してサイズ渡せるんだけどな
従来の使い方をそのまま残してサイズ渡せるんだけどな
917デフォルトの名無しさん (ラクッペペ MM7f-Z9bY)
2021/06/12(土) 11:53:46.28ID:3zqNVH/1M BSP
918デフォルトの名無しさん (エムゾネ FF1f-U3V2)
2021/06/12(土) 18:43:44.02ID:QmJfg8OWF res しない自由
919デフォルトの名無しさん (ワッチョイ 93bb-l016)
2021/06/14(月) 20:39:15.79ID:b2JLFDmD0 C言語クイズ
void f(char **p) {
printf("%c\n", **p);
}
int main(void) {
char s[100];
f(&s);
return 0;
}
↑のコードは合法か否か?
void f(char **p) {
printf("%c\n", **p);
}
int main(void) {
char s[100];
f(&s);
return 0;
}
↑のコードは合法か否か?
920デフォルトの名無しさん (ワッチョイ 23da-t88l)
2021/06/14(月) 21:11:18.60ID:zK/HfdvT0 >>919
違法です
違法です
921デフォルトの名無しさん (テテンテンテン MM7f-Nnf8)
2021/06/14(月) 21:28:44.78ID:QzrjrzJVM 実行犯は逮捕されます
922デフォルトの名無しさん (ワッチョイ 7f36-gVNt)
2021/06/14(月) 22:16:38.04ID:q3ZquDHG0 法的にはアレだが感情的には(ry
923デフォルトの名無しさん (アウアウウー Sa67-223K)
2021/06/14(月) 22:43:48.58ID:JlQ40LV2a924デフォルトの名無しさん (ワッチョイ ffad-khlo)
2021/06/14(月) 23:17:08.16ID:stHhaeqd0 f() は char **p を受け取るようになってるからな。
p が指す先の *p が char * 型で、更にその先の **p が char 型になる。
p が指す先の *p が char * 型で、更にその先の **p が char 型になる。
925デフォルトの名無しさん (ワッチョイ 93bb-l016)
2021/06/15(火) 00:41:45.66ID:uIngvlIz0926デフォルトの名無しさん (ワッチョイ 3325-+PDx)
2021/06/15(火) 06:59:43.45ID:FhuU/vlv0 そもそも初期化されていない領域へのアクセスがアレなのでは
927デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/15(火) 07:34:01.16ID:d2euf9Bx0 未だにchar**とchar(*)[100]の区別がつかないやつがいるのか
928デフォルトの名無しさん (ワッチョイ 2301-E0Y3)
2021/06/15(火) 07:39:05.57ID:ul7dDyuz0 未初期化で不定なポインタではなく
指し先の実体が未初期化なだけなのでセーフということにしたい
指し先の実体が未初期化なだけなのでセーフということにしたい
929デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/15(火) 07:51:57.42ID:d2euf9Bx0 union
{
char s[100];
char *t;
} u;
char **p;
p = &u.t;
printf("%c\n", **p);
とやってるのと同じで
*pつまりtが不定なのに逆参照しちまってるじゃねえか
{
char s[100];
char *t;
} u;
char **p;
p = &u.t;
printf("%c\n", **p);
とやってるのと同じで
*pつまりtが不定なのに逆参照しちまってるじゃねえか
930デフォルトの名無しさん (ワッチョイ 1369-tD/8)
2021/06/15(火) 08:28:39.63ID:WH9TaISq0 あれ? あれ?
931デフォルトの名無しさん (アウアウウー Sa67-F5ry)
2021/06/15(火) 09:50:49.77ID:Pt7e5czla >>929
違う。
違う。
932デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/15(火) 10:26:31.47ID:d2euf9Bx0 >>931
何が?
何が?
933デフォルトの名無しさん (エムゾネ FF1f-U3V2)
2021/06/15(火) 14:55:22.33ID:dTl1pSLYF じゃあ別の問題
char s[100];
のとき
char *p = s; は ok
char **q = &s; は?
char s[100];
のとき
char *p = s; は ok
char **q = &s; は?
934デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/15(火) 15:02:32.98ID:d2euf9Bx0 ダメに決まってんだろ
別の問題じゃねえじゃん
同じこと聞いてんなよ
別の問題じゃねえじゃん
同じこと聞いてんなよ
935デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/15(火) 15:03:48.90ID:d2euf9Bx0 通せるコードが知りたいの?
char (*q)[100] = &s;
ほれ
おまえさんがやりそうな
char **q = (char**)&s;
はコンパイルは通るが○はやれないよ
char (*q)[100] = &s;
ほれ
おまえさんがやりそうな
char **q = (char**)&s;
はコンパイルは通るが○はやれないよ
936デフォルトの名無しさん (ワッチョイ 63d5-+PDx)
2021/06/15(火) 16:23:49.89ID:Ggb59cAP0 ◯とか×とかの恣意的な答えじゃなくてじゃなくて仕様書読めないのがここの限界だよな
オレもだけど
未定義動作なんて又聞きでしかしらねぇや
オレもだけど
未定義動作なんて又聞きでしかしらねぇや
937デフォルトの名無しさん (ワッチョイ 93bb-nisE)
2021/06/15(火) 16:43:11.36ID:uIngvlIz0 仕様書読んでる人なんか沢山いたじゃんこのスレ
今はいないの?
今はいないの?
938デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/15(火) 16:43:19.15ID:d2euf9Bx0 このへんを理解するのに規格票なんか読んでたら却って時間かかるよ
規格票は初心者が読むようにはできてないから
それよりポインタの基本をしっかり押さえていくと自然に答えに行き着く
実際、俺がそうだった
じっくり真剣な考察がいるからテキトーこいてるうちはわからない
いわばテキトーセンサーだ
規格票は初心者が読むようにはできてないから
それよりポインタの基本をしっかり押さえていくと自然に答えに行き着く
実際、俺がそうだった
じっくり真剣な考察がいるからテキトーこいてるうちはわからない
いわばテキトーセンサーだ
939デフォルトの名無しさん (ワッチョイ cf63-khlo)
2021/06/15(火) 16:43:29.10ID:Zky1caEs0 コンパイルで、警告が出るだろ
右折禁止って書いてあるところ無理に右折するから、捕まる
右折禁止って書いてあるところ無理に右折するから、捕まる
940デフォルトの名無しさん (ワッチョイ cf63-khlo)
2021/06/15(火) 17:28:08.27ID:Zky1caEs0 配列sに初期値を入れておかないと表示出来ません
int main(void) {
char s[100]={'a'};
char *p=&s[0];
f(&p);
return 0;
}
int main(void) {
char s[100]={'a'};
char *p=&s[0];
f(&p);
return 0;
}
941デフォルトの名無しさん (アウアウウー Sa67-223K)
2021/06/15(火) 22:57:25.73ID:v+13MMUQa 配列とポインタは交換可能な場面が多いけど、結構融通が利かないことが多いですね
そもそもの >919 は定数の s を変数に適用しようとするからダメなのかな
しばらく C をやってないから、すっかりピンとこなくなってしまった
そもそも、こんな紛らわしい、クイズになるような記述はしないけど…
そもそもの >919 は定数の s を変数に適用しようとするからダメなのかな
しばらく C をやってないから、すっかりピンとこなくなってしまった
そもそも、こんな紛らわしい、クイズになるような記述はしないけど…
942デフォルトの名無しさん (ワッチョイ cf63-khlo)
2021/06/16(水) 00:39:49.95ID:QUFt1TkX0 sのアドレスを関数に渡した場合は、
受けとった側がこのアドレスをchar型の要素数100の配列として操作する必要がある。
これは関数f()のプロトタイプである、ポインタのポインタとは違う物である。
コンパイルしたときの警告をよく読んでみよう。
受けとった側がこのアドレスをchar型の要素数100の配列として操作する必要がある。
これは関数f()のプロトタイプである、ポインタのポインタとは違う物である。
コンパイルしたときの警告をよく読んでみよう。
943デフォルトの名無しさん (アウウィフ FF67-U3V2)
2021/06/16(水) 16:30:37.87ID:uJQ6HHCXF char s[100];
のときの
s と &s[0]
上の二つと &s の違い
のときの
s と &s[0]
上の二つと &s の違い
944デフォルトの名無しさん (ワッチョイ 7f36-nisE)
2021/06/16(水) 20:00:03.68ID:kgg3yKk+0 アセンブラ「?」
945デフォルトの名無しさん (アウアウウー Sa67-223K)
2021/06/17(木) 02:32:09.07ID:JsrG75zva946デフォルトの名無しさん (ワッチョイ cf63-khlo)
2021/06/17(木) 11:15:04.23ID:SWOKbVD80 char **p は 「charへのポインタの配列」 ではないよ
int main(void) {
char s='a';
char *p=&s;
f(&p);
return 0;
}
int main(void) {
char s='a';
char *p=&s;
f(&p);
return 0;
}
947デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/17(木) 11:32:48.85ID:qVo1n1YK0 ポインタ=配列と思い込んでいるときの症状だな
char s[100];
char *p = s;
assert(sizeof s != sizeof p);
char s[100];
char *p = s;
assert(sizeof s != sizeof p);
948デフォルトの名無しさん (ワッチョイ 63d5-+PDx)
2021/06/17(木) 12:21:59.90ID:u4WNkp++0 C言語には一応配列型があるんだっけ?
ほとんどポインタと同義で扱えるから分からんだけらしいが
ほとんどポインタと同義で扱えるから分からんだけらしいが
949デフォルトの名無しさん (アウアウウー Sa67-223K)
2021/06/17(木) 12:27:26.73ID:PisvSOwJa950デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/17(木) 12:34:26.88ID:qVo1n1YK0 > Cには配列型はないので
ある!
char s[100];
これが配列型だ
ある!
char s[100];
これが配列型だ
951デフォルトの名無しさん (アウアウウー Sa67-223K)
2021/06/17(木) 12:55:46.07ID:PisvSOwJa たしかに配列ですけど、配列型なのかな
自分もちょっと理解があやしいので…
誰か男の人来て〜!!
自分もちょっと理解があやしいので…
誰か男の人来て〜!!
952デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/17(木) 13:09:37.10ID:qVo1n1YK0 「型」とは何だと思う?
こういうのは型で、こういうのは型じゃない、という境界を示せるか?
こういうのは型で、こういうのは型じゃない、という境界を示せるか?
953デフォルトの名無しさん (ワッチョイ 3325-+PDx)
2021/06/17(木) 14:03:32.36ID:4qObO6qj0 rui_ueyamaのコンパイラ入門だと配列型とポインタ型は別々だって言ってたよ
954デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/17(木) 14:06:34.50ID:qVo1n1YK0 951が言いたいのはこういうことか?
typedef char T[100];
T s; //これなら型だ
T s[100]; //これは型なのかな
typedef char T[100];
T s; //これなら型だ
T s[100]; //これは型なのかな
955デフォルトの名無しさん (ワッチョイ 93bb-l016)
2021/06/17(木) 15:31:45.57ID:YvA5lG3W0 型って言うと普通はintとかfloatだよね
配列型っていうか「int型の配列」と表現することはあるけど
配列型っていうか「int型の配列」と表現することはあるけど
956デフォルトの名無しさん (ラクッペペ MM7f-xyiz)
2021/06/17(木) 15:48:44.73ID:Cedau++pM 基本型(数値型と文字型)と集成体型(配列と構造体)とポインタ型
957デフォルトの名無しさん (アウアウクー MM87-LLAs)
2021/06/17(木) 16:05:49.23ID:LpiEWNiEM 型はintとcharとfloatとdouble等
配列はその型を[100]みたいに指定した固定数だけ宣言して使えるようにしたもの
ポインタは指定した型のメモリ上の場所だけを指し、*allocでサイズが変えれる
配列もメモリの場所を示すポインタで参照はできるがサイズは固定
で覚えた
配列はその型を[100]みたいに指定した固定数だけ宣言して使えるようにしたもの
ポインタは指定した型のメモリ上の場所だけを指し、*allocでサイズが変えれる
配列もメモリの場所を示すポインタで参照はできるがサイズは固定
で覚えた
958デフォルトの名無しさん (ワッチョイ 6345-XaDa)
2021/06/17(木) 16:13:28.27ID:qVo1n1YK0 >>955
キーワードのみで指定される型は基本型(basic type)だ
6.2.5 型 オブジェクトに格納した値又は関数の返す値の意味は,それをアクセスするのに使われる式の型(type)によって決定する。(オブジェクトとして宣言された識別子は最も単純な式とし,その型は識別子の宣言において指定された型とする。)型は,オブジェクト型(object type)(オブジェクトを完全に規定する型),関数型(function type)(関数を規定する型),及び不完全型(incomplete type)(オブジェクトを規定する型で,その大きさを確定するのに必要な情報が欠けたもの)に分類する。
キーワードのみで指定される型は基本型(basic type)だ
6.2.5 型 オブジェクトに格納した値又は関数の返す値の意味は,それをアクセスするのに使われる式の型(type)によって決定する。(オブジェクトとして宣言された識別子は最も単純な式とし,その型は識別子の宣言において指定された型とする。)型は,オブジェクト型(object type)(オブジェクトを完全に規定する型),関数型(function type)(関数を規定する型),及び不完全型(incomplete type)(オブジェクトを規定する型で,その大きさを確定するのに必要な情報が欠けたもの)に分類する。
959デフォルトの名無しさん (ワッチョイ ffbb-nlE7)
2021/06/18(金) 13:25:25.10ID:askuiBap0 >>958
なるほど
なるほど
960デフォルトの名無しさん (ワッチョイ ffbb-wUFk)
2021/06/18(金) 14:20:34.01ID:askuiBap0 あ、ほんとだ
規格書見たら普通に配列型と書いてあるね
知らんかった
ネットで検索しても「配列型」は引っかからないけど
規格書見たら普通に配列型と書いてあるね
知らんかった
ネットで検索しても「配列型」は引っかからないけど
961デフォルトの名無しさん (ワッチョイ ffbb-nlE7)
2021/06/18(金) 14:36:30.74ID:askuiBap0 >配列型(array type)は,要素型(element type)と呼ぶ特定のメンバオブジェクト型をもつ空でないオブジェクトの集合を連続して割り付けたものを表す(36)。配列型は,その要素型及び配列の要素の個数によって特徴付ける。配列型はその要素型から派生されるといい,要素型がTの場合,配列型は“Tの配列”と呼ぶ。要素型から配列型を構成することを“配列型派生”と呼ぶ。
「Tの配列」という表現は「配列型」と同義なのか、勉強になった
「Tの配列」という表現は「配列型」と同義なのか、勉強になった
962デフォルトの名無しさん (ワッチョイ 8abd-GQXG)
2021/06/18(金) 15:24:35.28ID:AVf6Ht590 配列が型でなければ、sizeof int[4]とか、(char (*)[4])ptrとか書けないからね
963951 (アウアウウー Sa47-QaMB)
2021/06/19(土) 00:09:10.43ID:zB4v1zpja では、cには文字列型があるといえるのかな
964デフォルトの名無しさん (ワッチョイ 9aad-19dE)
2021/06/19(土) 00:14:04.98ID:MQWrKSb70 関数の引数で
void func(char s[][10])
なんて書き方をすると配列型をちょっと実感できる。
void func(char s[][10])
なんて書き方をすると配列型をちょっと実感できる。
965デフォルトの名無しさん (ワッチョイ e3da-TbJT)
2021/06/19(土) 00:14:26.03ID:8xkixJIf0 >>963
charの配列を文字列として扱うよ
charの配列を文字列として扱うよ
966951 (アウアウウー Sa47-QaMB)
2021/06/19(土) 00:20:12.06ID:zB4v1zpja いや、規格書に書いてあるのだから、私の間違いでした
すみませんでした
すみませんでした
967デフォルトの名無しさん (ワッチョイ 4eb0-3RHv)
2021/06/19(土) 00:48:51.22ID:AhXAE8oj0 NUL終端していないchar配列はただの配列
968デフォルトの名無しさん (ワッチョイ 9aad-XI4R)
2021/06/19(土) 05:43:30.69ID:MQWrKSb70 飛ばない豚はただの豚
969デフォルトの名無しさん (エムゾネ FFba-b/96)
2021/06/19(土) 17:04:29.32ID:zDrgWeBeF void func(char s[][10])
は嫌い
void func(char (*s)[10])
じゃいかんの
は嫌い
void func(char (*s)[10])
じゃいかんの
970はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 763e-wUFk)
2021/06/19(土) 17:34:38.67ID:/f53/cxR0971デフォルトの名無しさん (ワッチョイ 7345-qv+0)
2021/06/19(土) 17:54:37.68ID:BH9bYKW90 初心者を救済すべく用意された構文糖が
結果的に初心者を陥れる陰険な罠になっているという皮肉
結果的に初心者を陥れる陰険な罠になっているという皮肉
972デフォルトの名無しさん (ワッチョイ a725-565v)
2021/06/20(日) 06:40:26.90ID:vSgOvpHd0 少なくともCのシンタックスシュガーは熟練者がタイプ数を減らすためのものであって初心者を楽させるものではない気がする
973デフォルトの名無しさん (エムゾネ FFba-b/96)
2021/06/21(月) 15:18:17.55ID:os4CEfZ3F こんなところでCが中途半端に出来るだけが自慢の専門卒みたいな連中に尋ねるよりも
大学の先生かチューターの院生に尋ねた方がいいだろう
進みたい研究室があればそこに行って訊くと良い
大学の先生かチューターの院生に尋ねた方がいいだろう
進みたい研究室があればそこに行って訊くと良い
974デフォルトの名無しさん (ワッチョイ 7345-qv+0)
2021/06/21(月) 20:27:45.83ID:yU7HyP9W0 院生以下のゴミw
975デフォルトの名無しさん (ワッチョイ b363-19dE)
2021/06/21(月) 23:06:35.04ID:jHz8GYW10 // b.c
int b[] = {123, 456};
// a.c
#include <stdio.h>
int a[] = {123, 456};
int main()
{
extern int *b;
printf("val b\n");
printf("%d\n", *(b + 1));
// printf("val a\n");
// printf("%d\n", *(a + 1));
return 0;
}
こういう分割ソースをコンパイル、リンクして実行すると、何も表示無しで終了する
デバッガー使って実行してみると、SEGVになってる
分割せず、コメント部分のaの表示だけにすると、動く
院生の人、何故かを説明して
int b[] = {123, 456};
// a.c
#include <stdio.h>
int a[] = {123, 456};
int main()
{
extern int *b;
printf("val b\n");
printf("%d\n", *(b + 1));
// printf("val a\n");
// printf("%d\n", *(a + 1));
return 0;
}
こういう分割ソースをコンパイル、リンクして実行すると、何も表示無しで終了する
デバッガー使って実行してみると、SEGVになってる
分割せず、コメント部分のaの表示だけにすると、動く
院生の人、何故かを説明して
976デフォルトの名無しさん (アウアウウー Sa47-QaMB)
2021/06/21(月) 23:10:51.91ID:imPHrgSTa こういうの、昔 柴田何某のポインタ本で勉強したけど、みんな忘れたな…
977デフォルトの名無しさん (ワッチョイ db33-LVrK)
2021/06/22(火) 02:41:53.17ID:UBIESj0w0 extern int b[];にすると動いたから配列型とポインタ型の違いっぽい
978デフォルトの名無しさん (ワッチョイ 7345-qv+0)
2021/06/22(火) 06:19:00.39ID:jiZrgPwV0 配列とポインタを混同するなと教えるときの典型的なサンプルだね
979デフォルトの名無しさん (アウアウウー Sa47-QaMB)
2021/06/22(火) 22:30:25.89ID:dO7B5XH7a 外部りんけーじだと、bのメモリに配置されているのが値なのかポインタなのか分からないからかな
この場合、使用側はbに配置されたのがポインタと決めつけてるけど、実態は値だから?
この場合、使用側はbに配置されたのがポインタと決めつけてるけど、実態は値だから?
980デフォルトの名無しさん (ブーイモ MMba-A4zE)
2021/06/23(水) 00:13:40.21ID:4uPMP2M7M int b[] = {123, 456};
*b で期待されるのは b=&123;
b[] で期待されるのは b[2]={123,456}
b[]の中身をスタックに積んだ後に*bの場合必要ないからextern更新して無いんじゃね?
*b で期待されるのは b=&123;
b[] で期待されるのは b[2]={123,456}
b[]の中身をスタックに積んだ後に*bの場合必要ないからextern更新して無いんじゃね?
981デフォルトの名無しさん (ワッチョイ 0eda-ydLY)
2021/06/23(水) 05:17:30.22ID:m16dmNKT0 現象としてはコンパイル後のアセンブリを見ればいいけど, 一般論としてはODR違反だからどう扱おうがコンパイラの自由だとしか
982デフォルトの名無しさん (ワッチョイ 7345-qv+0)
2021/06/23(水) 06:27:58.72ID:rIfoeFmJ0983デフォルトの名無しさん (ワッチョイ ff05-3RHv)
2021/06/23(水) 12:05:27.59ID:qvRJvNKF0 >>982
アホは無理して答えなくていいぞ
アホは無理して答えなくていいぞ
984デフォルトの名無しさん (ドコグロ MM77-GQXG)
2021/06/23(水) 12:26:06.31ID:5TaXVwksM extern int *b; じゃスタックに何も積んだりしないしどう見ても>>980がアホなんですが
985デフォルトの名無しさん (ワッチョイ a75f-3lwz)
2021/06/24(木) 12:32:06.50ID:OZF9neOD0 >>983
自己紹介乙
自己紹介乙
987デフォルトの名無しさん (ワントンキン MM8a-DkEX)
2021/06/24(木) 20:21:39.46ID:y6Bfeav/M じゃあ
b&=123;
でお願いしまつ。
b&=123;
でお願いしまつ。
988デフォルトの名無しさん (ワッチョイ 7345-qv+0)
2021/06/24(木) 20:45:24.69ID:alz36GlD0 ビットandしながら代入
989デフォルトの名無しさん (ワッチョイ cf69-H7K1)
2021/06/25(金) 15:41:59.61ID:rcGmQQfw0 2進で 0111 1011 か
マスクでありそうなパターンだ
マスクでありそうなパターンだ
990デフォルトの名無しさん (ワッチョイ 0f45-Sffs)
2021/06/25(金) 17:37:21.28ID:+QaNJXlp0 127より4小さい数か
991デフォルトの名無しさん (ワッチョイ 7fda-mKoK)
2021/06/25(金) 19:59:22.30ID:jSzR7q5R0 ビット and ラーン
992デフォルトの名無しさん (ブーイモ MM5f-CfLj)
2021/06/25(金) 23:07:19.68ID:crztuVLoM (int)123を.data sectionに置きアドレスを取得する方法。
993デフォルトの名無しさん (ワッチョイ 3fad-wfqF)
2021/06/26(土) 02:00:51.59ID:RjjpcdnV0 int a[] = { 123 };
って初期化すれば a が (int) 123 の入っている先頭アドレスになる。
もちろん *a が作られたわけではないので a に対しては代入できない。
あくまでも a を使おうとすると 123 の入っているアドレスに置き換わるだけ。
って初期化すれば a が (int) 123 の入っている先頭アドレスになる。
もちろん *a が作られたわけではないので a に対しては代入できない。
あくまでも a を使おうとすると 123 の入っているアドレスに置き換わるだけ。
994デフォルトの名無しさん (ワッチョイ 0f45-Sffs)
2021/06/26(土) 07:06:52.87ID:MV3qzcHy0 キャストしなくても元々intだろうが
995デフォルトの名無しさん (ワッチョイ 3fad-wfqF)
2021/06/26(土) 14:00:05.06ID:RjjpcdnV0 気分の問題。
996デフォルトの名無しさん (ワッチョイ 0f45-Sffs)
2021/06/28(月) 09:33:23.09ID:so+vl3vs0 printf("%d", sizeof (char)123); とやろうとしたら
キャストのカッコがsizeofのカッコと解釈されてエラーになるのな
printf("%d", sizeof((char)123)); ならおkなんだけど
なんだか気持ち悪い
キャストのカッコがsizeofのカッコと解釈されてエラーになるのな
printf("%d", sizeof((char)123)); ならおkなんだけど
なんだか気持ち悪い
997デフォルトの名無しさん (ワッチョイ cf05-Ibo0)
2021/06/28(月) 10:13:18.97ID:x/UkG1ge0 >>996
sizeofって括弧なしで使えるの? 知らなかった
sizeofって括弧なしで使えるの? 知らなかった
998デフォルトの名無しさん (ワッチョイ 0fda-qjGA)
2021/06/28(月) 10:20:43.69ID:WejOUFlX0 >>996
sizeof演算子の優先順位はcast演算子の優先順位より高いので、括弧がないと
まず最初にsizeofと数値リテラルが評価されてその後でその結果をcastで評価するという
おかしな状態になるのでエラーになったのでは?
sizeof演算子の優先順位はcast演算子の優先順位より高いので、括弧がないと
まず最初にsizeofと数値リテラルが評価されてその後でその結果をcastで評価するという
おかしな状態になるのでエラーになったのでは?
999デフォルトの名無しさん (ワッチョイ 0f45-Sffs)
2021/06/28(月) 10:38:03.51ID:so+vl3vs0 sizeofとキャストはどちらも単項式なので右から結合するはず
にも関わらずキャストが先に読まれないので気持ち悪いと言ったんだ
字句解析と意味解析ってことかな
にも関わらずキャストが先に読まれないので気持ち悪いと言ったんだ
字句解析と意味解析ってことかな
1000デフォルトの名無しさん (ワッチョイ 0fd2-kMi9)
2021/06/28(月) 11:05:48.75ID:HW6dR9O/0 そもそも
sizeof (char)
だけでいいものをそう記述してるのが気持ち悪い。
sizeof (char)
だけでいいものをそう記述してるのが気持ち悪い。
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 272日 20時間 24分 19秒
新しいスレッドを立ててください。
life time: 272日 20時間 24分 19秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- 「日本はドイツと違い反省せず」…中国外相、独外相に対日批判 台湾問題で理解求める [少考さん★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【苺ましまろ】立民衆院議員、人気漫画の水着少女画像を「醜悪」タイ人少女の性搾取事件と関連付け…党内で反発 [少考さん★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★5 [蚤の市★]
- 日銀植田「国債買い入れ増やして金利を下げるぞ😤」 これどっかで見たな… [972432215]
- お前ら「ブラックフライデーで工具買ったぞ!」 何に使うの?
- 【悲報】「高市だけは許さん!」追い詰められた習近平、実体は経済が「ソ連化」の影響でボロボロ、日本は中国の政治ショーに付き合うな [733893279]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- 30過ぎた大人おじさんが大学生(昔)のままのファッションをする「おじさんキッズコーデ」、炎上して問題視される。 [153490809]
- 日本人のおでん離れ。作る回数減った30.1%🍢 [256556981]
