
@kazatsuyu 外部からの入力によって変化するってことですか…? ➀ cin>>i; j=i+i; の様にjはiが入力されないうとわからないもの、動的 ② i=1; j=i+i; こちらは構文解析でjがわかりそうなもの、静的 という感じですか?
2017-08-07 18:20:39
@strimuer213p 何が静的で何が動的かは文脈によって変わる。C/C++の変数であれば、グローバル変数は静的変数だしスタック変数は動的変数。この場合はアドレスが静的か動的かという点が異なる。スタック変数は実行時までアドレスがどこになるかわからない
2017-08-07 18:24:58
@kazatsuyu メモリ割り当ての部分で動的か静的か変わってきそうですね… 「グローバル変数は静的関数」からいろいろ調べてみます
2017-08-07 18:33:20
@strimuer213p @kazatsuyu というか、動的と静的を分類することに意味がない。コンパイル時になにが決まるかのみが大事。
2017-08-09 03:47:58
メモリまわりで言えば ・コンパイル時にサイズが決まるのが静的 ・実行時にサイズが決まるのが動的 雑にいえば ・int vaue = 42; は静的 ・int* value = new int(42); は動的
2017-08-09 03:51:52
@yumetodo @kazatsuyu そのあと少し調べてなんとなく動的、静的を整理しました 動的では配備した領域を解放したときに解放した事によってデータが参照できない問題を知ったのですがそれも「コンパイルの時」というひとまとまりの作業の中という事でいいですか?
2017-08-09 03:59:15
@strimuer213p @kazatsuyu 1. 何が動的で何が静的かという視点がない 2. プリプロセス時、コンパイル時、実行時の3つの時間 3. 変数の寿命と無効なポインタ/参照 がぐちゃぐちゃ。
2017-08-09 04:04:14
@yumetodo @kazatsuyu おおぅ… いろいろわからない区分分けが出てきたのでそっちの勉強してみます…
2017-08-09 04:08:43
まあそうなんだけど、他にもいくらでも静的と動的の定義なんてあるので考えるだけ無駄。そんな言葉遊びは忘れるべし。 @strimuer213p twitter.com/pink_bangbi/st…
2017-08-09 04:19:33
なので『メモリまわり前提』とした(メモリまわりで他に動的・静的の意味ってあったっけ? twitter.com/yumetodo/statu…
2017-08-09 04:24:25
そうそう、変数の寿命を考えるにあたりきわめて大事。30分あれば理解できるのでがんばれ(前にteratailsでそれの解説を回答した記憶があるがどれだっけか。) @strimuer213p twitter.com/pink_bangbi/st…
2017-08-09 04:25:35
自動変数領域だって動的やろ。 ね、だから意味がないんだって、そんな短い単語に押し込めることが。 twitter.com/pink_bangbi/st…
2017-08-09 04:28:27
- auto storage - static storage(global scope) - static storage(function scope) - allocated memory でいいじゃん。静的とか動的とか言うからわからないんだって@strimuer213p twitter.com/pink_bangbi/st…
2017-08-09 04:30:41
@pink_bangbi thread local storage以外は30分で説明できるでしょ。malloc使ったことある人に対してなら。
2017-08-09 04:36:30
@yumetodo 回りに説明してくれる人がいるのと、自分で調べるのとでは全然難易度が違ってくるのでは
2017-08-09 04:41:27
ああ、もうわかった。一週間以内にC++のメモリーの気持ちをよく使われる処理系を例に理解する記事をQiitaにあげる。 @strimuer213p @pink_bangbi
2017-08-09 04:42:10
@yumetodo @strimuer213p C++規格の用語によって「function scope」はlabelが該当の関数の実装のどこでも使われるってこと。関数の実装はblockで組んだのでその実装には「block scope」しかない。
2017-08-09 08:15:06
@yumetodo @strimuer213p ちなみに関数の宣言も自らのscopeがあるので、そのscopeは「function prototype scope」って呼ばれる。
2017-08-09 08:16:40
@gnaggnoyil @strimuer213p なるほど、block scopeで良かったのか、書いててあれっと思ってあとで規格書読もうと思ってた。
2017-08-09 10:38:25