★ ANSI Cでいこうよ ★
■ このスレッドは過去ログ倉庫に格納されています
0001標準なおんなのこ
NGNG_/ ヽ _
/ , , ヽ ヽX 7ヽ、
i' / // / / | ヽヾ. 、 ヽ ヽX X ゝ
/| | | | |_⊥」| || | |.|」⊥_ | iミミ、X /
V| | || i|_⊥、W./ヽ|,|⊥_||ヽ|≡= x/
ヽNヽ| ,|し.j _|し.jl|` |T Τ7 / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |.{  ̄ .'_,  ̄ || | | ||+ヽ < あははー、ANSI Cでプログラムしませんか?
| | i\ .1 | | | || +| \_______
| | | i : エ エ :´ : | | | | ||++|
| _ | | |´  ̄只 ̄ ヽ| | |_| ||++|
/ || | ノ || ヾ | | | ヽ| |++|
| || |- ´ i | | i `ー| | | | ||++|
| | | | | .| | | | | | || ̄
標準規格限定です。
標準ライブラリ、STLなどなど
MFC,VCLなどは禁止です
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG葉鍵板に逝け。
それから、数式プログラムを組むときはだいたいCのみで書くよ
0004デフォルトの名無しさん
NGNGむしろ葉鍵版からきたと思うが・・。
0005デフォルトの名無しさん
NGNGこれって何のキャラ?
0006デフォルトの名無しさん
NGNG「Plain C」限定でプログラムしま(?
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGシステムコールは使ってもヨィですか?
0009デフォルトの名無しさん
NGNGインラインアセンブラもつかっていいの?
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGCでそれをやると、なんぼ処理をしても
(その処理自体もロクなのが書けないだろうが)
その情報を入出力する手段が
いっさい無いことになるぞ。
君のディスプレイは真っ黒なままだ。
見た目、なにも動いていないのと等価だ。
それをプログラムと呼ぶのは完全に自己満足。
なにせ誰にも動いていることが「わからない」のだから。
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG{
printf( "はろーわーく\n" );
}
0016デフォルトの名無しさん
NGNGplain Cで次のはできるんだろ?
int (*sys)() = (int *)0x00hogehoge;
0017しつもんしつもーん!
NGNG0018デフォルトの名無しさん
NGNGJISハンドブックを読め。
無理してANSIの規格書を読んでも無意味。JIS X3010は2nd Edition(C99)には対応
してないけど、それ以外なら日本語で読める。それに日本ではJISこそが標準であって、
ANSIなどどうでもよい。
0019デフォルトの名無しさん
NGNG無知(>>13)は相手にするな。
入出力などplain Cですべて書ける。一番厄介なのは、ブート時のスタック
ポインタの設定とか、割り込みベクタの記述とかだろ。
これを処理系に依存しない規格合致プログラムとして書くことはまず不可能。
0020デフォルトの名無しさん
NGNGそれって、入出力はライブラリを使わなくても、環境依存しないで
かけるってこと?
0021デフォルトの名無しさん
NGNGどっかでやってた話だな・・・結論から言うと、
環境に依存するものならライブラリ使わなくても書ける。
0022デフォルトの名無しさん
NGNGじゃ、19は無知ってことで。
002317>18
NGNG0024デフォルトの名無しさん
NGNGいや、そんなことはないよ。
環境に依存するもの=移植性の低いもの
ならライブラリを使わなくてもプレーンで書ける
って感じ(大爆笑)
0025デフォルトの名無しさん
NGNGISO Cって言え
002617
NGNG0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG誰も「ISO C」とか「JIS C」なんて言わないよね。
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG入出力に割り込み命令使わなきゃいけない環境とかはどうするの?
0033デフォルトの名無しさん
NGNGなんとでもなるだろ
003432
NGNGインラインアセンブラ使わずに、しかもライブラリなしでだよ?
0035デフォルトの名無しさん
NGNGインラインアセンブラはいるかもね。
なくてもいけそうな気はするけど。
ライブラリはなくてもいいだろ。
0036デフォルトの名無しさん
NGNG0037>36
NGNG0038デフォルトの名無しさん
NGNG神・・・そう、神の領域
0039ワラ
NGNG0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGunsigned char foo[] = {
0x80, 0x3f, 0x00, /* foo: cmp byte ptr [bx],0 */
0x74,0x06, /* jz done */
0x80,0x07,0x20, /* add byte ptr [bx],32 */
0x43, /* inc bx */
....
}
int (*sys)() = (int *)foo;
ってな感じでやればインラインアセンブラいらんぞ。
機種依存だがANSIは満たしているだろ?
割り込みベクタの設定も、割り込みルーチンも
この中で設定すればよろしい。
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGアホみたいな疑問ですまないんだけど、どこが満たしてない?
単なるバッファを関数とみなして呼び出しているから?
それって違反事項なんだっけ?
いけない という記述が見当たらないので。
004442じゃないが、
NGNGANSIを満たしているといえるのだろうか?
0045デフォルトの名無しさん
NGNGというかANSIはそんなことを規定しない
*(*int)0 = 0
だってもちろん合法
0046デフォルトの名無しさん
NGNG>int (*sys)() = (int *)foo;
もちっと関数へのポインタを勉強したほうがいい。
0047デフォルトの名無しさん
NGNG>>45の
*(*int)0 = 0
が全くわかりません。教えてください。
004845じゃないけど
NGNG多分こうしたかったんだろう>47
int *p = 0;
*p = 0;
と同じ事
0050デフォルトの名無しさん
NGNG判断するための関数は、Selectでよいのでしようか?
また、UNIXソケットのselectと、WinSockのSelectの使い方
は同じでよいのでしようか?
0051デフォルトの名無しさん
NGNGどちらもselectで良い。
使い方は両方ともほぼ同じ。
windowsの場合、非ブロッキングI/Oを使ったより効率の良い
方法があるけど、ロジックが面倒になるので知るのは後回しで良い。
後はsocket selectで検索。
0052デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=970344582&ls=100
0053標準なおんなのこ
NGNGいまMFCでプログラム作っても2・3年後位にゴミになりそうで欝なんですっっ(涙
長く使える技術を習得しよう!
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNGあとSTLの勉強もしたい
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNGもしかしてassertのこと?
Visual C++のASSERTなら論外。
0062デフォルトの名無しさん
NGNGただ吠えたかったのか 藁
0063いまいちassertの使い方がわからない名無し
NGNGなんで?
ドキュンなんでassertとASSERTの違いを知りません。教えてください。
0064デフォルトの名無しさん
NGNGでも大切なことに気付かせてくれた上に
その疑問も後の応答で解決したので
こういうボケも2chでは大切なのかも。
006561
NGNGまず、ASSERTはassertと違って標準Cの規格外だということ(Microsoftの独自拡張)。
実用面では、assertは評価式が出力されるけど、ASSERTはファイル名と行番号しか出力
されない。
ASSERTについてしか触れていない本は、大抵MFCを対象としたものばかりで、その段階で
良書は少なくなる。
006644
NGNGANSI準拠のコードは可搬性があるとは言えないという結論でよいのか?
0067デフォルトの名無しさん
NGNGあたりまえだけど、
ANSI準拠でも処理系に依存したコードを書くと移植性はなくなります。
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNGかなりあるよ。
知っている範囲で最も紛らわしいのは、tmpnamと_tempnam関数。
名前も仕様も非常に紛らわしい。
POSIX規格とMicrosoftの独自拡張の間はさらに紛らわしい。
あと、C++ならISO規格のexportとMicrosoftの__exportとか。名前は似て
いるけど、用途は全く異なる。(現在は__declspecを使うから少しましかな)
007169
NGNGそれに、最も紛らわしいのはswprintf関数だった。
ISO規格: int swprintf(wchar_t*, size_t, const wchar_t*, ...);
Microsoft: int swprintf(wchar_t*, const wchar_t*, ...);
0072デフォルトの名無しさん
NGNGwarningは出てもstrict-ansiでコンパイルできるぞ?
0073デフォルトの名無しさん
NGNGこれはMicrosoftの方が自然だと思う
snprintfがある処理系って結構あるし
0074デフォルトの名無しさん
NGNGオブジェクト型のポインタと関数型のポインタにはそもそも互換性が全く
ない。
どんな処理系を使ったのか知らないが、規格合致処理系であれば、確実に
エラーになる。
どうしてもオブジェクト型のポインタから関数型のポインタにキャストし
たいのなら、
int (*sys)() = (int(*)())(int)foo;
のような感じで、いったん整数型を介さないといけない。
■ このスレッドは過去ログ倉庫に格納されています