- - PR -
C の localtime() の引数は混乱を招く。
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-10 16:09
うわキモッ、、なんかここって人の書き込み嗅ぎ回ってずっと付け回したり、
全然関係無い掲示板の事まで調べてそこに公開してあるネタ、あたかも 価値があるように錯覚して優越感に浸るちょっと精神的にアレな ストーカーの方もおられるようで。。。 しかし、お前もここまで言われな解らんとは・・・ >とか書いていたのは何処のどなたですかね? いちいち「ハマる」「ハマる可能性のある」ソースを例に挙げたんは、このスレッドを見る どういう「読者層」を狙ろたもんやと思う? わざわざ原因と結果まで挙げて。 それとも、俺が率直な質問して他の「普通の人々」が俺に返事を返してくれるのが気に食わん、 とか? (プ 何か勘違いして、一部特権階級の「つもり」でいるとか? ただの群れた羊やのにそれだけで「選ばれた人間」のつもりでおるとか? 自分が所属する群れもまた、その群れを包含する大きな群れの「一部」、部分集合であるのに、 大きな「群れ」を自分達でコントロールできると思い込んでるとか? 妄想を実体と勘違いして、「自分の所属する群れ」での価値観=全体の価値観と思い込み、 現実はその信じ込んだ価値観と異なる事実が起きてしまったのと、十分暇で時間も余ってる からこうしてノコノコ余計な書き込みしにくる、とか? >書いてるじゃないですか。 何処に? >は上のスレッドの流れを見ればそうですよね? 上のスレッドって何? 上下左右ってどこで定義されてんの? 意味と意味に込められた実体の関係も、ポインタと実体みたいな関係やろ? 「上」っちゅう「日本語の漢字ラベル」が「上」と言う方角の実体を指す訳で。 お前がここで定義する事か (プ まぁ、百歩譲って「C++のコンパイルでOSによって環境が異なる」の事やと仮定して、 「善し」としたんなら、「お前の論理で」目的は達せられとる訳で、わざわざこんな スレッド立てる理由がお前の論理では導出できんわな。「善し」で終わっとんなら。 そんな簡単な論理も解らんのか。 しかし、その「C++のコンパイルでOSによって環境が異なる」のソースが俺の手に よって書かれたものである、という確固たる自信(妄想)は、一体どっから出てくんのかね? んなもん会社のサーバー、或いは世界中に転がっとるウェブのサンプルからコピって ペーストしたって、「C++のコンパイルでOSによって環境が異なる」スレッドは いとも容易く立てれる訳で。 で、世界中のウェブサイトのCのソース一通り巡り巡って、どっこにもあのサンプルと 同じソースが無いから俺が書いたもんやって? 頭イカれてんの? >この質問内容を見るならばprintfとscanfを使えば?と言う回答になるでしょう? いや、別にお前には聞いてないから。 お前の場合は、システム以前の問題やろな。。。 しつこいと嫌われるのは、男も女も同じですな。 | ||||||||
|
投稿日時: 2004-09-10 16:23
>自分の思うような挙動をする、コンパイラやOSを作って、
>世界標準にすればいいんじゃないですか。 この大役はお前に譲るとしよう。>ナベヲ 俺はせいぜい、自分の言うことを聞く関数レベルのコーディングに勤しむとしよう。 処理系によって結果が異なる場合には、「それで当然」ではなく、なんで異るか疑問を持つ 方が当然やろが。お前のように何でも受身でレールの敷かれた人生じゃ疑問を持つ方が 異常らしいが (プ ネットワークの上はともかく、ベッドの上じゃマグロは嫌われるらしいぞ (オプ | ||||||||
|
投稿日時: 2004-09-10 16:26
こんにちは。 せっかくなので、「VC++ 6.0」にて実行してみました。 環境: Win2kSv & VC++ 6.0 コンパイルオプション等は特に指定せず。(デフォルト設定) プロジェクトは「コンソールアプリケーションの、Hello World」にて作成。
VC++だと「CCCCCCCC」で初期化されるようですね。うーん。「VC++6.0」だと、未初期化のポインタを利用しようとしたら怒られた気がするんですが…気のせいだったかなぁ。一応、ご参考までに。 | ||||||||
|
投稿日時: 2004-09-10 17:30
ちぃにぃ氏:
わざわざ検証までして貰ってすんません。 コンパイラのオプション変えても結果が変わるとは・・・ むぅぅ〜、最後の --omit-frame-pointer のスタックフレーム省略って、 main(){} のスタックフレーム以外を省略ですか。。。関数内ローカル変数 void *p; の値は main() の呼び出し側 void *p; と値が一緒・・・これ使い方間違うとエラい事 なりそうですな。 %esp 見てないんかなこれ・・・ | ||||||||
|
投稿日時: 2004-09-10 17:43
自己レスです^^; あ、そうか。受け取り側でポインタを設定される可能性があるから、値設定されていないポインタを引数にとってもエラーにならないんですね。今更ながらに気がつきました(滝汗) なら、const修飾子がついた場合のチェックはあっても良さそうですね…(その方が親切とは思うな) コーディングミス(値を設定してあるつもりでしていない場合とか)の場合もあるわけだし、そのまま動いちゃうのはちょっと不親切かもね。 # 自分のミスは棚に上げております(をぃ) # しかし…、眠い。頭回ってないかも…。 _________________ 脱線のNUSHI(見習い) ☆⌒(*^▽°) | ||||||||
|
投稿日時: 2004-09-10 17:47
Cでは普通の事ですよ。慣れるしかありません。 Javaでも最適化オプション等だと実際に生成されるコードはかなり違ってきます。
Cにおいては、一般に、使い方を間違えた場合というのをあまり考慮しない風潮があります。 プログラマは神であり、自分のやっている事を全て理解した上でやっている、コンパイラはそれを邪魔しない事、というのが大前提ですので。 Cは基本的にフールプルーフではありません。Javaのようなパターナリズムは期待できません。 | ||||||||
|
投稿日時: 2004-09-10 18:01
lint プログラムは C コンパイラよりも厳密にプログラムを
チェックして,問題となりそうな点を指摘する メッセージを表示します。 C言語は上記ですから、lint もまとめて考えては? ( 現在は Cコンパイラの警告オプションと、 同レベルの検査能力なのだろうか) -------------------------------------------------- Cコンパイラはコード発生やリンク関連のオプションのが多い ソース検証や、セキュリティ診断、バグパターンの発見は 別のソフト の分業になっているらしい。検索すると多数出ます。 [ メッセージ編集済み 編集者: MMX 編集日時 2004-09-11 19:02 ] | ||||||||
|
投稿日時: 2004-09-10 18:11
>自分のやっている事を全て理解した上でやっている、コンパイラはそれを邪魔しない事、
>というのが大前提ですので。 まぁ〜、そうなんですが・・・ やってしまった後に発見し易くして欲しい(笑) 無いものねだりなのかね。。。 なるほど、--omit-frame-pointer を google ったところ、MySQL の Makefile 中で比較 的出現頻度が高そうですが、このコンパイルオプションを使うケース、、っちゅぅかメリット が想像できません。 どういう場合に、スタックフレームを持たない関数扱いにするのか・・・あぁ、 汎用レジスタに即値代入させたい、とかですか? しかし、main の変数が、関数内で値が 書き換わったりせんもんなんかな・・・ 実行速度アップに命掛けてますな (笑) |