GCCについて part5
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNGGNU本家のGCCページ
http://gcc.gnu.org/
Binutils - Collection of binary utilities
http://www.gnu.org/directory/GNU/binutils.html
GNU Binutils
http://sources.redhat.com/binutils/
GCC online documentation
http://gcc.gnu.org/onlinedocs/
Installing GCC
http://gcc.gnu.org/install/
GCC Timeline
http://gcc.gnu.org/releases.html#timeline
Calendar
http://gcc.gnu.org/develop.html#timeline
00021
NGNG・GCCについて part4
http://pc5.2ch.net/test/read.cgi/tech/1090062751/
・GCCについて part3
http://pc5.2ch.net/test/read.cgi/tech/1072484422/
・GCCについて part2
http://pc2.2ch.net/test/read.cgi/tech/1046179115/
・GCCについて(過去ログ倉庫)
http://pc2.2ch.net/tech/kako/1007/10077/1007731543.html
関連スレ
・cygwin + mingwn + gcc 相談室
http://pc5.2ch.net/test/read.cgi/tech/1058134693/
・gcjって使ってる人います?
http://pc5.2ch.net/test/read.cgi/tech/1046627795/
0003デフォルトの名無しさん
NGNG____)__
,. ´ ` ` 、
./ _ _ \
/ _  ̄ _ ヽ
/イィィ,,.,.,.,.,.,  ̄ ̄ !
f/ノノノノノノノ ヘ.__ j jノ__ノ
|/////// _ (__ ゚_>` __( ゚_イ
.!|.|i/_^ヽ|_'___r⌒ y' ヽ^)|
!|| fニ> :::::: `ー'゙ (_`___)ノ
ヽ.ニ` : /_ノ/川! / やりおった・・・
__ノ 、 / ヾ---'´ ノ
__ノ \l ` ____,/
\ ノ リ.|`ー--
\ .//
0004デフォルトの名無しさん
NGNG-O1は特に酷い
手書きアセンブラのほうがマシっす
0005デフォルトの名無しさん
NGNGCってのは、速度が気になるコードを書きたいのならコンパイラがどんなコードを出すのかを
理解しながら書かなければならない言語だが?
その限りにおいて、GCCはそれ程ひどいコードを出してこないし、手書きアセンブリよりは
はるかに楽だが。
0006デフォルトの名無しさん
NGNGまだ4.0試してネーヤ
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG立てなくてもいいのに・・・
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGGCC Bugzilla
http://gcc.gnu.org/bugzilla/
0013デフォルトの名無しさん
NGNGDeficiencies of GCC's optimizer
http://www.gnu.org/software/gcc/projects/optimize.html
0014デフォルトの名無しさん
NGNGgcc4.0でブランチしたのは、
3.4に存在したバグが相当あったために4.0としてブランチした。
0015デフォルトの名無しさん
NGNG今さらpascalなんてイラネ
0016デフォルトの名無しさん
NGNGgcc3.4系は早々とgcc4.0系に切替えていくんじゃないかという噂がある。
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGerror: cast from ‘void *’ to ‘int’ loses precision
っていうエラーが出まくるようになった。
このエラーは3.3系で出なかったけど型の制限がより厳しくなったってこと?
0021デフォルトの名無しさん
NGNGプラグインを入れ直せばいいのでは?
0022デフォルトの名無しさん
NGNGvoid * が 64bit で、int が 32bit だからでしょ・・・。
0023デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGその後IA32野郎が壊したところもすぐ直るものなんだけど、Firefoxのコードは新し目のコード多いのかなぁ・・・
0026デフォルトの名無しさん
NGNGgcc 4.0がgcc 3.3.3に負けた。orz
っていうか、まだリリースされてないか4.0って(笑
改善の余地有りってことかな。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG002920
NGNGQuick hackしようとおもって途中までやってたんだが次から次へと依存したコードが...。
⊂⌒~⊃。Д。)⊃ 依存したコードありすぎて終わらね〜〜よ!!やめたー!
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNGどのへんかちょろっと教えてクリ
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG修正されずに残ってるものなのかな。
もしかしたらptrdiff_t相当の、ポインタの差ををintに代入してるのかも
と思ったけど、だったら出るエラーメッセージが違うだろうし。
0034デフォルトの名無しさん
NGNG姫野ベンチを試したら、5%くらい遅いね。(Opteron1.6GHzで498Mflops(gfortran4.0)と526Mflops(g77))
またSECNDS()がなくなった。
0035デフォルトの名無しさん
NGNG移植性最優先なんじゃなかったかなあ。
firefoxって別なのか?
0036デフォルトの名無しさん
NGNGAMD64上でgcc4.0を使用して、Firefoxをコンパイルすればわかる。
0037デフォルトの名無しさん
NGNGhttp://pcweb.mycom.co.jp/articles/2004/12/22/gcc/
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG> 小島氏は「実はこれはRMSの方針で「完全なダンプは出さないようにすること」
> ということになっている」との事実を明らかにした。これは「完全なダンプを
> 出力可能にすると、ProprietaryなBackend Pathを作られてしまう可能性がある」
> という理由からだと言うのだが、一方で開発者にとって完全なダンプが取れる
> ことが非常に魅力的であるという事情もあることから、事前に何らかの文書等を
> 交わしたユーザに限り完全なダンプの出力機能を利用可能にするといったことが
> できないか現在検討が行われている、と同氏は語った。
0041デフォルトの名無しさん
NGNGその行動は微妙だな。
0042デフォルトの名無しさん
NGNG以前gcc依存バリバリのコードを処理する必要があるときにそうした。
0043デフォルトの名無しさん
NGNGオープンソースなのでやるだけ無駄だということですね。確かに。
0044デフォルトの名無しさん
NGNG敵に塩を送らないってだけの話だな。
0045デフォルトの名無しさん
NGNGhttp://gcc.gnu.org/gcc-3.4/buildstat.html
Build status for GCC 3.3
http://gcc.gnu.org/gcc-3.3/buildstat.html
3.3.5でshやsh4はまだなのかぁ..。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGcasts-as-lvalue って何で騒がれてるの?
Linux界でだけ?
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGたいていは回りくどい書き方に修正すればANSI互換に書き直せるハズ。
0050デフォルトの名無しさん
NGNG普通の C / C++ で *(int*)&d = 1; とか書くところを、gcc では今まで (int) d = 1; と書けてた(んだと思う)。
簡易unionみたいなもの。さほど意味の無い変な拡張だけど、使ってる人もいたんだね・・・
0051デフォルトの名無しさん
NGNG詳しく説明してあるページとかあったら教えてください、日本語で
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGcygwin mingw SFU(interix) coLinux どれか選べ
0055デフォルトの名無しさん
NGNG005653
NGNG0057デフォルトの名無しさん
NGNGなるほど。
0058デフォルトの名無しさん
NGNG全然シャッフルしてくれないんですけど?(最後の要素が先頭に移動するだけ)
同じコードをVC++7.1で動かしたらちゃんとシャッフルしてくれました。
0060デフォルトの名無しさん
NGNGAdaを含めてMinGW-BSDクロスコンパイラを作りたい場合、どうconfigureすればいいですか?
0061デフォルトの名無しさん
NGNGそれでうまくいきました。どうもありがとう。
しかし…なぜデフォルトでちゃんとシャッフルしてくれないのだろうか…。
(clでは第3引数なくてもちゃんとシャッフルしてくれました。)
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGint main()
{
printf("abc");
}
という内容のファイルをコンパイルするとヘッダファイルがないといわれるんだけど何故?
0064デフォルトの名無しさん
NGNGヘッダファイルがないから。
ちがうか?
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGhttp://gcc.gnu.org/bugzilla/show_bug.cgi?id=14626
俺にはドキュメントからは見つけられなかった
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG中核部分の開発が激しく盛り上がってるときはどうしてももっとも主流の環境が
中心になるのだよ。LinuxだったらターゲットCPUはx86系で開発環境はLinux上、つまり
セルフコンパイル環境がね。といっても他の環境でも試さなければ問題が発見できないから、
それはそれで行なうわけ。
まあ1つのターゲットと1つの環境でしか開発したことのない人間は黙ってロッテことですな(笑
たとえばautoconfとか使ったことある?ターゲット環境やビルド環境に合わせてmakefileを自動生成数ツール。
0070gcc初心者
NGNG#include <stdio.h>
int main(void)
{
printf("abc");
return 0;
}
----------
test.cをgccで、
%gcc -o test test.c ........(1) と実行しますと、testの実行ファイルが作成されますよね、
ここで、(1)のtestが動作していることを確認しています。
そして、今度は、
%gcc -c test.c でtest.oオブジクトファイル生成で止めて、リンカ(ld)で実行ファイルの生成したいのですが、(gccから、ldは呼び出さない。)
必要なライブラリが分かりません、(1)に-vオプションで表示されたライブラリを読み込ませたのですが、
関数exitが見つかりませんでした。
test.oをldで、リンクするとき最小限に必要なライブラリを教えていただけませんでしょうか
また、startupオブジェクトはどのライブラリなのか教えていただけませんでしょうか。
ちなみに環境はSunOS 5.8です。今手元に実行環境がなくあいまいな質問になってしまいましたが、
よろしくお願いいたします。
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG全部読んで損した。
0074gcc初心者
NGNG0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGInterview: Richard Stallman
http://kerneltrap.org/node/4484
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
05/01/21 20:36:270079デフォルトの名無しさん
05/01/21 20:46:450080デフォルトの名無しさん
05/01/21 20:52:460081デフォルトの名無しさん
05/01/30 03:26:200082デフォルトの名無しさん
05/01/30 03:27:200083デフォルトの名無しさん
05/01/30 03:31:380084デフォルトの名無しさん
05/01/30 09:43:48パフォーマンス向上が確認できた。
0085デフォルトの名無しさん
05/01/30 10:42:500086デフォルトの名無しさん
05/01/30 12:40:18それが売りだから。>IA32orIA64パフォーマンス
逆にIAマシンでgccとパフォーマンス変わらなければ存在意義ないし。
0087デフォルトの名無しさん
05/01/30 17:50:53っていうコードで悩んでるんだけどな、
__context__(1)ってのはどういう意味なんだろう?
0088デフォルトの名無しさん
05/01/30 22:07:000089デフォルトの名無しさん
05/01/30 22:50:510090デフォルトの名無しさん
05/01/31 13:24:520091デフォルトの名無しさん
05/01/31 13:28:01それもパフォーマンスが悪い原因の一つかな。
0092デフォルトの名無しさん
05/01/31 13:42:330093デフォルトの名無しさん
05/01/31 13:44:450094デフォルトの名無しさん
05/01/31 13:48:29RISCにすればそこそこ速そう。x86が悪いんだ!
0095デフォルトの名無しさん
05/02/01 00:41:190096デフォルトの名無しさん
05/02/01 01:01:140097デフォルトの名無しさん
05/02/01 02:28:380098デフォルトの名無しさん
05/02/01 05:06:43レジスタ数増えれば最適化のチャンスも増えるし
0099デフォルトの名無しさん
05/02/01 06:01:300100デフォルトの名無しさん
05/02/01 09:05:120101デフォルトの名無しさん
05/02/01 10:16:17mudflapを3に(ry
0102デフォルトの名無しさん
05/02/01 23:42:09if (functionName) {
...
}
みたいに関数名をboolコンテキスト持ってくると
the address of `functionName', will always evaluate as `true'
と警告が出るようになったんですが、これを抑制するオプ
ションが無くて参ってます。何かこの警告を消す良い方法は
無いでしょうか? ちなみにマクロを展開したあとにこういう
文になります。
0103デフォルトの名無しさん
05/02/02 01:32:53試してないけど、 functionName != 0 にしたらどうだろう。
でもこれは、マクロが問題なんじゃないかな?
0104デフォルトの名無しさん
05/02/03 22:17:50ありがとうございます。それでうまくいきました。
でもこういうマクロ問題なのかなあ・・・
0105デフォルトの名無しさん
05/02/03 22:26:16出された警告の意味わかってるのか?
0106デフォルトの名無しさん
05/02/03 23:47:22(アーキテクチャにもよるがこれはハードウェアの仕様)
ので常にtrueになるよという警告だろ。
x86の場合、確か0番地はベクタテーブルだから必ず
割り込みルーチンのポインタが書かれていると思ったけど。
0107デフォルトの名無しさん
05/02/03 23:58:28君はいつまでリアルモードで生活してるのかね?
0108デフォルトの名無しさん
05/02/04 00:30:000109デフォルトの名無しさん
05/02/04 00:37:55字面の意味じゃなくて何故この警告が抑制できないかって
ことですよね。全然わかりません。
-Wno-xxx で警告が消せないってことはプログラマに絶対
注意喚起する必要があるって判断なんだろうけど、正直
unused variable と同レベルの警告とかしか思えません。
0110デフォルトの名無しさん
05/02/04 01:01:18どうでもいい話題 > 何故この警告が抑制できないかって
0111デフォルトの名無しさん
05/02/04 21:56:18このサーバはsources.redhat.comも運用している。
ファイルシステムに問題があった模様で、現在復旧中。
0112デフォルトの名無しさん
05/02/04 22:08:36ガンガって復旧汁ぬぬぬ
0113デフォルトの名無しさん
05/02/04 23:25:28アンチGNU野郎に攻撃されたのかと思ったぞ。
0114デフォルトの名無しさん
05/02/05 22:20:380115デフォルトの名無しさん
05/02/06 09:57:19そんな謎のコードを生成するマクロ使うな
0116デフォルトの名無しさん
05/02/06 10:55:39書き方が良くないんでしょうか・・・
#define (a,b,c,func)
do {
foo(a,b);
bar(b,c);
if (func) {
func();
}
} while(0)
0117デフォルトの名無しさん
05/02/06 11:13:330118デフォルトの名無しさん
05/02/06 11:18:430119デフォルトの名無しさん
05/02/06 12:05:03かわりに何使えばいいでしょう??
0120デフォルトの名無しさん
05/02/06 12:19:120121デフォルトの名無しさん
05/02/06 12:21:37これなんの意味があるの?
0122デフォルトの名無しさん
05/02/06 12:24:40二つ以上の文をマクロにするとき do {} while(0) で囲うのが
普通と思っていたんですが、実は普通じゃなかったんでしょうか・・・
0123デフォルトの名無しさん
05/02/06 12:25:30func に相当する処理が不要になるケースがあるので、
その場合 NULL を与えればそこを飛ばせるように、という
意図なんですが・・・
0124デフォルトの名無しさん
05/02/06 12:27:12do..whileはbreakで抜けたい時だけですよ…
0125デフォルトの名無しさん
05/02/06 12:35:00C言語なら俺に聞け! Part 101
http://pc5.2ch.net/test/read.cgi/tech/1107128274/
0126デフォルトの名無しさん
05/02/06 13:04:33あ、そうですね 失礼しました
0127デフォルトの名無しさん
05/02/06 13:31:11セミコロンを要求する意図での使用は普通。
貴方は正しい。
0128デフォルトの名無しさん
05/02/06 14:27:50funcあり版となし版を用意する方が医院で内科医?
0129デフォルトの名無しさん
05/02/06 21:17:440130デフォルトの名無しさん
05/02/06 21:23:200131デフォルトの名無しさん
05/02/06 21:30:400132デフォルトの名無しさん
05/02/07 13:46:29いくらGCCが憎いからって・・・
0133デフォルトの名無しさん
05/02/07 17:28:23いつもやり方が同じなのが笑える
0134デフォルトの名無しさん
05/02/07 22:27:380135デフォルトの名無しさん
05/02/08 17:01:410136デフォルトの名無しさん
05/02/08 18:09:29フロントエンドなら GCC Frontend HOWTO があるが。
0137デフォルトの名無しさん
05/02/11 13:11:470138デフォルトの名無しさん
05/02/11 15:07:44上から 2 番目。
検索エンジンぐらい使えよ、ボケ。
0139デフォルトの名無しさん
05/02/18 04:23:380140デフォルトの名無しさん
05/02/22 13:38:49ttp://gcc.gnu.org/ml/gcc/2005-02/msg00079.html
0141デフォルトの名無しさん
05/02/22 16:10:09> Therefore, my current expectation for a GCC 4.0 release date is April 15th.
4/15に4.0リリース見込みか・・・まぁ伸びるだろうけど。
0142デフォルトの名無しさん
05/03/01 10:11:05http://gcc.gnu.org/gcc-4.1/changes.html
GCC 4.1 Projects
http://gcc.gnu.org/wiki/GCC%204.1%20Projects
What will be in 4.0
http://gcc.gnu.org/wiki/What%20will%20be%20in%204.0
0143デフォルトの名無しさん
05/03/01 15:33:5020050222でやるとgcc3とほとんど同じ速さになった。(FC3 )
4.1のx86_64がコンパイルできない。
crti.o がないといっておこられる。
x86_64用のcrti.asmがないんだけど。
0144デフォルトの名無しさん
05/03/01 15:40:49以下へ進め!
http://gcc.gnu.org/bugzilla/
0145デフォルトの名無しさん
05/03/01 17:53:13---ファイルここから---
--func.c--
#include <library1.h>
#ifdef BAR
#define FOO
#include <library2.h>
#endif
(以下略)
--library1.h
(略)
#include <library2.h>
(以下略)
--library2.h--
(略)
typedef _hoge hoge;
#ifdef FOO
struct _hoge {(構造体の中身:中略)
};
#endif
(以下略)
---ファイルここまで---
で、gcc -I(ライブラリヘッダファイルの場所) -DBAR -c fonc.c でコンパイルするようなfunc.cを
書くときに、func.cの中で構造体hogeは使用できるのがgccの仕様として正しいのでしょうか
それとも、できないのが正しいのでしょうか。
#実はgtk+-2.6.2 + ruby-gdkpixbuf2-0.11.0で上のようなところで
#hogeに対応する構造体が完全に定義されないためにエラーが出て困ってます。
#(cppを通してみたらstruct _hoge { }; の部分が出てこなかった。)
#gccはgentoo linuxの3.4.3.20050110というバージョンです。
0146デフォルトの名無しさん
05/03/01 18:18:51gcc かどうかって関係ないんでは。本当にこの通りだとすると、cpp の
出力に struct _hoge {...}; が含まれるでしょ?
0147デフォルトの名無しさん
05/03/01 18:29:00library2.hにインクルードガードが掛かってるとか?
0148145
05/03/01 21:25:18レスどうもです。いやぁ、マヌケかましてました。
>>146
>library2.hにインクルードガードが掛かってるとか?
まさにそれでした。
実際には
library1.h→gdk-pixbuf.h、library2.h→gdk-pixbuf-io.h、func.c→rbgdk-pixbuf-format.c
BAR→HAVE_GDK_PIXBUF_GDK_PIXBUF_IO_H、FOO→GDK_PIXBUF_ENABLE_BACKEND
hoge→GdkPixbufFormat
なのですが、gdk-pixbuf-io.hにしっかりインクルードガードがかかってました。
で、GDK_PIXBUF_ENALBE_BACKENDをdefineした後のgdk-pixbuf-io.hのインクルードは
ガードされてるので、_GdkPixbufFormatの定義ができないみたいです。
#gtk+-2.4から2.6バージョンが上がったときにgdk-pixbuf.h、gdk-pixbuf-io.h
#周りが変わって、gdk-pixbuf.hがgdk-pixbuf-io.hをインクルードするようになったっぽい。
ていうことは、gtk+-2.6じゃruby-gdkpixbuf2はコンパイルできないと言うことか...
#早く対応版をリリースして欲しいな...
0149デフォルトの名無しさん
05/03/02 11:17:080150デフォルトの名無しさん
05/03/02 16:54:34この場合の悪いやつとは誰?
1.Gtk+の開発者
2.ruby-gnome2の開発者
0151デフォルトの名無しさん
05/03/02 21:29:330152デフォルトの名無しさん
05/03/04 00:26:58バカはしゃしゃり出てこないように。
0153デフォルトの名無しさん
05/03/04 04:06:210154デフォルトの名無しさん
05/03/05 06:22:400155デフォルトの名無しさん
05/03/05 12:31:26みかか
gcc4の最適化が大分賢くなってきたね。gcc3.4より早くなるコードも出てきたよ。
0156デフォルトの名無しさん
05/03/05 12:45:170157デフォルトの名無しさん
05/03/05 14:30:52きそそ
じゃないの?
0158デフォルトの名無しさん
05/03/05 14:42:13ま、僕も試してるだけだけど、
そうはいっても、どのバージョンにも少しずつ問題あるしなー。
>>157
歳がばれますね。(お互いに)
0159デフォルトの名無しさん
05/03/05 15:59:000160デフォルトの名無しさん
05/03/05 16:07:260161デフォルトの名無しさん
05/03/05 16:25:22それとも、GCC BoundChecking patchみたいにデベロッパのデバッグ向け?
0162デフォルトの名無しさん
05/03/05 19:09:04遅くなるので、デバッグ以外の用途は厳しいような気がしますな。
0163デフォルトの名無しさん
05/03/05 21:44:220164デフォルトの名無しさん
05/03/06 02:15:30MLを見るに、現状だとboundscheckingパッチ並み(かそれ以上)に遅いようですけど、
4.0の正式リリース時までに改善されたりする予定はないんでしょうか?
HeapOverrun対応ってことで、IBMのよりヨサゲなんですけども。。
0165デフォルトの名無しさん
05/03/06 20:48:56因みに、私は22ですよ
(みかかは知ってるけど、確かPC雑誌で読んだ知識で、普通に使われてた時代はネットしてなかった)
確かに友達はみんな知らんなぁ
0166デフォルトの名無しさん
05/03/06 23:57:30そう簡単には速くならんと思う。
0167デフォルトの名無しさん
05/03/07 00:36:40がびーん、おじさんは俺だけか・・・
>>164
多少早くなるかもしれんけど、劇的に変わることはないんじゃないかな。
0168デフォルトの名無しさん
05/03/08 13:33:000169デフォルトの名無しさん
05/03/13 19:55:42http://pc5.2ch.net/test/read.cgi/tech/1110099763/584
から飛んできました。
584 :デフォルトの名無しさん :05/03/13 19:05:28
if (0 <=c && c<=127) とすると、コンパイラが
comparison is always true due to limited range of data type
と警告を出しました。コンパイラは gcc 3.3 です。
0170デフォルトの名無しさん
05/03/13 20:15:58元スレで結論は出てると思うが
0171デフォルトの名無しさん
05/03/13 22:21:41ありがとうございました。
0172デフォルトの名無しさん
05/03/14 06:00:42c <= 127 は >>169 の処理系では c <= CHAR_MAX と等価なので,
常に真になると警告してるような気がする。
CHAR_MAX は処理系定義なので CHAR_MAX が 128 以上に定義されてる
場合は警告は出ない鴨。
0173デフォルトの名無しさん
05/03/14 06:09:35元スレで結論が出てる話にいまさら「気がする」と書き込んでどうする。
ついでに言っておくが、 CHAR_MAX=255,CHAR_MIN=0 でも警告されるだろうな。
0174デフォルトの名無しさん
05/03/14 06:12:25CHAR_MAX=255の場合でも警告されるの?詳細希望。
0175174
05/03/14 06:16:000176デフォルトの名無しさん
05/03/14 20:50:240177デフォルトの名無しさん
05/03/14 23:28:020178デフォルトの名無しさん
05/03/15 00:27:33出力された警告の通りでしょ。疑問なんかなんにもないじゃん。
で?
0179デフォルトの名無しさん
05/03/15 01:18:440180デフォルトの名無しさん
05/03/15 01:20:340181デフォルトの名無しさん
05/03/15 01:25:510182マイク ◆yrBrqfF1Ew
05/03/15 03:09:300183デフォルトの名無しさん
05/03/15 03:14:130184デフォルトの名無しさん
05/03/15 03:24:36ウザイと感じるのはVCでいっぱいいっぱいの初心者。
警告に関して言えば、gccの優れた点の一つだと思う。
printf系の書式指定する出力関数の書式チェックをある程度やってくれるのも(・∀・)イイ!!
0185デフォルトの名無しさん
05/03/15 05:32:120186デフォルトの名無しさん
05/03/15 07:40:16ゲェーツェーツェー
0187デフォルトの名無しさん
05/03/15 23:28:31本当はげしし
0188デフォルトの名無しさん
05/03/16 01:19:23http://japan.cnet.com/news/ent/story/0,2000047623,20081333,00.htm
0189デフォルトの名無しさん
05/03/16 01:55:18げーしっく
0190デフォルトの名無しさん
05/03/16 02:55:020191デフォルトの名無しさん
05/03/16 10:21:46-O3 -mcpu=pentium3 -march=pentium3 -msse -mfpmath=sse -fomit-frame-pointer -fmove-all-movables -ftracer -fforce-addr -freduce-all-givs -fno-branch-count-reg -foptimize-register-move -fsched-spec-load
Pentium3でこんな感じで最適化オプションを設定してます。
0192デフォルトの名無しさん
05/03/16 10:30:22最適化オプションが「安全」って、どういうことよ?
0193デフォルトの名無しさん
05/03/16 11:25:590194デフォルトの名無しさん
05/03/16 11:40:170195デフォルトの名無しさん
05/03/16 13:12:45何も付けない。
0196デフォルトの名無しさん
05/03/16 15:16:16元からおかしくて、最適化で問題が露呈するケースが多いように思う。
0197デフォルトの名無しさん
05/03/16 15:50:46rmsは今でも現役です。
0198デフォルトの名無しさん
05/03/16 16:23:360199デフォルトの名無しさん
05/03/16 16:49:57大雑把にはコレ:
http://gcc.gnu.org/develop.html#timeline
細かいのは、gcc ML を読むしかない。
今はコレ:
http://gcc.gnu.org/ml/gcc/2005-03/msg00477.html
> the April 15th target for GCC 4.0
0200デフォルトの名無しさん
05/03/16 17:27:090201デフォルトの名無しさん
05/03/17 00:25:11確かに。
Strict aliasingのルールなんて、知ってる奴のほうが少ない。
0202デフォルトの名無しさん
05/03/17 16:42:53http://open64.sourceforge.net/
元はSGIのPro64というコンパイラで科学計算分野で使われていたらしい。GPL。
0203デフォルトの名無しさん
05/03/17 19:36:370204デフォルトの名無しさん
05/03/18 00:53:37ライブラリサーチバスを探してくれるオプションは何でしたっけ?
0205デフォルトの名無しさん
05/03/18 01:02:070206205
05/03/18 01:02:390207デフォルトの名無しさん
05/03/18 03:26:58よくわからんが、動的ライブラリにしたいのではなくて?
0208デフォルトの名無しさん
05/03/18 04:58:37-Rとか-rpathあたり。
0209デフォルトの名無しさん
05/03/18 12:12:00LD_PRELOAD
0210デフォルトの名無しさん
2005/03/22(火) 23:53:570211デフォルトの名無しさん
2005/03/22(火) 23:55:00なんかその読みは、gotoを多用しそうだなw
0212デフォルトの名無しさん
2005/03/26(土) 04:58:300213デフォルトの名無しさん
2005/03/26(土) 05:39:210214デフォルトの名無しさん
2005/03/29(火) 18:11:520215デフォルトの名無しさん
2005/03/29(火) 21:50:50ここで聞いても答えはないと思うぞ。
0216デフォルトの名無しさん
2005/03/30(水) 01:00:12Windowsコマンドラインでは滑らかに表示されるものが、
Linuxでは処理が完全に終わるまで表示されない。
例えば
for(i=0;i<100;i++) printf("\b%f%完了", hoge(i));
だれか解決方法わかりまつか?
0217デフォルトの名無しさん
2005/03/30(水) 01:05:330218デフォルトの名無しさん
2005/03/30(水) 01:51:10そういう問題じゃないです。
Linuxは処理が遅いからです。
0219デフォルトの名無しさん
2005/03/30(水) 01:54:440220デフォルトの名無しさん
2005/03/30(水) 02:05:50まあいいけど。
俺の、非常に狭く少ない過去の経験上、
Unix系(というかglibcだな)は、printf系は_IOLBF相当になっているみたい。
で、Win系(VC,BCC)では、標準出力がリダイレクトされてない場合は_IONBF
リダイレクトされている場合は_IOFBFのような気がした。
0221デフォルトの名無しさん
2005/03/30(水) 10:38:50こちらで聞きたいのですが、
gccでハイパースレッディングをフルに使う処理は、
どのように書けばいいのか、URLか本を教えてください
カーネルがHT有り無しで若干異なるようなので、
そういう書き方があるような感じがします。
並列プログラミング?
0222デフォルトの名無しさん
2005/03/30(水) 11:29:41コンパイラは無関係。ふつうにpthreadなりCreateThread()なりでマル
チスレッドのプログラムを書けばいいだけ。OSがHT対応してなければ、
もちろんHTは使えない。
0223デフォルトの名無しさん
2005/03/30(水) 12:11:46pthreadsプログラミング OREILY ISBN4-900900-66-4
0224デフォルトの名無しさん
2005/03/30(水) 12:27:05open()で/dev/stdoutとか開いてwriteで書けばよい。
ゆく〜り確実に文字がでてくるよ。
0225デフォルトの名無しさん
2005/03/30(水) 13:40:48>>223
thx!
0226デフォルトの名無しさん
2005/03/30(水) 15:12:57>>224で既出だけど、printfはバッファリングされるから
デバッグ出力なんかは fpritf(stdout, ... ) が常套手段。
0227デフォルトの名無しさん
2005/03/30(水) 15:19:140228デフォルトの名無しさん
2005/03/30(水) 15:26:56今更だが、スレ違い。
>>225
m9(^Д^)プギャー
特別に stderr はバッファリングされないので、それと勘違いしてないかい?
0229デフォルトの名無しさん
2005/03/30(水) 17:09:14m9(^Д^)プギャー
0230デフォルトの名無しさん
2005/03/30(水) 18:32:290231デフォルトの名無しさん
2005/03/30(水) 21:20:07fprintf も stdout に関してはバッファリングする処理系が多いと思うが。
stderr ならともかく。
0232デフォルトの名無しさん
2005/03/30(水) 21:28:360233デフォルトの名無しさん
2005/03/31(木) 10:58:120234デフォルトの名無しさん
2005/03/31(木) 11:46:50gccが入っていて普通に使えるようなら、他はとくに必要なものはない。
0235デフォルトの名無しさん
2005/03/31(木) 17:39:440236デフォルトの名無しさん
2005/03/31(木) 17:55:39胸があって普通に使えるようなら、他はとくに必要なものはない。
0237226
2005/03/31(木) 18:27:100238デフォルトの名無しさん
2005/03/31(木) 18:39:30関連スレ: http://pc8.2ch.net/test/read.cgi/tech/1086004120/
0239デフォルトの名無しさん
2005/03/31(木) 21:29:410240デフォルトの名無しさん
NGNGGCCのインストール方法を簡単に説明したサイトないでしょうか?
0241デフォルトの名無しさん
NGNG最初から入っている。
0242デフォルトの名無しさん
NGNG環境設定は、Linux板の該当ディストリスレで。
0243デフォルトの名無しさん
NGNG実行時間全体の30パーセントが _Unwind_SjLj_Unregister と _Unwind_SjLj_Register
というルーチンで消費されていました。
これはいったい何のためのルーチンなんでしょうか。
例外処理のためルーチンっぽい気もします。
冷害が発生したときのためにスタックをどこまで回復するか、
&どのデストラクタを呼び出すかを記録するための物なのでしょうか?
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNG30%ってことはマルチスレッドなんかね。
TLSへのアクセスのコストが大きいんじゃないかな。
gccのソースコードくらい展開しとくといいよ。
そしたらgrepすればすぐ見つかるから。unwind-sjlj.c。
0246デフォルトの名無しさん
NGNG0247240
NGNG本家のサイトにいって落してきたんですが、全部英語なもので。
日本語で説明してあるサイトなんてないんですかね。
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG例外ばかりでなく、デストラクタの巻き戻しにも関係しているので。
単体の関数呼び出しでは無視できるコストでも、
チリが積もれば山となって影響してくる。
デストラクタのチェインはリスト構造で、構造上キャッシュにも載りにくいから、
例外によるチェインを手繰る処理はかなり重くなる。
0250デフォルトの名無しさん
NGNGLinux+GCC上でWinのレジストリ操作みたいな事は
どうやって実現するのでしょうか?
自分で設定ファイル読み書きするのかなぁとは思っているのですけど。
0251デフォルトの名無しさん
NGNG環境変数か、パス決めうちが流儀らしい
Windowsから見れば全く馬鹿げてると思うだろうが
0252デフォルトの名無しさん
NGNGふつー設定ファイルを別に用意するが。システム共通の設定なら
/etc とか /usr/local/share あたり、個人設定ならホームディレクトリに
. から始まるファイル名 (.bashrc とかね)。
0253デフォルトの名無しさん
NGNG普通は/usr/local/shareに設定ファイルは置きません。
shareはアーキテクチャ独立なデータの置き場所。
/etcか/usr/local/etcかはたいした問題じゃなくて、
OS・パッケージングする配布者・個々の管理者によって流儀は異なりうるので
適当にどこか一箇所でマクロで定義しとけばいい。
もしくはautoconfを採用してconfigureの定義するマクロを使う。
0254250
NGNGとりあえず一番簡単そうな設定ファイル方式で行こうと思います。
(アプリのカレントにapp.iniを作成)
0255デフォルトの名無しさん
NGNGよりによって一番おバカな方式にフォールバックするのは何故だろう。
0256デフォルトの名無しさん
NGNGお粗末なOSがあることが驚き
0257デフォルトの名無しさん
NGNGUnixスレだっけ?
ファイルのpathが一意に決まらないからとか、いろいろ言われてたの。
まあ、結局どんな方式でも一長一短なんだけど
それぞれの環境の流儀に従うのがベターだとは思う。
だからと言って、Win版apacheがhttpd.confを使わないでレジストリ設定になったら嫌だし
かといって、httpd.confが/WINNT/???/に作られるのもすごく嫌だけど。
0258デフォルトの名無しさん
NGNG(諸般の事情で)移動させたら再コンパイルなんてアホくさ杉
これを譲ったとしても
>>256 のいうように悩まなければならない、というのはどうかしてるよね
お仕着せでも、ちょっと使いにくくても、
標準の方法やガイドラインがあるほうがマシ。
0259デフォルトの名無しさん
NGNGコマンドラインオプションで何でも決めるUnix文化にとって、
設定ファイルをどうするかなどということは瑣末な問題でしかない。
それでも、autoconfなりXtのリソースなり、ガイドラインはあるわけだが。
0260デフォルトの名無しさん
NGNGそこでシンボリックリンクですよ。
> >>256 のいうように悩まなければならない、というのはどうかしてるよね
まぁ、標準化団体があってないようなものだからねぇ。ただ、現実問題として
それで困ったことはない。
0261デフォルトの名無しさん
NGNG暴れるので、ネタじゃないならUNIX板で尋ねるのがよろしい。
0262デフォルトの名無しさん
NGNG判らないなら黙ってろって。邪魔だから。
0263デフォルトの名無しさん
2005/04/02(土) 19:35:440264デフォルトの名無しさん
2005/04/02(土) 23:21:310265デフォルトの名無しさん
2005/04/02(土) 23:43:27> まぁ、標準化団体があってないようなもの
*BSDは知らんがLSBにがんばってもらうか
ISOにもsubmitしたらしいし。
0266デフォルトの名無しさん
2005/04/03(日) 01:01:07本スレはUNIX/Linux板のプログラミングスレ、GNOME/KDEスレなど。
0267デフォルトの名無しさん
2005/04/03(日) 02:45:11> 普通は/usr/local/shareに設定ファイルは置きません。
おれも share の下に設定ファイルを置くのはどうかと思うが、
意外と多いよ。有名どころのソフトだと vim とか tex あたり。
0268デフォルトの名無しさん
2005/04/03(日) 03:11:44tex周辺ツールの設定ファイルもカオスの中に叩き込まれるのは参る。
vimはetcに置かない理由がさっぱりわからない例だと思う。
0269デフォルトの名無しさん
2005/04/03(日) 05:11:29/etc/{texmf,vim}
0270デフォルトの名無しさん
2005/04/03(日) 08:26:02> 意外と多いよ。有名どころのソフトだと vim とか tex あたり。
vimは使ってないから良く知らないけど、tetexみたいにOSとは関係の薄いコマ
ンド群のパッケージの場合、それはもうそれでひとつの独立した世界を作って
る訳で、そういう場合に/usr/share/texmf/COMMAND_NAME/config/に設定ファ
イルがあるのは別に構わないんじゃないかと思う。
/etc/の下にはむしろシステム全体にかかわるような設定にだけ集中してもらいたい。
>>268
> tex周辺ツールの設定ファイルもカオスの中に叩き込まれるのは参る。
カオスってほどじゃないと思うのだが。場所は/usr/shate/texmf/COMMAND_NAME/config/
って決まってるし、COMMAND_NAME={dvipdfm|dvips|xdvi|...}だし。
0271デフォルトの名無しさん
2005/04/03(日) 08:45:09>/etc/の下にはむしろシステム全体にかかわるような設定にだけ集中してもらいたい。
ハゲ同。
>>254
ユーザーが使うアプリなら ~/.appnamerc or ~/.appname/* が基本だと思う。
0272デフォルトの名無しさん
2005/04/03(日) 15:33:18http://d.hatena.ne.jp/higepon/20050226#1106913960 嫁
0273デフォルトの名無しさん
2005/04/03(日) 20:27:480274デフォルトの名無しさん
2005/04/04(月) 01:06:46GCC4.0ってどうなったん?
てかgdcを標準パッケージにいれてくれないのかなぁ。
0275ヽ(´ー`)ノ ◆.ogCuANUcE
2005/04/04(月) 13:54:17>>199
ちょっと前のレスぐらい嫁。
で、ML の方見たら、
http://gcc.gnu.org/ml/gcc/2005-03/msg01077.html
> I'm still shooting for an April 15th release. As I indicated
> previously, please do not mark any new non-critical regressions with
> the 4.0 target milestone; use 4.0.1 instead.
…だと。
> てかgdcを標準パッケージにいれてくれないのかなぁ。
需要が…(;´Д`)
0276デフォルトの名無しさん
2005/04/04(月) 15:36:170277ヽ(´ー`)ノ ◆.ogCuANUcE
2005/04/04(月) 15:58:52そういうのは SuSE スレに…。
普通、ディストリが提供しているパッケージ以外の方法でインスコするものは、
./configure --prefix=/usr/local とかで入れるものだ。
上書きすると何か問題あった時に元に戻せなくなるか、すげー苦労するぞ。
0278デフォルトの名無しさん
2005/04/04(月) 16:15:42> 上書きすると何か問題あった時に元に戻せなくなるか、すげー苦労するぞ。
別に苦労なんかしないでしょ。上書きがあるかどうかのチェックなんて「ディ
ストリが提供しているパッケージディストリが提供しているパッケージ」で簡
単にチェックできる訳だし、チェックできなかったらパッケージングシステム
使ってる意味ないし。
0279デフォルトの名無しさん
2005/04/04(月) 21:31:000280デフォルトの名無しさん
2005/04/04(月) 21:55:070281ヽ(´ー`)ノ ◆.ogCuANUcE
2005/04/05(火) 13:20:31s/すげー/不必要な/ で。
俺は libc 上書きしてパッケージどころか ls も使えなくなったことはあるけど(笑)。
そういや、FC4 Test 1 にはメインで gcc-4.0 入ってるんだな。
特に不具合とかは無いのだろうか…。
0282デフォルトの名無しさん
2005/04/05(火) 16:36:42人柱になっていただくのですよ。
よさげならリリース後に入れる。
阿鼻叫喚なら4.0.1か4.0.2まで待つと。
0283デフォルトの名無しさん
2005/04/06(水) 00:16:540284デフォルトの名無しさん
2005/04/07(木) 00:49:300285デフォルトの名無しさん
2005/04/07(木) 14:04:19486でも短いプロラムなら一瞬で終わった
0286デフォルトの名無しさん
2005/04/07(木) 14:47:230287ヽ(´ー`)ノ ◆.ogCuANUcE
2005/04/07(木) 14:56:10スレ違い。
Autoconf,Automakeについて
http://pc5.2ch.net/test/read.cgi/unix/1018470294/l50
0288デフォルトの名無しさん
2005/04/07(木) 20:31:21スレ違い。
自治,誘導について
http://pie.bbspink.com/test/read.cgi/leaf/1094979415/
0289デフォルトの名無しさん
2005/04/09(土) 00:47:08そらあたりまえ。
0290デフォルトの名無しさん
2005/04/09(土) 06:49:18スレ違い。
馬鹿の相手をする,馬鹿について
http://academy3.2ch.net/test/read.cgi/whis/1089643058/
0291デフォルトの名無しさん
2005/04/11(月) 12:19:20http://gcc.gnu.org/ml/gcc/2005-04/msg00479.html
0292デフォルトの名無しさん
2005/04/14(木) 23:25:40http://gcc.gnu.org/ml/gcc/2005-04/msg00613.html
0293デフォルトの名無しさん
2005/04/14(木) 23:28:030294デフォルトの名無しさん
2005/04/15(金) 13:57:170295デフォルトの名無しさん
2005/04/16(土) 18:39:100296デフォルトの名無しさん
2005/04/16(土) 21:06:09スレ違い
アセンブラ… (´・∀・`)ヘー
http://pc8.2ch.net/test/read.cgi/tech/1101390110/
0297デフォルトの名無しさん
2005/04/19(火) 12:43:07皮肉にも、Win のフリーソフトではレジストリを
使わないものが歓迎される傾向がある。
プログラム本体と同じフォルダ (=ディレクトリ) に
.ini ファイルを作るタイプのものが主流。
容易に設定を移行できるメリットがある。
自前での設定ファイルの書き換えも楽。
Win2000/XP にも、ユーザーごとのフォルダは用意されるので
ユーザーごとに .ini ファイルを用意することも可能。
0298デフォルトの名無しさん
2005/04/19(火) 13:18:37http://gcc.gnu.org/ml/gcc/2005-04/msg00994.html
0299デフォルトの名無しさん
2005/04/19(火) 19:19:58スレ違い。
お前ら理由を言え!何故、非常駐、非レジストリなのか?
http://pc8.2ch.net/test/read.cgi/win/1099188855/
0300デフォルトの名無しさん
2005/04/22(金) 11:04:29http://gcc.gnu.org/gcc-4.0/
0301デフォルトの名無しさん
2005/04/22(金) 11:31:25評価するぞ
時間ないけど
0302デフォルトの名無しさん
2005/04/22(金) 13:14:02この後、環境変数などを設定したいのですが、どこに何を書けばよいのでしょうか。
OSはfedora core3です。
0303デフォルトの名無しさん
2005/04/22(金) 13:31:27何を設定したいんだ?
0304デフォルトの名無しさん
2005/04/22(金) 13:44:310305デフォルトの名無しさん
2005/04/22(金) 15:12:16スレ違い。
Fedora Core 総合スレッド Part 12
http://pc8.2ch.net/test/read.cgi/linux/1113138775/
0306デフォルトの名無しさん
2005/04/22(金) 15:20:34インストールしたのにgcc -vでバージョン見ると古いままなんです。
0307デフォルトの名無しさん
2005/04/22(金) 15:51:08$ /usr/local/bin/gcc -v
を実行して納得が逝かなかったら質問し直せ
0308デフォルトの名無しさん
2005/04/22(金) 15:55:15パスをそこに通せばよいということですか?
0309デフォルトの名無しさん
2005/04/22(金) 17:42:31単に gcc -v ってやってると、/usr/local/bin/gcc じゃないところの gcc が実行されてるんじゃないのかい?
って話だと思われ
0310309
2005/04/22(金) 17:45:30んで、二行目の $ /usr/local/bin/gcc -v を実行せよってのが、/usr/local/bin/ にインストールしたと思ったけど
できてないんでないかい?
ということだと思われ
0311デフォルトの名無しさん
2005/04/22(金) 21:05:24個人的には、後者のほうが手軽でいいと思うけど。。
0312デフォルトの名無しさん
2005/04/23(土) 01:02:01もうお前ね、4.0.0試すなんて十年早いよと。
0313デフォルトの名無しさん
2005/04/23(土) 05:36:550314デフォルトの名無しさん
2005/04/23(土) 06:40:38alias g++='/usr/local/bin/g++'
としてg++ -vとするとうまくいきました。また、g++を使ったコンパイルもうまくいきました。しかし、コンパイルされたファイルを実行しようとすると
./a.out: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
というエラーが出て実行できません。何がいけないのでしょうか。libstdc++.so.6が存在しないというのはわかるのですが、解決方法がわかりません。
0315デフォルトの名無しさん
2005/04/23(土) 12:09:350316311
2005/04/23(土) 12:30:44つttp://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#2_6
つttp://gcc.gnu.org/onlinedocs/libstdc++/install.html#usage
0317デフォルトの名無しさん
2005/04/23(土) 18:07:25makeしたらエラー出るんだが、何がいけないのかな?
make[1]: *** No rule to make target `../include/ansidecl.h', needed by `regex.o'. Stop.
0318デフォルトの名無しさん
2005/04/23(土) 18:32:030319デフォルトの名無しさん
2005/04/23(土) 18:35:040320デフォルトの名無しさん
2005/04/24(日) 01:42:05GPLに従って全部ソースコードを公開しなくてはならない。
0321デフォルトの名無しさん
2005/04/24(日) 01:48:59「使って作った」が「ソースを流用して作った」と言う意味なら、当たり前。
0322デフォルトの名無しさん
2005/04/24(日) 12:31:24最近重くて再生が追いつかないのあるし。
Intelのコンパイラと比べて速くなる?
0323デフォルトの名無しさん
2005/04/24(日) 13:42:050324デフォルトの名無しさん
2005/04/24(日) 16:04:05gcc -S -masm=intel
の結果がnasmで読めないなんちゃってintel形式なのは直ってないのね_| ̄|○
0325デフォルトの名無しさん
2005/04/24(日) 17:02:530326デフォルトの名無しさん
2005/04/24(日) 17:56:01% make
........
config.status: executing default-1 commands
./config.status: line 910: ./../../config-ml.in: No such file or directory
make: *** [configure-zlib] Error 1
これは何?
0327デフォルトの名無しさん
2005/04/24(日) 18:01:280328デフォルトの名無しさん
2005/04/24(日) 18:43:54% cd ./gcc-4.0.0
% configure
としてしまった。build 用の directory を用意する必要があった。
0329デフォルトの名無しさん
2005/04/24(日) 21:03:290330デフォルトの名無しさん
2005/04/28(木) 01:18:12gcc -Wall で、switch case のcaseに列挙を使ったとき、
列挙型のすべての要素を並べてないと警告が出る、という機能があって、
でも、このはdefault節が付いてると抑止されるらしい。
マニュアルにはそう書いてあるし、実際の動きもそうなってる。
(The presence of a default label prevents this waring.)
これって昔からこうだったっけ?
昔は、defaultがあろうがなかろうが警告が出てたような気がするんだけど...
(気がするだけかもしれん)
ていうか領域破壊とかでとんでもない値が入っていることを検出するためには
defaultは必須なんだから、defaultつけて抑止されたんじゃ使い物に
ならないんだけど。
defaultの有無に関わらず怒ってくれるオプションとかあったら、
教えてくださいませ。よろしくお願いいたします。
うちのgccのバージョンは以下の通りだす。
2.95.3 20010315(release)
0331デフォルトの名無しさん
2005/04/28(木) 01:49:58(-Wallには含まれていないようだ)
typedef enum {
HOGE_1,
HOGE_2,
HOGE_3
} hoge_t;
int test(hoge_t h) {
switch (h) {
case HOGE_1:
return 0;
case HOGE_2:
return 3;
default:
return -1;
}
}
> cc -Wswitch-enum -c aa.c
aa.c: In function `test':
aa.c:15: warning: enumeration value `HOGE_3' not handled in switch
0332デフォルトの名無しさん
2005/04/28(木) 02:40:220333デフォルトの名無しさん
2005/04/28(木) 16:14:44http://gcc.gnu.org/ml/gcc/2003-07/msg00998.html
http://gcc.gnu.org/ml/gcc-bugs/2004-08/msg00620.html
0334デフォルトの名無しさん
2005/04/28(木) 22:29:380335デフォルトの名無しさん
2005/04/28(木) 22:35:57gcc -R15 moemoe.c とか..
0336デフォルトの名無しさん
2005/04/28(木) 22:38:400337デフォルトの名無しさん
2005/04/28(木) 22:43:47板違い。
0338デフォルトの名無しさん
2005/04/28(木) 22:45:36スレ違い。
萌えるオプションについて
http://pie.bbspink.com/test/read.cgi/leaf/1094979415/
0339デフォルトの名無しさん
2005/04/28(木) 22:46:54スレ違い。
「コンパイラ・スクリプトエンジン」相談室5
http://pc8.2ch.net/test/read.cgi/tech/1106129164/
0340デフォルトの名無しさん
2005/04/28(木) 22:47:19target指定してれば使ってくれる
0341デフォルトの名無しさん
2005/04/28(木) 23:09:090342デフォルトの名無しさん
2005/04/29(金) 12:07:23了解です。うちで今使ってるgccが古過ぎるんですね。
大昔に入れたっきりのVineに付いてきた奴だからなあ。
情報ありがとうございました。ver.upしよう…
0343デフォルトの名無しさん
2005/04/29(金) 17:42:230344デフォルトの名無しさん
2005/04/30(土) 04:55:32勘で言うけど普通逆じゃね?
速い代わりに不正確なんでしょ?
0345デフォルトの名無しさん
2005/04/30(土) 13:13:45勘で言うけど激しく同意
0346デフォルトの名無しさん
2005/04/30(土) 13:21:050347デフォルトの名無しさん
2005/04/30(土) 13:42:18そうだとしたら、それをなんでわざわざオプションにしてるワケ?
0348デフォルトの名無しさん
2005/04/30(土) 15:52:000349デフォルトの名無しさん
2005/04/30(土) 16:05:360350デフォルトの名無しさん
2005/04/30(土) 18:56:430351デフォルトの名無しさん
2005/04/30(土) 19:12:470352デフォルトの名無しさん
2005/04/30(土) 20:28:24バグかどうかは仕様とセットでないと判断できんが。IEEE745 を仕様とするなら
-ffast-math は使っちゃダメ。
0353デフォルトの名無しさん
2005/04/30(土) 23:32:50VC6とgcc -ffast-mathの実行速度がほとんど同じなんだよなあ。
VC6はどうなっているのか…
0354デフォルトの名無しさん
2005/05/01(日) 02:52:540355デフォルトの名無しさん
2005/05/01(日) 20:57:50不定や未定義のコードに対して警告を出さないのですか?
0356デフォルトの名無しさん
2005/05/01(日) 21:07:21おまえを含む全員が、コードを書いていないからだ。
0357デフォルトの名無しさん
2005/05/01(日) 21:07:29>GNUが低品質なのはconfigureと無関係ではないだろう。
0358デフォルトの名無しさん
2005/05/01(日) 21:39:190359デフォルトの名無しさん
2005/05/01(日) 23:07:27Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.4.2 [FreeBSD] 20040728
にて下記のコードを書くと、
0360デフォルトの名無しさん
2005/05/01(日) 23:07:58#include <iostream>
using namespace std;
void func ( int n, int array[n][n] )
{
for ( int i = 0; i < n; i++ )
{
for ( int j = 0; m < 10; j++ )
{
cout << array[i][j] << " ";
};
cout << "\n";
};
};
int main ( int argc, void* argv[] )
{
int array[10][10];
for ( int i = 0; i < 10; i++ )
{
for ( int j = 0; j < 10; j++ )
{
array[i][j] = i + j;
};
};
func ( 10, array );
return 0;
};
0361デフォルトの名無しさん
2005/05/01(日) 23:08:21> make
g++ -Wall main.cpp -c
main.cpp:4: error: `n' was not declared in this scope
main.cpp:4: error: `n' was not declared in this scope
main.cpp: In function `void func(int)':
main.cpp:10: error: `array' undeclared (first use this function)
main.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.)
main.cpp: In function `int main(int, void**)':
main.cpp:5: error: too many arguments to function `void func(int)'
main.cpp:28: error: at this point in file
*** Error code 1
0362デフォルトの名無しさん
2005/05/01(日) 23:10:13ヒント:4行目
0363デフォルトの名無しさん
2005/05/01(日) 23:10:27要するにg++で可変長配列を関数引数として渡したいだけなのですが。
gccの拡張機能でこの書式でできるはず。
参考:http://seclan.dll.jp/c99d/c99d04.htm
0364デフォルトの名無しさん
2005/05/01(日) 23:11:14関数の引数宣言で他の引数を使うことはできないよ。
あと、GCC関係なくてスレ違いだから、普通にCスレいきな。
0365デフォルトの名無しさん
2005/05/01(日) 23:16:300366デフォルトの名無しさん
2005/05/01(日) 23:19:05c99 modeなら可能だが、c++では駄目
0367デフォルトの名無しさん
2005/05/01(日) 23:23:02とりあえず
4行目int array[n][n]をint *array
8行目for ( int j = 0; m < 10; j++ ) を( int j = 0; j < n; j++ )
10行目cout << array[i][j] << " "; をcout << array[i+n*j] << " ";
かな.....あとは大きいお友達に聞いてくれ。
0368359
2005/05/02(月) 08:40:41サンクス。あなたが正解。他の人は間違い。
C99でできる機能は全てC++(というかg++)でできると思ってた。
g++だと無理なのね。
gcc用に書き直したらうまくいった(使う気はないが)。
素直にクラスを使えってことですかね?
0369デフォルトの名無しさん
2005/05/02(月) 09:07:24言う前提があるように見える。
仕方がないことだ。
0370デフォルトの名無しさん
2005/05/02(月) 10:54:21他の人は間違ってないよ
提示された条件であればむしろ他の人のが正しい
言ってる意味わかる?
0371デフォルトの名無しさん
2005/05/02(月) 11:04:57>>366が的確な答えだろう。
他も間違ってはいないが的外れ。
0372デフォルトの名無しさん
2005/05/02(月) 11:06:050373デフォルトの名無しさん
2005/05/02(月) 11:10:410374デフォルトの名無しさん
2005/05/02(月) 15:38:24GCCについて part5:373: warning: `#pragma golden_week on' is obsolete
( ・_ゝ・)ツマンネ
0375デフォルトの名無しさん
2005/05/02(月) 15:44:46その後に誘導されるならいいけど。
C言語なら俺に聞け! Part 106
http://pc8.2ch.net/test/read.cgi/tech/1113102515/
C++相談室 part40
http://pc8.2ch.net/test/read.cgi/tech/1113408957/
0376デフォルトの名無しさん
2005/05/04(水) 04:13:35http://gcc.gnu.org/ml/gcc/2005-04/msg01745.html
0377デフォルトの名無しさん
2005/05/08(日) 05:42:08リンク時に無名名前空間の中の参照変数が多重定義になってしまう。
PR/10591なんだけど、ずっと放置されてるなあ。そろそろなおしてくれないかなあ。
0378デフォルトの名無しさん
2005/05/13(金) 20:58:34http://gcc.gnu.org/ml/gcc-patches/2003-12/msg00505.html
0379デフォルトの名無しさん
2005/05/14(土) 19:57:590380デフォルトの名無しさん
2005/05/14(土) 20:03:16info gcc
うちでは
3.8 Options to Request or Suppress Warnings
に書いてある。
0381デフォルトの名無しさん
2005/05/23(月) 13:12:18OSはsuse9.2です。Yastしか使ったことがありません。
また最適化のためのconfigureおぷしょんも教えてください。
0382デフォルトの名無しさん
2005/05/23(月) 13:14:26SuSE のことなんか知ったこっちゃねーので、SuSE スレに行ってください。
0383デフォルトの名無しさん
2005/05/23(月) 13:46:30http://gcc.gnu.org/install/configure.html
0384デフォルトの名無しさん
2005/05/24(火) 10:23:530385デフォルトの名無しさん
2005/05/24(火) 10:31:17aliasでも使えば?
0386デフォルトの名無しさん
2005/05/24(火) 12:48:060387デフォルトの名無しさん
2005/05/24(火) 17:33:34Javaの例外みたいに、例外を投げる関数を
try/catch していないときに、警告を出すように
するオプションってありますか?
0388デフォルトの名無しさん
2005/05/24(火) 22:21:21で表引き法で処理するオプションってありますか?
0389デフォルトの名無しさん
2005/05/25(水) 00:27:430390デフォルトの名無しさん
2005/05/25(水) 00:36:34configure のオプションには関係しそうなのがあるな。
最近はデフォルトで sjlj に依らない実装のはずだが。
0391デフォルトの名無しさん
2005/05/25(水) 02:17:25g++の例外処理が重たいのは、どちらかというとデストラクタ巻き戻しに起因するC++自身の問題ではないかと思われ。
多少オプションいじったくらいじゃ、ほとんど改善しないよ。
0392デフォルトの名無しさん
2005/05/25(水) 06:59:11皆様ありがとうございます。
調べてみます。
>>391
そうでしたか。
簡易DBMSを作っていたのですが,呼び出し回数の多い処理で例外を使うのを
止めたところ5倍くらい速度があがったので、例外処理を高速化すれば
もっと性能があがるかもと思ってました(profileをとるとsjlj…unwind系の関数が上位に
きてます。)
0393デフォルトの名無しさん
2005/05/25(水) 15:14:250394デフォルトの名無しさん
2005/05/25(水) 15:34:25内容にも拠るけど、ここでもいいんでない?
makeが絡むならこっちとか。
make makes many problems
http://pc8.2ch.net/test/read.cgi/tech/1029599472/
環境が絡むなら該当環境板の方がいいかもしれないけど。
0395デフォルトの名無しさん
2005/05/25(水) 15:39:54あ、いえ、リンカーのセグメントなどの指示をするロードスクリプトファイル(?)の
質問になります。
ここでも良いでしょうか?
0396デフォルトの名無しさん
2005/05/25(水) 15:48:230397デフォルトの名無しさん
2005/05/25(水) 16:09:18私はGCC環境は初めてです。ARMプロセッサのプログラムをGCC開発環境で
組もうとしています。趣味の用途での開発です。
ARMプロセッサには(フラッシュ)ROM領域やRAM領域があるため、リンカにてその辺のセグメント指示をしなくてはなりません。
そこで、リンカについてttp://www.gnuarm.com/にあった、リンカの説明書で勉強したり、いろいろなサイトで勉強をしました。
実際のサンプルとして、あるサイトにあったロードスクリプトファイルをみました。
そこで質問なのですが、その中のセグメント指定欄に、*(.rodata)などの記述がありました。
このrodataとは何なのでしょうか?
0398デフォルトの名無しさん
2005/05/25(水) 16:22:46ttp://pc8.2ch.net/test/read.cgi/tech/1033403294/
こういうスレもあるよ。
0399デフォルトの名無しさん
2005/05/25(水) 16:34:400400デフォルトの名無しさん
2005/05/25(水) 16:48:18あ、ほんとだ。定数を記述した状態で*(.rodata)記述をとってリンクするとエラーになります。
ありがとうございました。
もしかすると基本的なことなのかな?
さすがに.textあたりは知っていたのですが、.rodataとか、他にも.glue_7とかありまして。
この辺の勉強をするのにおすすめのサイトや本はありませんか?
いろいろぐぐってみたのですが、みつかりませんでした。
0401デフォルトの名無しさん
2005/05/26(木) 13:05:46>>398から得られるリンク先情報、およびld(binutil)のinfoぜんぶ。
0402デフォルトの名無しさん
2005/05/30(月) 22:32:33int a;
short b = a;
のような明示的でないダウンサイズへ対する警告を出力するオプションはないんでしょうか?
0403デフォルトの名無しさん
2005/05/31(火) 09:15:240404402
2005/05/31(火) 12:09:130405デフォルトの名無しさん
2005/05/31(火) 13:11:300406デフォルトの名無しさん
2005/05/31(火) 18:07:020407404
2005/05/31(火) 18:32:11の間違いです...
0408デフォルトの名無しさん
2005/05/31(火) 18:42:370409デフォルトの名無しさん
2005/05/31(火) 18:46:370410デフォルトの名無しさん
2005/05/31(火) 21:15:01ひとつひとつそれらしいオプションをつけてやらないとだめ。
0411デフォルトの名無しさん
2005/05/31(火) 23:36:55っつーかオプション一覧眺めてるだけで1時間使った。
オプション多杉。
0412404
2005/06/01(水) 12:36:01お手数おかけしております。
自分もそれらしいを、色々試したりしたんですが、見つかりませんでした。
ひょっとして、ないんですかね...
0413412
2005/06/01(水) 12:37:44○ 自分もそれらしいのを
また、間違えた...
0414デフォルトの名無しさん
2005/06/03(金) 11:45:48使用するマシンにかかわらず、16ビットの整数型を使いたい場合どうすればよいのでしょうか?
0415デフォルトの名無しさん
2005/06/03(金) 11:51:110416デフォルトの名無しさん
2005/06/03(金) 12:00:41#include <stdint.h>
int16_t var;
0417デフォルトの名無しさん
2005/06/04(土) 17:15:09おまいら、しっかりしろよ!
厳密にソースチェックしたい場合はな、 lint 使うんだよ。
splint 入れとけや。
0418デフォルトの名無しさん
2005/06/04(土) 20:28:50すっかり忘れてたぃあはははは。
ぬるぽ。
0419デフォルトの名無しさん
2005/06/04(土) 20:48:500420デフォルトの名無しさん
2005/06/04(土) 22:11:510421デフォルトの名無しさん
2005/06/07(火) 09:50:38m64を指定しないと64ビットコードを生成してくれないのでしょうか?
0422デフォルトの名無しさん
2005/06/07(火) 10:53:44SUSE特有の問題だろうから、Linux板で聞いた方がいいと思うよ。
FreeBSD/amd64もNetBSD/amd64も、何も指定しなくても64ビットコード
になる。
0423デフォルトの名無しさん
2005/06/07(火) 14:10:43using namespace std;
int func(char *s){
if(s[0] == NULL){return 1;}
return 0;
}
というコードをg++ -c *.ccでコンパイルすると「計算中にヌルが使われた」という警告が出ます。
char == NULL と言う書き方がbcc32では出来たのだけど
g++ではこの条件文をどう書けば良いのでしょうか?
0424デフォルトの名無しさん
2005/06/07(火) 14:12:300425デフォルトの名無しさん
2005/06/07(火) 14:24:10ありがとう。
0426デフォルトの名無しさん
2005/06/07(火) 14:59:57このバグって修正されましたか?
0427デフォルトの名無しさん
2005/06/07(火) 15:15:15試したことないけど、gcc-3.4 の -finput-charset で上手くいかないかな。
0428デフォルトの名無しさん
2005/06/07(火) 17:20:40いきませんね。
というより、-finput-charsetがないんですが。
version 3.4.1
0429デフォルトの名無しさん
2005/06/07(火) 18:04:19そうか。まあガンバレ。
0430デフォルトの名無しさん
2005/06/07(火) 18:23:020431デフォルトの名無しさん
2005/06/07(火) 22:01:41http://gcc.gnu.org/gcc-3.4/changes.html
ここに挙がってるのは嘘か?
0432デフォルトの名無しさん
2005/06/07(火) 23:31:45>char == NULL と言う書き方がbcc32では出来たのだけど
やるなヴォケ
0433デフォルトの名無しさん
2005/06/08(水) 00:47:40禿同
0434423
2005/06/08(水) 07:18:11何故?
レベルの高そうな作者のWEBサイトのサンプルコードで==NULLとか!=NULLを見かけたので
疑う事なく使ってました。
0435デフォルトの名無しさん
2005/06/08(水) 08:11:30ポインタ以外をNULLと比較するのは間違い。
0436デフォルトの名無しさん
2005/06/08(水) 09:29:00NULL をポインタ以外に「入れられるかどうか」はこの際全く問題じゃない。
ポインタ以外に NULL 入れてる奴は、根本的に NULL がわかってない勉強不足の人。
もっとも、最近じゃ NULL = 0 が言語仕様として確定したから、
普通はマクロ使われてる NULL 自体を 0 で書く人も増えてるらしいが。
0437デフォルトの名無しさん
2005/06/08(水) 09:48:35NULL=0 になったの?
NULL==0 が真というのは大昔から決まってたことだけど。
0438デフォルトの名無しさん
2005/06/08(水) 10:18:15なったはずだよ。
C99からかもだけど。
0439デフォルトの名無しさん
2005/06/08(水) 10:20:37おいおい、誰がそんなこと決めたんだよ(w
> ポインタ以外に NULL 入れてる奴は、根本的に NULL がわかってない勉強不足の人。
どう見ても、お前もわかってるようには見えないんだが。
0440デフォルトの名無しさん
2005/06/08(水) 10:22:19NULLをポインタ以外に入れるなんて、タンポンをアナルに突っ込むくらい使い道が違うぞ。
0441デフォルトの名無しさん
2005/06/08(水) 10:30:440442デフォルトの名無しさん
2005/06/08(水) 10:37:330443デフォルトの名無しさん
2005/06/08(水) 10:58:32436の言うとおり、C言語では今でも
NULL == ( (void*) 0 )
ただしC++は NULL == 0
C、C++とも文字列終端文字は'\0'
0 != NULL != '\0'
MSのドキュメントが文字列終端をあらわすのにNULLをつかってるのは、
VC++の言語使用。
世の中の入門書はVC++関係が多いので結構勘違いしてる人が多い。
ただ、素で間違ってる著者も結構いる。
あと、
int == 4byte
char == signed char
1byte == 8bit
こういうのが常識だと思ってると、場合によっては痛い目みる。
0444デフォルトの名無しさん
2005/06/08(水) 11:13:46マジスカ!?
そんなスカポな真似してるのか、MSは…
0445デフォルトの名無しさん
2005/06/08(水) 11:15:30MSのやつはオリジナルのドキュメントが "null terminated" と書いているところを、
日本語に訳す段階で「NULLで終わる」と間違えたもの。言語仕様ではない。
0446デフォルトの名無しさん
2005/06/08(水) 11:17:52C99では数値の0もNULLポインタ。int *p = 0; int *q = NULL; なら p == q は常に真。
さらに'\0'の値はゼロ(0)と決まってるので char c = '\0'; なら c == 0 も常に真。
0447443
2005/06/08(水) 11:20:00アドレスポインタが無効であることを表す値であって、
文字列終端文字ではないってこと。
0448デフォルトの名無しさん
2005/06/08(水) 11:34:08("C guarantees that zero is never a valid address for data")
文字列終端文字'\0'の値もゼロに決まってる。
("the null character, whose value is zero")
"NULL"も"'\0'"も値ゼロを示す単なるニモニック。
NULLはポインタ、'\0'は文字列終端用に定義されてるけれど、別の文脈で値ゼ
ロを示すために使うのが禁じられてる訳じゃない。
0449デフォルトの名無しさん
2005/06/08(水) 11:43:22どこからの引用かと思ったら、K&Rかよ。
いいからCFAQ読んでこい。
0450デフォルトの名無しさん
2005/06/08(水) 11:53:27そのCFAQでも「キャストの付いていないNULLはキャストの付いていない0と同
等である」ってはっきりと明示されてますが、何か?「NULLを使うことは (0
を使うのと違って)、ポインターが関係していることの親切な注意書きでしか
ない」とまで書かれてるし。そもそもCFAQのReferencesにはK&R1、2が使われ
てるんだけど。
0451デフォルトの名無しさん
2005/06/08(水) 12:09:48よく読め。
「キャストの付いていないNULLはキャストの付いていない0と同等である」
のすぐ後に続いて、
「NULLはポインターとしてのみ使うべきである。」
と書いてあるだろう。
「ポインターが関係していることの親切な注意書き」というのがわかっていれば、
ポインターが関係していない場所で使うのがどれだけ迷惑かわかるだろ?
CFAQ の Reference に K&R があったからといって、
オマエやそれ以外の人が K&R 仕様のコンパイラを使っているということにはならない。
本当に自分の使っているコンパイラが K&R, C89, C99 のどれに準拠しているのか知ってるのか?
0452デフォルトの名無しさん
2005/06/08(水) 12:37:38無効ポインタが NULL という抽象表現になっていて、イコールゼロじゃなかったのは
中にはゼロアドレスが有効だったり、特別な無効アドレス値を予約してるプロセッサ系が
存在していた歴史的な事情があるからで、今となっては有名無実なものとなったので
C++やC99で改めて 0 と等価になっただけで、それまで NULL は(多分)ゼロだろうが
ゼロ = NULL と保証されているいうわけじゃないし、ゼロ表現のために必要ないところで
NULL をわざわざ持ち出す理由も意義もない。
0453デフォルトの名無しさん
2005/06/08(水) 12:41:390454デフォルトの名無しさん
2005/06/08(水) 12:44:08その値そのものも0 というも現状正しいが
0とNULLを等価に扱うのは用法として
「美しくない」ということでFA
0455デフォルトの名無しさん
2005/06/08(水) 12:50:39ということでFA
0456デフォルトの名無しさん
2005/06/08(水) 12:52:11> 無効ポインタが NULL という抽象表現になっていて、
抽象表現って何だよ?ただのマクロだろが。
> ゼロ = NULL と保証されているいうわけじゃないし、
だからC89の段階(KR2)で既に保証されていた訳だが。
> NULL をわざわざ持ち出す理由も意義もない。
454の言う通り「こうした書き方が上品」という話と「こう書くのは間違ってる」という話とは
まるで別物。ポインタ以外をNULLと比較しても、何ら間違いじゃない。混乱の元だが。
0457デフォルトの名無しさん
2005/06/08(水) 12:56:11混乱の元 ⊂ 間違い
少なくとも「何ら」というのは言い過ぎ。
0458デフォルトの名無しさん
2005/06/08(水) 13:00:380459デフォルトの名無しさん
2005/06/08(水) 13:02:22> > ゼロ = NULL と保証されているいうわけじゃないし、
> だからC89の段階(KR2)で既に保証されていた訳だが。
この文脈で「ゼロ = NULL」というのは
「ヌルポインタのビットパターンはすべて0である」ということだと思うが、
C89では保証されて無いだろ。
0460455
2005/06/08(水) 13:03:170461デフォルトの名無しさん
2005/06/08(水) 13:06:36Web上からPDFで閲覧できるよ。仕様の話はまず仕様書から。
0462デフォルトの名無しさん
2005/06/08(水) 13:23:156.3.2.3 ポインタ
NULLマクロの定義は
7.17 共通の定義<stddef.h>
http://www.jisc.go.jp/app/pager?id=46861
0463デフォルトの名無しさん
2005/06/08(水) 13:28:27断っとくと、X3010:2003のISO/IEC 9899:1999との同等性は「IDT」に
分類されるから、編集上の変更以外の技術的内容は一致している。
0464デフォルトの名無しさん
2005/06/08(水) 14:11:57そもそもGCC関係ないし。
0465デフォルトの名無しさん
2005/06/08(水) 14:37:38http://pc8.2ch.net/test/read.cgi/tech/1061947883/l50
0466デフォルトの名無しさん
2005/06/08(水) 15:29:10> この文脈で「ゼロ = NULL」というのは
> 「ヌルポインタのビットパターンはすべて0である」ということだと思うが、
> C89では保証されて無いだろ。
空ポインタと空ポインタ定数の区別が付いてないでしょ?
0467デフォルトの名無しさん
2005/06/08(水) 15:33:01皆自分に都合のいい情報だけ拾って好き勝手書いてる。
既に書かれてる事を恣意的に無視してるとしか思えん
続きは>>465へ。
0468デフォルトの名無しさん
2005/06/08(水) 15:33:25NULLは、C89に於いて(void *)0とdefineされている場合があることも明示されているので
NULLをポインタ以外の用途で比較等に用いるのは
C89に於いては、明らかな間違い。
0469デフォルトの名無しさん
2005/06/08(水) 15:35:56C FAQ 5. Null Pointers
http://www.eskimo.com/~scs/C-faq/s5.html
0470デフォルトの名無しさん
2005/06/08(水) 15:37:49NULLを使うのも、0を使うのも、正しい。
「0」の代わりに
NULLを使うのは、間違い。
「NULL」の代わりに
0を使うのは、正しい。
但し、この場合はNULLがヌルポインタの意味で使われていることが前提。
ヌルポインタ以外の意味でNULLが使われているとしたら、それ自体が間違い。
0471デフォルトの名無しさん
2005/06/08(水) 15:43:08最初からほとんどの人間がそう言ってる気がするんだが。
総括ってことでいいんだな?
お前らのぬるぽは、この漏れが一身に頂いてゆく!
さあ、漏れを殴って気を済ませろ!
これでこの話はおしまいだ!
0472デフォルトの名無しさん
2005/06/08(水) 15:46:59ガッ
0473デフォルトの名無しさん
2005/06/08(水) 15:54:010474デフォルトの名無しさん
2005/06/08(水) 16:09:35> 「0」の代わりに
> NULLを使うのは、間違い。
それは処理系依存でしょ。実際に #define NULL 0 な処理系もあるわけで(GCCがそう)。
その場合、整数定数0の意味でNULLを使うのは可能だよ。読み手にひどく意地悪な書き方だけど
> ヌルポインタ以外の意味でNULLが使われているとしたら、それ自体が間違い。
だからこれも処理系依存だね。
0475デフォルトの名無しさん
2005/06/08(水) 16:16:18ほとんどの場合、その環境下でも処理系の影響は受けないだろうから
処理系「依存」じゃあない…かもしれない。
ていうか、この話題になると急に元気になる奴を昔からよく見かけるが
何か深い理由でもあるのか?
昔煽られたのがトラウマになってるとか。
0476デフォルトの名無しさん
2005/06/08(水) 16:20:45> 実際に #define NULL 0 な処理系もあるわけで(GCCがそう)。
gcc使ってて、コンパイラとライブラリの区別ついてないのは恥ずかしいぞ。
うちの環境でC対象でgcc使うとNULLは(void*)0になる。
0477デフォルトの名無しさん
2005/06/08(水) 16:43:140478デフォルトの名無しさん
2005/06/08(水) 17:48:38gcc だと拡張機能で __null なんてのもあるしな。
>>477
なにも自分のレベルを馬鹿と合わせる必要はない。
0479デフォルトの名無しさん
2005/06/08(水) 18:12:44『print文』や『ヒアドキュメント』を使用するのですが、ただ単に文字を表示させることはできます。
ところが、入力フォームを表示させようとするとエラーになってしまいます。
言語はperlです。
print "<html>";
print "<HEAD><TITLE>ID PASS</TITLE></HEAD>";
print "<body>一致したよ";
print "<form method="get" action="kakikomi.cgi">";
print "<input type="hidden" name="kakusuid" value="$ide">";
print "<input type="hidden" name="kakusupassw" value="$passw">";
print "<input type="submit" value="toukou">";
print "</form>";
print "</body>";
print "</HTML>";
エラーの種類は二種類出てきます。
一つは、構文エラーで、
もう一つは『使用できない文字があります』
の二つです。
後者のエラーは、スクリプト中の"toukou"を"投稿"としたら出てしまいます。しかし、スクリプト前半の『一致したよ』という日本語はしっかり認識されているのに…です。
前者のエラーは、"投稿"を"toukou"とすると出てきます。
しかし、どこが間違っているのか、全く理解できません。
もしかしたら、CGIスクリプトの中では入力フォームは使えないのではないかと思っています。
上記のスクリプトの前後は省略していますが、フォーム入力に関する何行かをコメント扱いしたら、しっかり動いてくれるのです。しかも、『一致したよ』という日本語も表示してくれます。
尚、スクリプト中の変数は、すべて省略部分にて定義してあります。
どなたか、このスクリプトの間違いを教えてくださいませんでしょうか?
よろしくお願いします。
0480デフォルトの名無しさん
2005/06/08(水) 18:26:320481デフォルトの名無しさん
2005/06/08(水) 18:27:08スレまたは板が違います。
ヒント: " の対応関係
0482デフォルトの名無しさん
2005/06/08(水) 18:27:31言語はperlです。
言語はperlです。
0483デフォルトの名無しさん
2005/06/08(水) 18:30:14たぶんスレの内容を判断するところでミスってると思うよ
簡単に修正するとすればスレタイに"perl"という文字列が含まれているかチェックしておけばいいと思う
本当は文章を解析すればいいんだろうけど
さすがにそこまでやると大変だからね
0484デフォルトの名無しさん
2005/06/08(水) 20:54:06( ・∀・). | | ガッ
と ) | |
Y /ノ人
/ ) < >__Λ∩
_/し' . V`Д´)/
(_フ彡 /
0485デフォルトの名無しさん
2005/06/08(水) 21:19:350486デフォルトの名無しさん
2005/06/08(水) 23:00:15そのバカを煽る輩(=俺)も出てきます。
ANSI/ISO規格において、NULLを
#define NULL (void *)0
と定義することを許している。
これはつまり、「ヌルポインタ以外の用途でNULLを使ってはいけない」と
規格で定めていると言い換えても良い。
規格に従った処理系でコンパイルエラーになるようなソースを
「処理系依存だから良い」などと言い切るバカはおまえくらいなもの。
普通は、規格に従った処理系でエラーになる場合
「規格で許されていないから」と判断する。
すなわち、NULLをヌルポインタ以外の用途で用いることは
規格で許されていない。
0487デフォルトの名無しさん
2005/06/08(水) 23:32:20「出来る処理系もあるから、それが可能かどうかは処理系依存」
とはならない。
C89規格において
「関数内関数を作れるか」
「配列の要素数を変数に出来るか」
これらが可能なコンパイラがあるとしても、それは「処理系依存」ではなく
ただの「独自拡張」に過ぎない。
規格では、どちらも明確に「出来ない」と定められている。
その処理系でしか絶対に使わないソースで
非標準であることを理解した上で使う分には構わないけどね。
ここはGCCスレだし。
0488デフォルトの名無しさん
2005/06/08(水) 23:36:30#include<stdio.h>
int func(int *hoge) {
}
main() {
int *fuga;
func(&fuga);
}
0489デフォルトの名無しさん
2005/06/08(水) 23:43:270490デフォルトの名無しさん
2005/06/08(水) 23:46:520491デフォルトの名無しさん
2005/06/08(水) 23:56:21変かな?
型の違うポインタを渡してるよ、って意味かと思うけど。
exciteで翻訳したら
両立しないポインタタイプから'func'のarg1つを通過します。
になったけど。
0492デフォルトの名無しさん
2005/06/08(水) 23:58:030493デフォルトの名無しさん
2005/06/08(水) 23:58:420494デフォルトの名無しさん
2005/06/09(木) 03:27:38> ANSI/ISO規格において、NULLを
> #define NULL (void *)0
> と定義することを許している。
#define NULL 0 と定義することも許してる。
"An integer constant expression with the value 0, or such an
expression cast to type void *, is called a null pointer constant."
"NULL which expands to an implementation-defined null pointer constant"
なんで、
> これはつまり、「ヌルポインタ以外の用途でNULLを使ってはいけない」と
> 規格で定めていると言い換えても良い。
とは言えない。NULLがvoid *なのか整数定数なのかは処理系依存。
0495デフォルトの名無しさん
2005/06/09(木) 04:06:52「運良くNULLが0と定義されている環境」でコンパイルが通ったけど
「標準規格に準拠した別の環境」でコンパイルが通らない、
こんなソースは標準に従ったソースとは言えない。
つまり、0の代わりにNULLを使用しているソースは標準に従っていない。
「NULLがどうdefineされているか」は処理系依存だが
「ヌルポインタ以外の用途にNULLを使って良いか」は、決して、処理系依存ではない。
0496デフォルトの名無しさん
2005/06/09(木) 05:22:05標準規格でNULLを0とdefineする事も許されるので
double f() {
return (NULL + 5) * 123;
}
が可能かどうかは処理系依存である。
例えコンパイルエラーになる処理系があるとしても
このコードは標準Cに準拠した正しいコードである。
同様に、標準規格ではベンダーの独自拡張も許している。
したがって、
int f() {
__asm { rdtsc } return _EAX;
}
が可能かどうかは処理系依存である。
例えコンパイルエラーになる処理系があるとしても
このコードは標準Cに準拠した正しいコードである。
同様に
int f() {
あqwせdrftgyふじこlp;
}
が可能かどうかは処理系依存である。
例えコンパイルエラーになる処理系があるとしても
このコードは標準Cに準拠した正しいコードである。
0497デフォルトの名無しさん
2005/06/09(木) 05:37:42「このようなコードは、標準Cでは正しくない」となる。
これは上2例についてもそのまま当てはまる。つまり、
「NULLをポインタ以外の文脈で使うコードは、標準Cでは正しくない」となる。
逆に、NULLをポインタ以外に用いることが許されるのであれば
int f() {
あqwせdrftgyふじこlp;
}
も標準として許される、と言って良い。
0498デフォルトの名無しさん
2005/06/09(木) 06:34:07まずstrict conformingとconformingを区別するところからはじめよう。
0499デフォルトの名無しさん
2005/06/09(木) 08:35:24int f() {
あqwせdrftgyふじこlp;
}
は、標準Cに準拠した正しいコードであると言いたいわけですね。
よくわかりました。
0500デフォルトの名無しさん
2005/06/09(木) 08:50:37バカ?
誘導されてまでここでやるなよ。
0501デフォルトの名無しさん
2005/06/09(木) 10:02:55ANSI/ISOなのにさ〜 どうして i=i++; を未定義とかで逃げてんのかね
副作用点がどうのこうのというのなら、きっちり定義すりゃいいんだ
委員会は面倒くさがりなアホッ子集団じゃねーか
0502デフォルトの名無しさん
2005/06/09(木) 10:35:19最適化について勉強汁
0503432
2005/06/09(木) 10:37:40sizeof(char)==1なのは規格で保証されている。だから、
すべてのi++の代わりにi+=sizeof(char)と書いてもコンパイルは通るし問題なく動くだろう。
double getAngle(); //角度を返す(単位はdegree)
double sin(double); //正弦関数(引数の単位はradian)
という関数があったとき、
sin(getAngle());
とやってもコンパイラは文句をいわないだろう。
そういった意味においては、NULLを0の代わりに用いるのもありなのかもしれない。
かといってそれを実際にやったら狂人だが。
0504デフォルトの名無しさん
2005/06/09(木) 10:42:20また NULL は 0 または (void*)0 と定義されます
NULL ポインタは 0 とは限りません
定数 NULL と (内部表現の) NULL ポインタ は別です
であってる?
0505デフォルトの名無しさん
2005/06/09(木) 10:43:41そんなん知るかボケ
こんなのは演算子の優先順位と同じだろ
確かに一意に決めると最適化効率下がりそうだけど、根性で何とかしろ
あとあれだ、2進数表記をそろそろ許せよな
毎度毎度gccにパッチ当てんの面倒なんだよ
0506デフォルトの名無しさん
2005/06/09(木) 12:00:05>根性で何とかしろ
だったらあんたが根性でなんとかしなさいよ
>毎度毎度gccにパッチ当てんの面倒なんだよ
マクロで十分
変なコード書くな
0507デフォルトの名無しさん
2005/06/09(木) 12:02:122進表記がマクロで十分?
そう簡単に書けるとは思わないなぁ。
0508デフォルトの名無しさん
2005/06/09(木) 12:20:322進数表記をC/C++標準に取り込んでもらわないとムリじゃないかね。
0509デフォルトの名無しさん
2005/06/09(木) 12:27:060510デフォルトの名無しさん
2005/06/09(木) 12:32:59NULLを無効なアドレスポインタを表現するため以外につかうことが、いかにナンセンスかわかるだろ。
C++では
NULL == 0じゃない。
#define NULL 0
されたNULLがヌルこう覚えとけ。
文字列終端表現に使用するなんてもってのほか。
0512デフォルトの名無しさん
2005/06/09(木) 12:39:40> JavaやD言語など他の言語でのnullの扱い方を考えれば、
> NULLを無効なアドレスポインタを表現するため以外につかうことが、いかにナンセンスかわかるだろ。
必死なのはわかるけど、ナンセンスかどうかが問題じゃなくて、言語の仕様と
して禁止されてるかどうか、って話だから。JavaやDを持ち出すこと自体ナンセンス。
> C++では
> NULL == 0じゃない。
C++ではそもそも「NULLは使わないでよ」ってハゲが書いてるし、「どうしても使いたかったら
const int NULL = 0;」ってなってるくらいなので、 NULL == 0。
> #define NULL 0
> されたNULLがヌルこう覚えとけ。
だからC++ならハゲの言う通りマクロは止めようね。
0513デフォルトの名無しさん
2005/06/09(木) 12:54:12\ ヽ | / /
\ ヽ | / /
殺 伐 と し た ス レ に 裸 の 救 世 主 が ! !
\ ヽ / /
‐、、 \ / _,,−''
`−、、 ,. -―――- 、 _,,−''
−、、 /:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:\ _,,−''
/:.:.:.:.:.:.:.i:.:.:i:.:.:.:.:.:.:.:.:.:.ヽ:.:ヽ
l:.l:l:.:.:.:.:/|:./ハ:.:|ヽ:.|:.:l:.:.:.:lヽ:l
───────‐ l:.l:.:l:.:!l:.|_Vム N、.|ハ:l:|:.:.:l:.l.:l ───────‐
l:.l:.:.ト「`′ ``j∧|:.l:.l
. l:.:|:.:.:l ,z== ==ュ. /:.:.:!:.l
l:.:.|:.!:.ヽ:.:.:.:.: ' :.:.:.:.:.:/:,:.:|:|:.:l
. l:.:.j∧:.:lヽ ー一 /ィ/j/:.l:!
l:.:.:.:./:.ト\ /'::.:.l:.l:.:l:l
. l:.:.:.〃/:/://`; ー―‐;:´::l.:l:::.:.:l:.l:.:l:l
l:.:.///:/:/-‐ ′ ー-l:.l::::.:.:l:.:l:.l:l
l:.:/:/ィ/:/ l:.:l丶、l:.:l:l:l
,'´\ ―/:./:./| |:.i l:.:l l:l:.:l:l:l―― /`i
! \ _,,-┐. : ̄: :ー: |:.|_ _ l:.:l _.l―:  ̄: . r‐-、、 / !
0514デフォルトの名無しさん
2005/06/09(木) 13:29:19「定数 NULL」じゃなくて「マクロ NULL」ですが。
「0」や「(void *)0」と「ヌル・ポインタ」も別ものです。
0515デフォルトの名無しさん
2005/06/09(木) 14:05:53printfでも出力できないし。
仕様で決まってるから、とかじゃなく
なぜ仕様をそうしたのかの理由が知りたい
0516デフォルトの名無しさん
2005/06/09(木) 14:25:310517デフォルトの名無しさん
2005/06/09(木) 14:44:130518デフォルトの名無しさん
2005/06/09(木) 14:58:53文字列リテラルの\uエスケープあたりと違って上位互換性問題にならないだろうし。
0519デフォルトの名無しさん
2005/06/09(木) 15:12:240520デフォルトの名無しさん
2005/06/09(木) 15:32:180xFF とかの代わり 0b1101001101 とか書くの。
記憶違いかな。
0522デフォルトの名無しさん
2005/06/09(木) 15:43:35それはX68kの真里子版ではないか?
0523デフォルトの名無しさん
2005/06/09(木) 15:57:20http://fabrice.bellard.free.fr/tcc/tcc-doc.html#SEC9
0524デフォルトの名無しさん
2005/06/09(木) 17:27:34おお、そう言えば!
すっきりしますた。ありが�d。
0525デフォルトの名無しさん
2005/06/09(木) 23:16:39釣りかと思ってたんだが、マジで言ってたのか。
あの流れの中であんな曖昧な記述に同意を求めるのは釣りとしか思えなくてスルーしてた。
0526デフォルトの名無しさん
2005/06/10(金) 00:24:38>>504は長さと正確さがいい案配だと思うが。
> NULL ポインタは 0 とは限りません
なんかは緩い表現ではあるが。
0527525
2005/06/10(金) 02:20:11曖昧でない記述を全部挙げるわけにはいかないんでカンベンしてくれよ。
ただ>504の曖昧さなら指摘できる。
まず、全て大文字の "NULL" を stddef.h で定義されている
例のマクロ以外の意味で使うのは混乱の元。MSの日本語ドキュメントと同罪。
また "0" を、ソースコード中に表れるそれを指す場合と、
ビットパターンが全て0の値を指す場合が混ざっている(と思われる)。
最後の「定数〜は別です」という文に至ってはまったく意味不明。
0528デフォルトの名無しさん
2005/06/10(金) 02:55:19どうやらわかってないのは525って感じだね
0529デフォルトの名無しさん
2005/06/10(金) 05:47:24って頭で直に変換できるぐらいの能力って必要じゃない?
0530526
2005/06/10(金) 05:50:16なんだ、
http://www.eskimo.com/~scs/C-faq/q5.2.html
も理解してない人か。
0531デフォルトの名無しさん
2005/06/10(金) 07:16:41必要だと思う。が、2進数で書けたら良いな、と思うこととは別。
0533デフォルトの名無しさん
2005/06/10(金) 08:51:570534デフォルトの名無しさん
2005/06/10(金) 10:13:51>>530はあおりだから
ここじゃなくよそでやって
0535デフォルトの名無しさん
2005/06/10(金) 10:15:31いや、別になくてもいいけど、あったら便利です!
だからパッチはあてつづけます。ツンデレですから。
0536525
2005/06/10(金) 10:29:200537デフォルトの名無しさん
2005/06/11(土) 10:01:230538デフォルトの名無しさん
2005/06/11(土) 11:13:12とまではいかんが、多少なりと可読性を上げられるところはあるだろうし、
あればあったで有用なんじゃないだろうか。
現在メインストリームのコンパイラが独自拡張ですらサポートしていないって時点で
どうでもいいものと捉えられている(もしくは眼中にすらない)のには違いないんだろうけど。
0539デフォルトの名無しさん
2005/06/11(土) 11:45:070540デフォルトの名無しさん
2005/06/11(土) 12:50:180541デフォルトの名無しさん
2005/06/11(土) 14:17:200542デフォルトの名無しさん
2005/06/11(土) 14:33:01-- bindigit.h --
#define B000000000000000000000000000000011
#define B000000000000000000000000000000102
#define B000000000000000000000000000000113
〜
0543デフォルトの名無しさん
2005/06/11(土) 15:39:5232bit分でもたった4294967295行だしな。
ほんの150Gbyteくらいのサイズのヘッダを作るだけですむのでオススメ
0544デフォルトの名無しさん
2005/06/11(土) 16:19:27#define B0001 0x01
……
#define BITS8(b0, b1) (((b0) << 4) | (b1))
#define BITS16(b0, b1, b2, b3) ((BITS8((b0), (b1)) << 8) | BITS8((b2), (b3)))
#define BITS32(b0, b1, b2, b3, b4, b5, b6, b7) ((BITS16((b0), (b1), (b2), (b3)) << 16) | BITS16((b4), (b5), (b6), (b7)))
ちょっとは現実的?
0545デフォルトの名無しさん
2005/06/11(土) 17:00:02#include<iostream>
#define _0000 (0)
#define _0001 (1)
・・・途中省略・・・
#define _1110 (14)
#define _1111 (15)
class B {
int m_i;
public:
B( int i ) : m_i( i ) {}
B operator ()( int i ) { return B( m_i<<4|i ); }
operator int( void ) { return m_i; }
};
int main(void) {
int h= 0x50af;
int b= B _0101 _0000 _1010 _1111;
std::cout<< h<< "\n"<< b<< "\n";
return 0;
}
0546デフォルトの名無しさん
2005/06/11(土) 17:12:35((((0##n)>> 0)&1)<<0)+\
((((0##n)>> 3)&1)<<1)+\
((((0##n)>> 6)&1)<<2)+\
((((0##n)>> 9)&1)<<3)+\
((((0##n)>>12)&1)<<4)+\
((((0##n)>>15)&1)<<5)+\
((((0##n)>>18)&1)<<6)+\
((((0##n)>>21)&1)<<7)
#define BITS16(a,b) ((BITS8(a)<<8)+BITS8(b))
#define BITS32(a,b,c,d) ((BITS16(a,b)<<16)+BITS16(c,d))
e.g.)
printf("%08x\n",BITS8(11110000));
printf("%08x\n",BITS16(11110000,11110000));
printf("%08x\n",BITS32(11110000,11110000,11110000,11110000));
0548デフォルトの名無しさん
2005/06/11(土) 18:08:510549デフォルトの名無しさん
2005/06/11(土) 18:32:420550デフォルトの名無しさん
2005/06/11(土) 18:34:21int m_i;
int t( int n ) const { return tbl[(n^(n<<4)^(n>>5))&0xf]; }
static const int tbl[16];
public:
explicit B_( int i ) : m_i( i ) {}
B_ operator /( int i ) const { return B_( m_i << 4 | t(i) ); }
operator int( void ) const { return m_i; }
};
const int B_::tbl[]= {0, 1, 4, 5, 14, 15, 9, 8, 2, 3, 6, 7, 11, 10, 12, 13};
const B_ B(0);
使い方
int b= B/0101/0000/1010/1111;
0551デフォルトの名無しさん
2005/06/11(土) 21:10:160552デフォルトの名無しさん
2005/06/11(土) 21:16:10使ってるバージョンと理由を教えてくれ
俺はいまだに3.3.3だが・・・
理由は、3.3.3で満足してるから・・・
0553デフォルトの名無しさん
2005/06/11(土) 21:17:210554デフォルトの名無しさん
2005/06/11(土) 22:55:35深刻な不都合は特にないので、なんとなく。
3.4系は、それまでの自社ライブラリ(特にテンプレート類)にかなり修正加えないと
使い物にならないことがわかってるし、面倒なので評価が固まるまで保留してる。
0555デフォルトの名無しさん
2005/06/11(土) 23:01:420556デフォルトの名無しさん
2005/06/12(日) 16:55:40が見つかりもはん!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
どこにありますか。
0557デフォルトの名無しさん
2005/06/12(日) 16:59:250558デフォルトの名無しさん
2005/06/12(日) 18:32:07cygwin上でビルドしてみたけど、いたるところでエラーでてビルド停止。
悪戦苦闘の末にやっとこ、ビルド完了したけど。
最初のConfigureでいくつかオプション設定し忘れて、結局使わずじまい...
0559デフォルトの名無しさん
2005/06/12(日) 20:23:09Intelのコンパイラ買えよ
0560デフォルトの名無しさん
2005/06/12(日) 21:55:500561デフォルトの名無しさん
2005/06/12(日) 21:59:18もうちょっと勉強してきてくれ。
0562デフォルトの名無しさん
2005/06/12(日) 21:59:550563デフォルトの名無しさん
2005/06/12(日) 23:45:14旧コードとの互換性って意味でも厳しいし。
クロスコンパイル環境が欲しい場合には、他に選択肢が無いのは確かだが、
4系を使うまでもない…つーか使ってらんない。
0564デフォルトの名無しさん
2005/06/13(月) 00:21:40あれほどすごいものはないとおもう
CPU作ってるメーカが出すコンパイラと
オナニーしながら、利腕1本で書いてるコンパイラの違いだってまさに思う
0565デフォルトの名無しさん
2005/06/13(月) 00:36:38理解できた。
0566デフォルトの名無しさん
2005/06/13(月) 00:53:07gcc使ってるやつらが9割5分でしょ
WindowsのPBMWは20万ちょいだし
Linuxのだと10万弱
他にも、ツール系買ったとして80万弱
最小限のツールで50万強
てきとうなもん作れば、こんくらいすぐ儲けられるけど
ちょっとしたもんもつくれないやつらが使うのがgcc
0567デフォルトの名無しさん
2005/06/13(月) 01:34:24世の中 Windows や x86 の仕事ばかりではないので。
あと gcc やら Linux やらの開発者がボランティアばかりだと思ってるなら、
お目出度すぎ。ボランティアもいるが、企業が金出してプロの開発者を投入
してるのも多い。
大企業による体の良いダンピングで、泣いてる企業も多いが、今さら言っても
詮無きことだ。一個人としては、せいぜい流れに乗るまで。
0568デフォルトの名無しさん
2005/06/13(月) 02:16:02>お目出度すぎ。ボランティアもいるが、企業が金出してプロの開発者を投入
>してるのも多い。
こいつのほうがおめでたいな
0569デフォルトの名無しさん
2005/06/13(月) 02:36:06本を読破したつもりになってるようなひとだろうね
0570558,561
2005/06/13(月) 02:56:01そしたら、あなたたちのような、瞬時に数百万も稼ぎ出す方々なら、
必然的にGCC使う理由もわかると思うんだが。
ましてや、Windowsネイティブなコードはかせるだけなら、
フリーでも他に選択肢あるわけだし。
0571デフォルトの名無しさん
2005/06/13(月) 03:09:01どんなコードを書いてるのか気になるな
0572デフォルトの名無しさん
2005/06/13(月) 03:10:36職業プログラマにGCC使ってる奴はそういないと思うぞ
なにより、そいつが本当の職業プログラマで
その危険性に気づかない奴は糞
0573デフォルトの名無しさん
2005/06/13(月) 03:21:020574デフォルトの名無しさん
2005/06/13(月) 03:21:18とか買うとWindows版でも標準コンパイラはgccだけどな。
ソイツが何をいいたいか俺はしらんが
俺はコンパイラになに使ってるのかばれるのは危険だと思う
そのコンパイラ固有のバグを一斉に突かれるからな
しかも、ソース出てるんだからその回りのソース読めば
他にも突けるところを、比較的探しやすい
0576デフォルトの名無しさん
2005/06/13(月) 04:11:13使ったコンパイラの種類がバレないようなコンパイラってあると思ってんの?
0577デフォルトの名無しさん
2005/06/13(月) 04:56:120578デフォルトの名無しさん
2005/06/13(月) 08:17:380579558,561,570
2005/06/13(月) 10:42:02いや、だからさ。
WindowsでCygwin使う意味、というかCygwinの存在意義ってなによ?
それ考えれば、GCCを使わないといけないシチュエーションもわかると思うんだが...
ちなみに俺は職業プログラマだよ。
もちろんGCC(も)使ってる。
0580デフォルトの名無しさん
2005/06/13(月) 11:06:080581デフォルトの名無しさん
2005/06/13(月) 11:09:100582デフォルトの名無しさん
2005/06/13(月) 11:29:10メインプラットフォームがLinuxですから
それがGNUクオリティ
0583デフォルトの名無しさん
2005/06/13(月) 12:28:090584デフォルトの名無しさん
2005/06/13(月) 12:33:240585デフォルトの名無しさん
2005/06/13(月) 12:47:32Intel 自身がアーキテクチャ開発してるからってのもあるが、
アーキテクチャの仕様の詳細まで公開してるわけでない。非公開部分もある。
だから GCC の i386メンテナは ICC を Hack するしかないという罠。
0586デフォルトの名無しさん
2005/06/13(月) 14:46:230587デフォルトの名無しさん
2005/06/13(月) 15:47:22レス見てたら
誰もおまえのように頭が回る奴はいないみたいだけどな
自分で職業プログラマでgcc使ってるとか言ってる奴は
アフォかと思うね
まぁ、Linuxって言ってる時点でどの程度の頭か理解できるけど
0588デフォルトの名無しさん
2005/06/13(月) 15:50:48大体ヘッダ付加しないオプションがある商用コンパイラと言うものを知らないのか?
あ、GCCが最高とか言ってるやつだからか
すまんね
0589デフォルトの名無しさん
2005/06/13(月) 15:54:48世の中には自分が知ってることが全てで
自分のいってることが全て正しいと思ってる奴もいるんだから
レス見てたらわかるだろ?
このスレにはそういう奴の巣
0590デフォルトの名無しさん
2005/06/13(月) 15:55:350591デフォルトの名無しさん
2005/06/13(月) 17:20:390592デフォルトの名無しさん
2005/06/13(月) 17:28:05あ
0593プロプラなんてイラネ
2005/06/13(月) 18:06:43GCC 関連の話題以外は(゚�听)イラネ
0594デフォルトの名無しさん
2005/06/13(月) 18:09:58gccのソースってなんでここまで暗号っぽいんだ?
知合いのプログラマにコンパイラのソースもよまへんで
最適化を語るなっていわれたから読んでるんだが
こんなの読めるだけで神だな
知合いのプログラマは読んでなくても俺にしたら神だが
0595デフォルトの名無しさん
2005/06/13(月) 18:14:46GCCはそれ以外の部分も凄まじい事になってるしなあ。
ソースコードが手に入るのは確かだが、参考になるかって言われると
色んな意味で微妙だぞ。
漏れも以前クロスコンパイラ用意するときに仕方なく読んだが、もう二度とやりたくない。
パッチパッチパッチの嵐、
方々でルールの統一がとられてない、
元がCとは思えないマクロ固めの変態新造言語による謎ソース、
動的に構成されすぎるmakefile
…うなされたよ。
こと最適化に関する部分だけなら、ある程度ターゲットを絞れば
なんとか読めるのかもしれないけどさ。
0596デフォルトの名無しさん
2005/06/13(月) 18:22:53#include <stdio.h>
struct A {
int length;
char tmp[0];
char a, b, c;
} __attribute__((packed));
struct A buf;
int main()
{
printf("sizeof(buf) = %u\n", sizeof(buf));
return(0);
}
$ gcc sample.c -o sample
$ ./sample
sizeof(buf) = 7
$
↑これ FAQ? 結果が 8 になると思っていたのだが..
0597デフォルトの名無しさん
2005/06/13(月) 18:25:55なにをいまさら言ってるのかと、小一時間(ry
0598デフォルトの名無しさん
2005/06/13(月) 18:26:20char tmp[0];
の罠かと思ったけど違うし
0599デフォルトの名無しさん
2005/06/13(月) 18:28:46俺の中で、これが読めたら神っていうのは
VMだな、回りは読めてもハードシミュレートなんて暗号と言うか
まったく知らない言葉、読むもなにも何をしてるのかが理解できん
0600598
2005/06/13(月) 18:32:21char tmp[0];
か、
さっきなんで違うと思ったんだろう
0601デフォルトの名無しさん
2005/06/13(月) 18:33:14#いや、勿論8でもいいと思うが。
0602デフォルトの名無しさん
2005/06/13(月) 18:36:47char[7]と同じという意味になるんじゃないのかと。
0603デフォルトの名無しさん
2005/06/13(月) 18:41:440604デフォルトの名無しさん
2005/06/13(月) 18:46:40あの高度な最適化がきれいなソースから生まれているのは明らか。
0605デフォルトの名無しさん
2005/06/13(月) 18:52:59もうちょっと、面白可笑しい文面で書いたりはできないか?
0606デフォルトの名無しさん
2005/06/13(月) 18:59:31えー、なんでじゃあ7で間違ってると思うんだ?
0607デフォルトの名無しさん
2005/06/13(月) 19:18:02気になるからはよ答えれ。bus errorが出るようなCPUだと
8になるのかもしれないが、386じゃどう考えても7にしか思えないんだが。
0608デフォルトの名無しさん
2005/06/13(月) 19:42:35B.「ほんとだ。なんで3じゃないんだ」
C.「おまえらアホか」
重要:Cは1+1が2であることを否定してない。
0609デフォルトの名無しさん
2005/06/13(月) 19:44:230610Thinking Time!
2005/06/13(月) 19:52:16↓こんな感じで
buf.tmp[0] = 'w';
0611デフォルトの名無しさん
2005/06/13(月) 19:53:570612デフォルトの名無しさん
2005/06/13(月) 19:56:26それってchar aの領域に書き込んでるんじゃなくて?
どうでもいいけど、アセンブルしてその結果について話合えよ。
レベルとかそんなの以前にバカすぎなんだよ。
>>611
バカ認定するまえに、ちゃんとした回答与えろよバーカ
0613デフォルトの名無しさん
2005/06/13(月) 19:57:190614デフォルトの名無しさん
2005/06/13(月) 20:01:51俺は規格書もってないからK&Rを読んだが
配列サイズ0のときは書いてなかった
俺役立たずwwwwwwwwww
0615デフォルトの名無しさん
2005/06/13(月) 20:03:09>どうでもいいけど、アセンブルしてその結果について話合えよ。
>レベルとかそんなの以前にバカすぎなんだよ。
バカで無い>>612様が、↓次で詳細な解説します。
0616デフォルトの名無しさん
2005/06/13(月) 20:04:260617デフォルトの名無しさん
2005/06/13(月) 20:05:230618デフォルトの名無しさん
2005/06/13(月) 20:06:10OK
0619デフォルトの名無しさん
2005/06/13(月) 20:07:250620デフォルトの名無しさん
2005/06/13(月) 20:07:420621デフォルトの名無しさん
2005/06/13(月) 20:09:07Cの言語仕様なんてしらねーもんwww
じゃあ説明してもらいましょうか。にげんじゃねーぞ禿
0622デフォルトの名無しさん
2005/06/13(月) 20:09:250623デフォルトの名無しさん
2005/06/13(月) 20:09:49C Extensions -> Zero Length のところな。
0624デフォルトの名無しさん
2005/06/13(月) 20:10:327でいいと思うよ
tmp[0]は領域取られないですよ
ヒント:パツキン美女でもタルドルだとちょっとやだよね
0625デフォルトの名無しさん
2005/06/13(月) 20:10:52詳細な説明なんてないっつってんだろバカ
0626デフォルトの名無しさん
2005/06/13(月) 20:13:41長さ0の配列はGCC拡張だヴァーカ
$ gcc -O4 -Wall -pedantic foo.c
foo.c:5: warning: ISO C forbids zero-size array `tmp'
0627デフォルトの名無しさん
2005/06/13(月) 20:14:490628デフォルトの名無しさん
2005/06/13(月) 20:16:280629デフォルトの名無しさん
2005/06/13(月) 20:16:530630デフォルトの名無しさん
2005/06/13(月) 20:18:57メンバの tmp[0] と a のポインタアドレス見たら同じだった。
alias みたいな物になるのかな? > tmp[0]
0631デフォルトの名無しさん
2005/06/13(月) 20:20:36こんなにあれたの?
アホなのか?
0632デフォルトの名無しさん
2005/06/13(月) 20:21:000633デフォルトの名無しさん
2005/06/13(月) 20:23:200634デフォルトの名無しさん
2005/06/13(月) 20:26:24パツキン美女みたいなものです
TEL番ゲットしたのに「現在使われておりません」みたいな
実態が無い、幻の存在
0635デフォルトの名無しさん
2005/06/13(月) 20:29:110636デフォルトの名無しさん
2005/06/13(月) 20:34:31サンクス。
http://www.sra.co.jp/wingnut/gcc/gcc-j.html#Zero%20Length
しかしなあこのGCC拡張。かえって分り難くないか?
>>631
598のどこが答えなんだ?なんの答えにもなってないだろwww
0637デフォルトの名無しさん
2005/06/13(月) 20:35:56それがGCC。GNUクオリティwww
0638デフォルトの名無しさん
2005/06/13(月) 20:42:51答えになってるだろ?
そこを指定してるんだから
そこを触ってみて、どう動くかを実際に見たら
そのinfoがわかる
文を読んでも何の連想もできない
文字しか読めないひとなのか?
0639デフォルトの名無しさん
2005/06/13(月) 20:45:39なんの後ろめたさもなくそんなレスしてんの?
0640デフォルトの名無しさん
2005/06/13(月) 20:48:03そんな態度ばっかとってるから、幻のTEL番しかゲットできないんだよ
もう少し謙虚に生きれ
0641デフォルトの名無しさん
2005/06/13(月) 20:50:47おまえらうんこぉーーー!!
0642デフォルトの名無しさん
2005/06/13(月) 20:52:13>http://www.sra.co.jp/wingnut/gcc/gcc-j.html#Zero%20Length
>GNU C では長さが 0 の配列を使うことができる。これを構造体の最後の要素として置き、実際には可変長となるオブジェクトのヘッダとして使うことができる。
It's cool!
0643デフォルトの名無しさん
2005/06/13(月) 20:54:16ソース的にも分りやすい!
0644デフォルトの名無しさん
2005/06/13(月) 20:54:41やっぱり、GCC の仕様は素晴らしいな。 GCCハカー カコイイ!
0645デフォルトの名無しさん
2005/06/13(月) 20:54:59GNUってほんとやることが汚いよな。
0646デフォルトの名無しさん
2005/06/13(月) 20:55:37漏れうんこ
0647デフォルトの名無しさん
2005/06/13(月) 20:56:370648デフォルトの名無しさん
2005/06/13(月) 20:57:590649デフォルトの名無しさん
2005/06/13(月) 20:58:07>GNU C拡張汚染
この謎の文章について
0650デフォルトの名無しさん
2005/06/13(月) 21:00:37(゚д゚)ハァ?
GCC よりもまず日本語の勉強が必要かと。
0651デフォルトの名無しさん
2005/06/13(月) 21:12:32数に制限されそうだが・・・)の表記をサポートを致します。
なんちゃって
0652デフォルトの名無しさん
2005/06/13(月) 21:23:230653デフォルトの名無しさん
2005/06/13(月) 21:31:57カッコで一つの桁を表す。
N1000_3(N10_980)(N8_50)
みたいに。なんのことだか分らんかww
0654デフォルトの名無しさん
2005/06/13(月) 21:40:07最終的に10か16で表現されるところに落ち着けば、処理系が
解釈に困ることはないはず。多分。
0655デフォルトの名無しさん
2005/06/13(月) 22:40:300656デフォルトの名無しさん
2005/06/13(月) 22:47:53ゲームとか作ってると1024進数とかよく使うんだが、うは漏れだけwwwwwww
な希ガス。
36進とかは地味に使うね。
使うっつーか、使っちゃってるというか。
0657デフォルトの名無しさん
2005/06/13(月) 22:50:040658デフォルトの名無しさん
2005/06/13(月) 22:52:48# 個人的にはBase64の文字の選定にはちと納得がいかない。
# -と_と.なら納得できたんだが。
0659デフォルトの名無しさん
2005/06/13(月) 23:00:160〜9,A〜Zまでで一桁
女神転生風のパスワード作成にお勧め
0660デフォルトの名無しさん
2005/06/13(月) 23:08:160661デフォルトの名無しさん
2005/06/14(火) 04:36:471024進数って何?どう使ってるの?
0662デフォルトの名無しさん
2005/06/14(火) 23:46:43辞書攻撃に強くなるので悪くない。
だがスレ違いだ。
0663デフォルトの名無しさん
2005/06/15(水) 00:10:53ぶっちゃけて固定小数点。
1000の近似値で2の10乗なので、精度的に手ごろで直感的でもあると。
少し前のゲーム機とかだと、ラジアンを4096(14ビット)で表して、
符合1ビット、回転数念のために1ビット、計16ビットで回転表現とかやってたけど、関係なさ杉。
0664デフォルトの名無しさん
2005/06/15(水) 00:46:59と思ったけど最近のCPUならあんまし関係ないか。
0665デフォルトの名無しさん
2005/06/15(水) 01:01:28で、16進3桁で表せる点が(人間にとって)ほんの少し便利。
0x1000が4Kで、いろんなCPUで仮想記憶のページサイズだったり。
0666デフォルトの名無しさん
2005/06/15(水) 03:43:40そういえばケンシロウ進数パッチのgcc版がsourceforgeにあったな
0667デフォルトの名無しさん
2005/06/16(木) 01:20:34-march=xeonとかさ。
0668デフォルトの名無しさん
2005/06/16(木) 02:03:080670デフォルトの名無しさん
2005/06/16(木) 17:42:09それなら、-pedantic とか -Werror も付けとけ。
0672デフォルトの名無しさん
2005/06/16(木) 17:55:200673デフォルトの名無しさん
2005/06/16(木) 18:02:270674デフォルトの名無しさん
2005/06/16(木) 18:25:09別の企画かと思ってたよ
0675デフォルトの名無しさん
2005/06/16(木) 18:49:380676デフォルトの名無しさん
2005/06/16(木) 18:52:580677デフォルトの名無しさん
2005/06/16(木) 19:01:02ここで説明しろよボケ
0678デフォルトの名無しさん
2005/06/16(木) 19:09:59どうせ暇なニートなんだから、自分で調べろよ。
0679デフォルトの名無しさん
2005/06/16(木) 19:18:22働いててもそんくらいしか役に立ってないだろボケ
0680デフォルトの名無しさん
2005/06/16(木) 19:25:51ANSIはアメリカの工業規格で、日本でいえばJISみたいな機関。
ここでC言語仕様の標準化作業を行っています。
言語の仕様なので、見直し作業が必要で、その改訂作業の年をとって、
仕様の名前を決めてるの。
つまり「C99」は、99年にANSIで標準化されたC言語の仕様なんだよ。
0681デフォルトの名無しさん
2005/06/16(木) 19:38:42ニートだということは否定しないらしい
0682デフォルトの名無しさん
2005/06/16(木) 19:39:300683デフォルトの名無しさん
2005/06/16(木) 19:40:080685デフォルトの名無しさん
2005/06/16(木) 20:11:51じゃあ、C05とかもあるの?
1番新しいのがC99ってこと?
0686685
2005/06/16(木) 20:19:401番新しいのがC99みたいですね
gnu99ってのもあるみたいですね
C99の前がC89みたいなので
10年毎に更新するのですか?
0687デフォルトの名無しさん
2005/06/16(木) 20:25:48「承認」なら規定内容は変わらない。
ISOも同様なら10年に1回とは限らない。
0688デフォルトの名無しさん
2005/06/16(木) 20:32:360689デフォルトの名無しさん
2005/06/16(木) 20:47:44マジで。
0690デフォルトの名無しさん
2005/06/16(木) 20:50:23ってか、g++のmanは空だったが
なんだこれ?
0691デフォルトの名無しさん
2005/06/16(木) 20:59:190692デフォルトの名無しさん
2005/06/16(木) 21:09:55検索ぐらいしたら?
0693デフォルトの名無しさん
2005/06/16(木) 21:24:19ここで説明しろよボケ
0694デフォルトの名無しさん
2005/06/16(木) 21:30:530695デフォルトの名無しさん
2005/06/16(木) 22:57:57GNUのPascalはGPC。
よってスレ違い。
0696デフォルトの名無しさん
2005/06/17(金) 06:08:250697デフォルトの名無しさん
2005/06/17(金) 15:06:190698デフォルトの名無しさん
2005/06/17(金) 18:40:100699デフォルトの名無しさん
2005/06/17(金) 21:29:430700デフォルトの名無しさん
2005/06/17(金) 22:48:260701デフォルトの名無しさん
2005/06/18(土) 01:20:33コンパイラ コレクションなんだから
いれたらいいのに
0702デフォルトの名無しさん
2005/06/18(土) 01:27:190703デフォルトの名無しさん
2005/06/18(土) 01:36:240704デフォルトの名無しさん
2005/06/18(土) 03:10:47死ねよ
0705デフォルトの名無しさん
2005/06/18(土) 03:26:35そっくりそのままお返ししとくよ
0706デフォルトの名無しさん
2005/06/18(土) 03:32:00で?
0707デフォルトの名無しさん
2005/06/18(土) 03:41:23>fortranもobj-cもjavaも要らないよ。c/c++だけで十分。
これはたしかに君の主観だと思うよ
使う人がいるからあるんだし、それだと
ccとかc++
でいいじゃん、
0708デフォルトの名無しさん
2005/06/18(土) 03:48:260709デフォルトの名無しさん
2005/06/18(土) 03:49:360710デフォルトの名無しさん
2005/06/18(土) 04:02:53fortranもobj-cもjavaも使えないよ。c/c++覚えるだけで手一杯。
0711デフォルトの名無しさん
2005/06/18(土) 04:07:03君は水商売に向いてるな。今度一緒に飲もうか。俺のおごりで
0712デフォルトの名無しさん
2005/06/18(土) 16:32:39今後際限なくコンパイラの種類が増える方向にあっても良いと?
バラバラで良いでしょって意見は確かに主観だが、全部入りで
良いでしょってのも間違いなく主観だ。もしかして気付いてない?
0713デフォルトの名無しさん
2005/06/18(土) 17:41:05そんなことはGCCのチームに言ってくれ。
0714デフォルトの名無しさん
2005/06/18(土) 18:50:13こいつらはgccがコンパイラだと思ってるのか?
gccじゃなくて、必要なコンパイラだけ入れようとは思わんのか?
おもわなんだったら文句いうなよ
0715デフォルトの名無しさん
2005/06/18(土) 18:59:23コレクション ってのは後付け設定じゃん
0716デフォルトの名無しさん
2005/06/18(土) 19:00:53でもいろいろあってコンパイラ衆の親分になったもんで
語呂合わせでコレクションになったわけで
STVのSTはサンタのST って言ってんのと同レベルなんだよな
0717デフォルトの名無しさん
2005/06/18(土) 19:09:54そうだね。
この際PascalやModula-3やD言語のコンパイラとライブラリ一式も入れるべきだ。
0718デフォルトの名無しさん
2005/06/18(土) 19:15:25それに従えよ
文句をいうんだったら使わなきゃいいだけ
0719デフォルトの名無しさん
2005/06/18(土) 19:18:37ガタガタ言ってんなよ
gcc様がfortranなんざコレクションに加えねぇってんだから
それに黙って従っとけ
0720デフォルトの名無しさん
2005/06/18(土) 19:29:50Adaもかなり長い間別配布だったけど、安定して中に入ったよね。
gpcはまだまだ安定しそうにないし。ISO Pascalだけならもう大丈夫だけど。
0721デフォルトの名無しさん
2005/06/18(土) 19:34:130722デフォルトの名無しさん
2005/06/18(土) 21:37:22Borland拡張の是費もあるけれど、拡張が無ければ今更魅力も無いのも事実。
(C++が既にあるのに今更構文互換性すらないBCPLを入れようとしてるようなものでは…)
またDは本家のバージョンアップ攻勢を見るに言語仕様が安定するまでまだ数年はかかると思われ。
というわけでここはひとつ、OCaml希望。
0723デフォルトの名無しさん
2005/06/18(土) 21:45:57技術的にはLisp, Prolog, ML系も入れられるだろうけど、
GCはBoehm GCオンリーだね。コンサバGCじゃないとかなり大幅な改造。
0724デフォルトの名無しさん
2005/06/18(土) 22:04:43GxCでxにDでもPでも好きに入れればいいだろに。
0725デフォルトの名無しさん
2005/06/18(土) 22:26:000726デフォルトの名無しさん
2005/06/18(土) 22:45:500727デフォルトの名無しさん
2005/06/18(土) 23:48:31http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
0728デフォルトの名無しさん
2005/06/19(日) 00:09:03落ちてないよ。gcc4のバッファーオーバーフロー保護関係です。
0729デフォルトの名無しさん
2005/06/19(日) 16:42:500730デフォルトの名無しさん
2005/06/20(月) 00:32:38何でお前等は "-O" に頼るんだ?
C言語ってのはコードを書く奴が工夫して速く動くコードを書くもんだろ?
コンパイラが速く動くバイナリを吐かないとかなじゃなくて
おまえらが速く動くコードを吐けよ
それがいやならお前が最適化コードをかけよ
それなら文句ないだろ
その最適化コードで実際に最適化したバイナリの速さがおまえの限界
所詮おまえはそんな程度
コード書くのやめてサラリーマンでもやってろ
0732デフォルトの名無しさん
2005/06/20(月) 02:48:24つ BCC32
0733デフォルトの名無しさん
2005/06/20(月) 02:49:58いいこといった!!
0734デフォルトの名無しさん
2005/06/20(月) 03:12:380735デフォルトの名無しさん
2005/06/20(月) 03:20:490736デフォルトの名無しさん
2005/06/20(月) 06:55:080737デフォルトの名無しさん
2005/06/20(月) 07:59:16たいていのプログラマは奴隷です。
0738デフォルトの名無しさん
2005/06/20(月) 09:14:47趣味でやってるならかなり、いいご身分だと思うんだけど...
0739デフォルトの名無しさん
2005/06/21(火) 10:28:11おー、そうか。
ループ展開やら switch のテーブル化やら
関数呼び出しの委譲やら末尾再起最適化やら
お前は何から何まで全部手でやるんだな。
保守も全部お前がやれよ!
0740デフォルトの名無しさん
2005/06/21(火) 11:00:48人生がんばれな
0741デフォルトの名無しさん
2005/06/21(火) 20:22:13喪前はコーディングをがんばれ。
人生は頑張らなくてよい。
0742デフォルトの名無しさん
2005/06/21(火) 23:42:16人生がんばってたらプログラマなんてならなかった
0743デフォルトの名無しさん
2005/06/22(水) 14:45:200744デフォルトの名無しさん
2005/06/23(木) 13:56:31-Oはコードチェックの為のオプション。
lint(とかその類)使ってれば必要無いけどな。
0745デフォルトの名無しさん
2005/06/23(木) 14:39:440746デフォルトの名無しさん
2005/06/23(木) 15:59:45>>744見たいな馬鹿もいることだし荒してみようかな
0747デフォルトの名無しさん
2005/06/23(木) 16:19:000748デフォルトの名無しさん
2005/06/23(木) 16:26:22scanfにはバッファオーバフローを防ぐ手段が無いからじゃないかな
よくわかんないけど
0749デフォルトの名無しさん
2005/06/23(木) 18:02:350750デフォルトの名無しさん
2005/06/23(木) 19:29:55スレ違いです。
0751デフォルトの名無しさん
2005/06/24(金) 14:23:340752デフォルトの名無しさん
2005/06/24(金) 18:07:58char buf[6]; scanf("%s", buf);
とかを実行した時
0753デフォルトの名無しさん
2005/06/24(金) 18:31:26うまくgccにからめたね
0754デフォルトの名無しさん
2005/06/24(金) 18:50:08実行時のことを考えろばか
入力のサイズチェックしないで行くとあふれるかもしれんだろ
しね
0755デフォルトの名無しさん
2005/06/24(金) 19:42:30スレ違い
0756デフォルトの名無しさん
2005/06/24(金) 21:25:080757デフォルトの名無しさん
2005/06/24(金) 21:40:370758デフォルトの名無しさん
2005/06/24(金) 22:56:410759デフォルトの名無しさん
2005/06/24(金) 23:44:34formatに必要の無いもんも書けてしまうとか、同じ理由でデバッグしづらいとか
改行をスペースと同じ扱いになるのも問題だと言うのも聞いたな。
まぁスレ違いだが
0760デフォルトの名無しさん
2005/06/25(土) 13:27:10scanf()は絶対にオーバーフロー防止手段がない!とか言ってた
自称「職業プログラマ」には笑った。
まさに学校で教えてもらった知識そのまま
学校行かなきゃ何も出来なかった、
自分で調べるということすら出来ないバカだけある
0761デフォルトの名無しさん
2005/06/25(土) 13:28:050762デフォルトの名無しさん
2005/06/25(土) 13:30:37揚げ足取りっぽくなっちゃうけど
%5 は 6文字分のバッファが必要だよ
>>759
「formatに必要のないもん」って何ですか?
まぁスレ違いだが
0763デフォルトの名無しさん
2005/06/25(土) 13:48:390764デフォルトの名無しさん
2005/06/25(土) 15:14:280765デフォルトの名無しさん
2005/06/25(土) 15:56:240766デフォルトの名無しさん
2005/06/25(土) 21:33:08すれ違いだけどおまえの方が痛いかも
固定文字列の入力なんて無いだろ?
大体scanf使うときなんて、ユーザによって違う文字列をもらう
コードかいたことないのか?
0767デフォルトの名無しさん
2005/06/25(土) 21:54:38固定かどうかなど問題ではない。
scanfでも安全
0768デフォルトの名無しさん
2005/06/25(土) 22:46:410769デフォルトの名無しさん
2005/06/25(土) 22:46:55%dに対してアルファベットを入力されたらどうしましょ。
0770デフォルトの名無しさん
2005/06/25(土) 23:00:390771デフォルトの名無しさん
2005/06/25(土) 23:03:14返り値をチェックすればいいじゃん。0なら読めてないからどうにかする。
めんどくさ。
0772デフォルトの名無しさん
2005/06/25(土) 23:05:41scanf の戻り値をみて失敗しているようなら
'\n' までgetchar でバッファをクリアすればよし
0773デフォルトの名無しさん
2005/06/25(土) 23:06:31ある便利な関数ばかり使うと、エラー処理の仕方もわからないバカばっかりになるから
0774デフォルトの名無しさん
2005/06/25(土) 23:10:20低能っぷりに合わせて懇切丁寧に教えてやっから
0775デフォルトの名無しさん
2005/06/25(土) 23:15:10初心者は scanf を使いこなせないから
初心者スレはふさわしくないよ
scanf は使いこなすものではない
と言うのならここで続けて欲しい
0776デフォルトの名無しさん
2005/06/25(土) 23:25:03単に、バカだから使い道がわからない、回避の方法も考え付かなかっただけのこと。
将来的には使うことがなくなったとしても、そのノウハウとか考え方は
必ず良い方向に蓄積されていく。
バカはバカの言うことを真に受けてますますバカになっただけ。
0777デフォルトの名無しさん
2005/06/25(土) 23:28:30極力使って欲しくないな
読みづらくなる
scanfは使って欲しいな
入力のチェックさえしたら何の問題もない
0778デフォルトの名無しさん
2005/06/25(土) 23:30:17エラー処理にこれほど威力を発揮するものはねえぞ
問答無用だし
いいよな問答無用って
語呂がいい
0779デフォルトの名無しさん
2005/06/25(土) 23:32:030780デフォルトの名無しさん
2005/06/25(土) 23:34:35ダイレクトにすっ飛ばすほうがラク
それでも最初はgotoに対して言い訳コメントかいてたもんだ
gotoアレルギーある奴がいたから
/* これこれこういう理由でgoto */
0781デフォルトの名無しさん
2005/06/25(土) 23:34:42こういう不毛でワンパターンなやり取りが大好きだよな。
0782デフォルトの名無しさん
2005/06/25(土) 23:35:43お前言葉は悪いがいい事言うな
0783デフォルトの名無しさん
2005/06/25(土) 23:37:550784デフォルトの名無しさん
2005/06/25(土) 23:39:160785デフォルトの名無しさん
2005/06/25(土) 23:43:11(仕事は別)
危険だとわかっていれば、「どういうときに使えばいいのか」ということを考える。
そうしていくと、「どういうときに使えば安全かつ便利か?」ということがわかってくる。
そうすりゃしめたもの。
てか初心者スレかここは。
0786デフォルトの名無しさん
2005/06/26(日) 00:00:34私はどう危険なのか(危険じゃないのか)知りたいの
問題を回避する方法があるなら
それは(語弊あるけど)問題じゃない
(仕事は別)な理由を知りたい
この手の論争って>>785みたいのが
要点をぼかしちゃうからだめなんだ
分かるならちゃんと書いてクレヨン
その後に(scanfが本当に危険だと分かれば)
>危険だとわかっていれば
の方へ進むんだから
0787786
2005/06/26(日) 00:04:00gets なんかはプログラマがいくらがんばっても
バッファオーバーフローの可能性がある
scanf にはプログラマがいくらがんばっても
解決できない問題があるか知りたいってことね
0788デフォルトの名無しさん
2005/06/26(日) 00:05:560789デフォルトの名無しさん
2005/06/26(日) 00:08:10テストの場ではないのだから。
0790デフォルトの名無しさん
2005/06/26(日) 01:06:21> gets なんかはプログラマがいくらがんばっても
> バッファオーバーフローの可能性がある
そんなことはない。
0791デフォルトの名無しさん
2005/06/26(日) 01:07:500792デフォルトの名無しさん
2005/06/26(日) 01:12:38別の問題がありそうな。
まあfgetsでとってきてsscanfが一番安全だと思うけど。
0793デフォルトの名無しさん
2005/06/26(日) 01:13:25ヒント:まともなのはおまえだけ。他は全員無能。
0794デフォルトの名無しさん
2005/06/26(日) 01:14:20一番アホなやり方ww
バッファが溢れた場合誤動作してしまう最悪なコーディングwww
バカ丸出しwwww
0795デフォルトの名無しさん
2005/06/26(日) 01:21:080796デフォルトの名無しさん
2005/06/26(日) 01:33:060797デフォルトの名無しさん
2005/06/26(日) 01:36:59fgets()で取り込んだ場合は、strchr()で'も使って\n'が取り込まれてるかチェックすれば良いだけだけど。
ああ、別に buf[strlen(buf) - 1] != '\n' でもいいよ。
>>796
プロジェクトにもよるし相手にもよる。
たとえば、ここでこの変数に何を代入して・・・みたいなのをいちいちエンドユーザーさんに見せないでしょ。
機能の概要をしっかり書くことが大事。
0798デフォルトの名無しさん
2005/06/26(日) 01:41:480799デフォルトの名無しさん
2005/06/26(日) 01:43:26バッファ溢れの対策した事無いのバレバレww
標準ライブラリすら把握してないそのアホッぷりwww
恥の上塗り恥ずかしすぎーwwww
0800デフォルトの名無しさん
2005/06/26(日) 02:07:10そう。
取り込んだ文字列をそのまま使うならそのへんは意識する必要アリ。
atoi()やatof()で変換する分には'\n'は無視されるから問題なし。
全部取り込みたかったらgetchar()でヒープ領域に取りこみながら
realloc()してもいいけど、あんまり美しくない罠。
まあCに限定しなければ大体これでやってるけどな。
std::string str;
std::getline(cin, str);
0801デフォルトの名無しさん
2005/06/26(日) 02:11:04バカがバカの言う「scanfとgotoは使うな」というバカ論を刷り込まれた結果がこれ。
単に、バカだから使い道がわからない、回避の方法も考え付かなかっただけのこと。
将来的には使うことがなくなったとしても、そのノウハウとか考え方は
必ず良い方向に蓄積されていく。
バカはバカの言うことを真に受けてますますバカになっただけ。
0802デフォルトの名無しさん
2005/06/26(日) 02:50:51ちょっとまった
\nつけてくれないパターンもありょ
0803デフォルトの名無しさん
2005/06/26(日) 03:02:36ごめん、EOFの場合もあったね。
暫く叩いてなかったから忘れてた。
Windowsでなら、キーイベントクラックしてキー入力を捨てて警告音鳴らすようなインターフェイスとか
よく採用するけど標準関数でバッファを制御する方法って無かったよね
0804デフォルトの名無しさん
2005/06/26(日) 03:40:220805デフォルトの名無しさん
2005/06/26(日) 04:09:10少なくともGLIBCやMSVCRTでは0になるけど。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_crt_atof.2c_.atoi.2c_._atoi64.2c_.atol.asp
http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+atoi
0806デフォルトの名無しさん
2005/06/26(日) 05:21:26処理系がどういう実装してるか引用したって何の意味もないだろ
見るならJIS X 3010とかにすれ
0807デフォルトの名無しさん
2005/06/26(日) 05:22:20gccが別途振る舞いを保証していれば何の問題もないのか
0808デフォルトの名無しさん
2005/06/26(日) 05:45:09規格よりも(将来規格に取り込まれる)共通の独自拡張が先行してる例もあるし、
C++なら満たしてないやつのほうがむしろ多い。
ちゃんと依存だと割り切って使うならalloca()だろうとsystem("stty -echo")だろうと使っていいと思うよ。
経験則的に、機種依存だからといってOSのAPIを叩くのを嫌い、ANSI関数・コンソールアプリだけに
拘る奴は結局何も高度なアプリケーションが書けなかったりする。
MFCだろうがGtk+だろうがSwingだろうが用意されたライブラリを軽々操れる香具師のほうが
順応性が高い。
0809デフォルトの名無しさん
2005/06/26(日) 05:53:02atoiをアトイ
atofをアトフ
とか言う奴を見るとすげえムカつく
0810デフォルトの名無しさん
2005/06/26(日) 07:30:31ってかスレ違いだから移動よろ
0811デフォルトの名無しさん
2005/06/26(日) 07:31:550812デフォルトの名無しさん
2005/06/26(日) 08:40:090813デフォルトの名無しさん
2005/06/26(日) 08:44:480814デフォルトの名無しさん
2005/06/26(日) 08:44:560815デフォルトの名無しさん
2005/06/26(日) 09:25:07printf("イレテミロ(255モジイナイ)"); gets(buf);
0816デフォルトの名無しさん
2005/06/26(日) 09:32:380817デフォルトの名無しさん
2005/06/26(日) 10:24:050818デフォルトの名無しさん
2005/06/26(日) 10:26:180819デフォルトの名無しさん
2005/06/26(日) 19:28:43char buf[256];
printf("イレテミロ(255モジイナイ)"); fgets(buf, sizeof(buf), stdin);
0820デフォルトの名無しさん
2005/06/26(日) 19:29:34>>794
0821デフォルトの名無しさん
2005/06/26(日) 19:49:46なんかいい方法ありませんか。
明らかにオーバーさせても大概何事も無かったかのように処理が進むじゃないですか
0822デフォルトの名無しさん
2005/06/26(日) 19:56:36画面入力だけに限定するならそれこそキーイベント破棄すりゃいいだけだろ。
たとえば数値の入力時に非数字の文字を破棄するようにしたほうがエンドユーザーには優しいわけだし。
リモートシステムは知らない。Webベースのフォームでも書くね、俺なら。
0823デフォルトの名無しさん
2005/06/26(日) 20:25:520824デフォルトの名無しさん
2005/06/26(日) 20:27:25使うとバカがよってくるから
0825デフォルトの名無しさん
2005/06/26(日) 20:27:280826デフォルトの名無しさん
2005/06/26(日) 20:44:590827デフォルトの名無しさん
2005/06/26(日) 21:00:070828デフォルトの名無しさん
2005/06/26(日) 21:38:07GCCでGUIアプリ作ってるのか?
0829デフォルトの名無しさん
2005/06/26(日) 21:45:04GTK+も似たようなもんだよ。
0830デフォルトの名無しさん
2005/06/26(日) 21:47:52自分はコマンドラインアプリしか作ったことないや
Windowsではコードかいたことはない
0831デフォルトの名無しさん
2005/06/26(日) 22:28:23単に、バカだから使い道がわからない、回避の方法も考え付かなかっただけのこと。
将来的には使うことがなくなったとしても、そのノウハウとか考え方は
必ず良い方向に蓄積されていく。
バカはバカの言うことを真に受けてますますバカになっただけ。
0832デフォルトの名無しさん
2005/06/26(日) 22:40:49>>演算子くらいならたまに使う。
0833デフォルトの名無しさん
2005/06/26(日) 22:41:04お前言葉は悪いがいい事言うな
0834デフォルトの名無しさん
2005/06/26(日) 22:43:46Emacsのコードでscanfのコード見てみ
神共でも この程度の回避方法しかしてないんだぞ?
0835デフォルトの名無しさん
2005/06/26(日) 22:45:59もっと馬鹿はそいつらをばかにしてるのにまともなコードをかけず
まともな回避方法をしないままそれらを使う
0836デフォルトの名無しさん
2005/06/26(日) 22:46:36なら貴方が直せば良い
0837デフォルトの名無しさん
2005/06/26(日) 22:51:200838デフォルトの名無しさん
2005/06/26(日) 22:56:20もし、もしも 「scanfを使わなければ殺スッ!」 と言われたなら・・・
使わない
0839デフォルトの名無しさん
2005/06/26(日) 23:08:58対策と言う対策はほとんどしてないね
0840834
2005/06/26(日) 23:11:04この程度とはいったけど
これ以上の方法が俺には思い付くとはいっとらんが?
俺は極力scanfは使うなって言う人だからな
>>837
ごめん
scanfを使ってる部分のコード見てみ
の間違い
0841デフォルトの名無しさん
2005/06/26(日) 23:26:14セキュリティホールをデッチあげてくれますよ
0842デフォルトの名無しさん
2005/06/26(日) 23:26:270843デフォルトの名無しさん
2005/06/26(日) 23:35:58急にどうした?
0844デフォルトの名無しさん
2005/06/26(日) 23:44:240845デフォルトの名無しさん
2005/06/27(月) 00:01:06Cのスレに行け
0846デフォルトの名無しさん
2005/06/27(月) 00:03:580847デフォルトの名無しさん
2005/06/27(月) 00:46:09どこ見てそういう結論に達したんだよ
0848デフォルトの名無しさん
2005/06/27(月) 01:07:080849デフォルトの名無しさん
2005/06/27(月) 01:08:03でたw
一番アホなやり方ww
バッファが溢れた場合誤動作してしまう最悪なコーディングwww
バカ丸出しwwww
↑こいつはキチガイということでFA?
0850デフォルトの名無しさん
2005/06/27(月) 01:29:210851デフォルトの名無しさん
2005/06/27(月) 03:53:03uclibc
0852デフォルトの名無しさん
2005/06/27(月) 10:00:50それは言わないお約束
>>848-849
FA
0853デフォルトの名無しさん
2005/06/27(月) 10:44:09誤動作の原因になることが多いし
Cではそういう無自覚orいいかげんなコーディングがとても多いな。
0854デフォルトの名無しさん
2005/06/27(月) 10:47:071-3行程度の例キボン
0855デフォルトの名無しさん
2005/06/27(月) 10:48:29fgetsは問題ないと言う例を
1-3行程度でキボン
0856デフォルトの名無しさん
2005/06/27(月) 10:52:53char buf[3];
printf("a="); fgets(buf, sizeof(buf), stdin);
int a = atoi(buf);
printf("b="); fgets(buf, sizeof(buf), stdin);
int b = atoi(buf);
printf("a+b=%d\n", a+b);
例としてはこんな感じ。a=で1234と入れると誤動作する。
この手のコードは実際よく見かける。
buf[128]で行読み込むコードとかね。
0857デフォルトの名無しさん
2005/06/27(月) 10:59:531-3行程度で言って下さいって文句いわれるから
俺が書き直しといてやる
char buf[3]; printf("a="); fgets(buf, sizeof(buf), stdin);
int a = atoi(buf); printf("b="); fgets(buf, sizeof(buf), stdin);
int b = atoi(buf); printf("a+b=%d\n", a+b);
0858854
2005/06/27(月) 11:26:34必要?ネタ?ちょっとワカランので保留
>>856
ありがと
なるほど確かに多いな。俺はそんなコードは書かないが
scanf の方がよっぽど安心だ
>>857
ありがと
0859デフォルトの名無しさん
2005/06/27(月) 11:28:25脆弱性は潰し解いた方がいいけどね。
0860デフォルトの名無しさん
2005/06/27(月) 11:36:11誤動作=脆弱性でもないし。
このなあなあな文化がCクオリティ。
0861デフォルトの名無しさん
2005/06/27(月) 12:35:21ベンダーに文句言って対応させるのが普通。
(まぁ仕様書に「一行は127文字まで」とか追記されるだけな場合が多いけどな)
0862デフォルトの名無しさん
2005/06/28(火) 01:05:14なぜかUNIX時代からラインバッファ
UNIXがラインバッファ方式だったからか
0863デフォルトの名無しさん
2005/06/28(火) 01:06:520864デフォルトの名無しさん
2005/06/28(火) 01:11:220865デフォルトの名無しさん
2005/06/28(火) 01:35:49何の根拠も無いあなたたちの価値観で世の中のソフトを
貶めるのは止めてください。
0866デフォルトの名無しさん
2005/06/28(火) 01:40:37こいつらが技術がないだけ
0867デフォルトの名無しさん
2005/06/28(火) 02:39:31セキュリティーホール突かれまくりの誤動作しまくりってことでFA?
0868デフォルトの名無しさん
2005/06/28(火) 02:44:420869デフォルトの名無しさん
2005/06/28(火) 02:45:28std::getline(std::cin, str);
これでなんか問題ある?
gccじゃなくてGCC(GNU Compiler Collection)のほうなのでC++もありでしょ
0870デフォルトの名無しさん
2005/06/28(火) 02:46:51getsやsprintfなんて残しておくのが悪い。
0871デフォルトの名無しさん
2005/06/28(火) 03:08:39こいつCで書くとどんなのになる?もしくは無理?
0872デフォルトの名無しさん
2005/06/28(火) 03:10:39使い方を間違えてるだけじゃん。
配列のサイズチェックを行わない言語仕様に脆弱性がある、
と言っているようなもの。
0873デフォルトの名無しさん
2005/06/28(火) 03:26:16ヒント:1024バイト
0874デフォルトの名無しさん
2005/06/28(火) 03:30:160875デフォルトの名無しさん
2005/06/28(火) 03:35:14個々のフィールドのサイズを制限するだけで充分な場合がほとんどだが。
sprintf(buff, "%.1000s", str);
を、わざわざ
snprintf(buff, 1024, "%s", str);
にしなければいけない理由は全く無い。
0876デフォルトの名無しさん
2005/06/28(火) 03:39:23バッファを拡張しながらsprintfを使いたい場合だな。
ヒープに確保したバッファに入りきらないサイズだと判明したら
バッファを広げてもう一度実行するような。
0877デフォルトの名無しさん
2005/06/28(火) 08:10:140878デフォルトの名無しさん
2005/06/28(火) 08:16:13まさか%.*のことでもあるまいし。
それ以上に873の意味がどうしてもわからないけど。
俺にはわからないことばかりだよ。
0879デフォルトの名無しさん
2005/06/28(火) 08:20:17sprintf()で生成できることが保証されているのは1024まで。
0880デフォルトの名無しさん
2005/06/28(火) 08:24:280881デフォルトの名無しさん
2005/06/28(火) 08:32:37初めて知ったよ。
で、とりあえずぐぐってみたけど
「wsprintfには1024バイトの制限があって、sprintfにはそんな制限はない」
というのがトップに来たけど。
http://www.google.co.jp/search?biw=1051&hl=ja&q=sprintf+1024+%E5%88%B6%E9%99%90&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
出来ればどこに載っているのか教えて欲しいのだが。
少なくとも、俺はそんな制限見たこと無いし。
まあ、俺は企画書は読んだこと無いし、
手元にあるK&R2ndに載っていないからって、そんな制限はないと言い切るつもりもない。
printfに制限が無くてsprintfに制限があるのは不自然だとは思うがね。
0882デフォルトの名無しさん
2005/06/28(火) 08:35:12%*を知らないとしか思えない。
あるいは、フォーマット文字列にリテラルしか使えないと思っているとか。
万が一↑の通りなら
バカじゃねーのって感じ。
0883デフォルトの名無しさん
2005/06/28(火) 08:55:19sprintf(3)に長さの制限なんてないけど、
gccにsprintf(3)は含まれてないしね。
0884デフォルトの名無しさん
2005/06/28(火) 08:58:010885デフォルトの名無しさん
2005/06/28(火) 09:08:22「sprintfのどこが脆弱なのか」という
最初の疑問の答えを示してくれないのでしょうか。
0886デフォルトの名無しさん
2005/06/28(火) 09:18:48「スレ違いなので移動しろ」という
最初の指示をどうして行動でしめてくれないのでしょうか。
0887デフォルトの名無しさん
2005/06/28(火) 09:30:25他の人がGCCと関係ないscanfやgotoやfgetsの話をしていても
俺は全然書き込まなかったし、その間スレ違いとの指摘も無く
その流れでsprintfの話題が出たから加わったんだよ。
それも、無知に「おまえは無知だよ」といってるだけだから。
スレ違いとの指摘が>>883だとしても
移動しろなんて言われてないよ。少なくとも俺は。
まあ、無知な人はちゃんと反論出来ないらしいし、もうやめるけど。
0888デフォルトの名無しさん
2005/06/28(火) 09:35:210889デフォルトの名無しさん
2005/06/28(火) 09:36:09わがまま世代の骨頂だな
釣りにしても、フナ釣りのエサが干物じゃ食いつかんよ
とりあえず、おまえら全員だまれな
0890デフォルトの名無しさん
2005/06/28(火) 09:37:480891デフォルトの名無しさん
2005/06/28(火) 09:38:33まずおまえが黙れ。
0892デフォルトの名無しさん
2005/06/28(火) 09:39:51スレ違いだからねぇ〜〜〜〜〜〜〜
ス・レ・ち・が・ぃ !!
0893デフォルトの名無しさん
2005/06/28(火) 09:43:08ほら、最後に自分が書かない時が済まない。
だからうざがられるのに。
0894デフォルトの名無しさん
2005/06/28(火) 09:44:41○と気が済まない
>>892>>893スレ違いだよ。いいかげんにしな。
0895デフォルトの名無しさん
2005/06/28(火) 09:55:36スレ違いの話をやめさせるためではなく
わざと煽って、よりスレ違いな話題にもっていくため。
>>889>>892より。
0896デフォルトの名無しさん
2005/06/28(火) 22:21:41libjava, libstdc++はgccに入っているのに、glibcは入らないのな。
0897デフォルトの名無しさん
2005/06/29(水) 00:12:25libc はシステムコールのエントリポイントやロケール関係も入ってるから、
Linux, GNU Hurd 以外で使うのは激しく面倒だと思われ。
まぁ、ネタとしては、こーゆーのもあるが。
http://www.debian.org/ports/kfreebsd-gnu/
0898デフォルトの名無しさん
2005/06/29(水) 06:53:280899デフォルトの名無しさん
2005/06/29(水) 07:09:22全面的に抱えることはないんじゃない?
0900デフォルトの名無しさん
2005/06/29(水) 12:24:360901デフォルトの名無しさん
2005/06/29(水) 12:32:05マニュアルは読みましたか? そのまんまのオプションがありますよ。
プラットフォームによっては、どうしてもスタティックリンクできない
ものもあるけどね。
0902デフォルトの名無しさん
2005/07/02(土) 20:31:320903デフォルトの名無しさん
2005/07/02(土) 20:33:420904デフォルトの名無しさん
2005/07/02(土) 20:41:55/Zpがなにかわかってないだろ
0905デフォルトの名無しさん
2005/07/02(土) 21:39:55知ったか乙
0907デフォルトの名無しさん
2005/07/02(土) 22:39:51謎。>>903 はあるともないとも書いてなくて、単に情報源を示しただけなのにな。
ちなみに
/Zp[n] pack structs on n-byte boundary
だそーだ。
0908デフォルトの名無しさん
2005/07/03(日) 01:15:050909デフォルトの名無しさん
2005/07/03(日) 04:58:520910デフォルトの名無しさん
2005/07/03(日) 08:33:31ソース中の変数宣言してる個所で逐一指定。
一見するとコンパイラオプションは便利なようだけど、
これってオプションによって動いたり動かなかったりする
ソースが出来上がるってことでしょ?マクロで対応する方が
正しいよね。
ところで>>902はあるのかないのか聞いてるんだから
「ない」と一言言えばいいんじゃないの?
0911デフォルトの名無しさん
2005/07/03(日) 08:49:550912デフォルトの名無しさん
2005/07/03(日) 08:59:20-Fpack-struct[=n]
他にも-falign-XXX=n ってのがいくつかあるけど
0913デフォルトの名無しさん
2005/07/03(日) 09:12:08それはfooという変数を4byte境界に配置するっていうだけで、
struct fooについてはなんの指定にもならないはずだけど。
0914デフォルトの名無しさん
2005/07/03(日) 11:06:150915デフォルトの名無しさん
2005/07/03(日) 11:49:59http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/Type-Attributes.html
http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/Variable-Attributes.html
http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/Function-Attributes.html
↓問い合わせ
http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/Alignment.html
サンプルを見れば英語駄目でも大体分かる。
0916デフォルトの名無しさん
2005/07/03(日) 15:44:19なんで aligned の話になってるんだよ。
"pack structs on n-byte boundar" なら packed だろ。
0917デフォルトの名無しさん
2005/07/03(日) 16:58:49藤井ブラボー
あ あのブラボーじゃなくてブラザーなんですけど
ブゥラボーって習ったんだよ
あっあっブラボーですブラボー
それはよしとして、GCCはコンパイルコンパイラネームを隠すことは絶対に出来ないのか?
GCCである以上、誰かが作ればできるだろ?
商用でしかできないとかいってるアホもおるけん。。。。
0918デフォルトの名無しさん
2005/07/03(日) 17:03:55コンパイラネームってどこに載ってるんだっけ
ちょっとお姉さんに教えなさい
0919デフォルトの名無しさん
2005/07/03(日) 17:04:500920デフォルトの名無しさん
2005/07/04(月) 06:35:40>>915はpackedのページじゃない…
0921デフォルトの名無しさん
2005/07/04(月) 07:29:210922デフォルトの名無しさん
2005/07/04(月) 07:44:55c99だったら
#include <stdint.h>
0923デフォルトの名無しさん
2005/07/05(火) 01:00:19様なのがいくつか有るんですが、何かオプション等で以前のバージョンの様に
振舞わせて互換性を保つことは出来ないでしょうか。
0924デフォルトの名無しさん
2005/07/05(火) 01:04:07ウォーニングもエラーも取ってコンパイルすればすべて解決
0925デフォルトの名無しさん
2005/07/05(火) 01:14:48モノによってはあるが、ソースを変える以外に方法がないのもある。
0926デフォルトの名無しさん
2005/07/05(火) 03:08:12わがまま言ってんの??
0927デフォルトの名無しさん
2005/07/05(火) 07:50:460928デフォルトの名無しさん
2005/07/05(火) 08:08:36yes
0929デフォルトの名無しさん
2005/07/05(火) 10:58:30そんなことよりgcc4.0.0にはまだ正式には対応していない。
0930デフォルトの名無しさん
2005/07/05(火) 18:08:140931デフォルトの名無しさん
2005/07/06(水) 11:45:19ワーニングってのはバグがあるけど文法としては間違ってないってことだから
そのまんまで出すと必ずセキュリチーに問題が出る
だからワーニングあるソースは認めない
といわれました
0932デフォルトの名無しさん
2005/07/06(水) 12:26:25思い出話を語りたいなら鼬害。そうでないならこちらへどうぞ。
http://pc8.2ch.net/test/read.cgi/tech/1118072681/
0933デフォルトの名無しさん
2005/07/07(木) 06:28:10経過時間がうまく計測できません。clock()以外で、ミリ秒まで取得する方法を教えてください。
0934デフォルトの名無しさん
2005/07/07(木) 07:35:010935デフォルトの名無しさん
2005/07/07(木) 18:54:33知ってるがマルチには教えない。
0936デフォルトの名無しさん
2005/07/07(木) 22:10:560937デフォルトの名無しさん
2005/07/08(金) 07:45:330938デフォルトの名無しさん
2005/07/08(金) 15:03:40書いたらだめだよっておかあさんが言ってた。
0939デフォルトの名無しさん
2005/07/08(金) 15:05:13開発者の頭が弱いから?
0940デフォルトの名無しさん
2005/07/08(金) 15:10:20gccの最適化をあてにすることよりも、まず自分のアルゴリズムを見直してみたら?
その方がずっと前向きですよ。
0941デフォルトの名無しさん
2005/07/08(金) 15:12:57逆アセンブルして比べたってこと?
弱いところが或のなら、報告してみるなり
自分で修正してパッチ送るなりしてみては?
0942デフォルトの名無しさん
2005/07/08(金) 15:39:54違う。gccはあらゆるCPUをターゲットにコアが書かれているから、x86に
特化した最適化はしにくいと、gccのメインチーフがインタビューで言って
いたぞ。
URLは失念したが、まだ残ってるはず。
0943デフォルトの名無しさん
2005/07/08(金) 15:49:210944デフォルトの名無しさん
2005/07/08(金) 15:52:17これの事か?
Inappropriate ChangeLog entry
ttp://gcc.gnu.org/ml/gcc/2005-07/msg00285.html
パッチした人が(略)な国の人だからこんな事するのかなぁ。
こんな事するなんて、なんか悲しいよね。
0945デフォルトの名無しさん
2005/07/08(金) 15:57:490946デフォルトの名無しさん
2005/07/08(金) 16:01:260947デフォルトの名無しさん
2005/07/08(金) 16:24:530948黒幕
2005/07/08(金) 16:27:130949デフォルトの名無しさん
2005/07/08(金) 19:13:280950デフォルトの名無しさん
2005/07/08(金) 22:10:41それもカーネルによってはマルチスレッドでの測定がうまくいかない罠
0951デフォルトの名無しさん
2005/07/09(土) 18:53:180952デフォルトの名無しさん
2005/07/09(土) 19:02:190953デフォルトの名無しさん
2005/07/09(土) 19:42:450954デフォルトの名無しさん
2005/07/10(日) 16:01:24ChangeLogそのものはどこで読めますか?
0955デフォルトの名無しさん
2005/07/10(日) 16:32:09嫌中ネタは中国板でどうぞ。
0956デフォルトの名無しさん
2005/07/10(日) 16:39:370957デフォルトの名無しさん
2005/07/10(日) 18:26:010958デフォルトの名無しさん
2005/07/10(日) 19:12:510959デフォルトの名無しさん
2005/07/10(日) 19:35:470960デフォルトの名無しさん
2005/07/10(日) 21:55:190961デフォルトの名無しさん
2005/07/10(日) 21:57:420962デフォルトの名無しさん
2005/07/10(日) 22:02:450963デフォルトの名無しさん
2005/07/10(日) 22:23:23ただそれだけでもないような気もする。
0964デフォルトの名無しさん
2005/07/10(日) 22:23:420965デフォルトの名無しさん
2005/07/11(月) 00:28:05アドレスのランダム化を切るにはどうしたらいいんでしょうか?
gcc -fno-PIE -fno-pie は効きませんですた。
execstack -s a.out もダメ。。。
0966デフォルトの名無しさん
2005/07/11(月) 13:49:45日中韓が仲良くなりすぎると面白くないと感じる国がいるのも事実。
ヒント: *
0967デフォルトの名無しさん
2005/07/11(月) 13:56:45例えそうだとしても中韓の実態があからさまになった以上
関係修復は世代が変わるまでは無理だよ
0968デフォルトの名無しさん
2005/07/11(月) 14:12:30世代が変わっても、アイツらが変わらない限り無理。
0969デフォルトの名無しさん
2005/07/11(月) 20:29:470970デフォルトの名無しさん
2005/07/11(月) 22:48:57アとか台とかか
0971デフォルトの名無しさん
2005/07/12(火) 00:13:57領海に潜水艦突入
EEZで密漁->逃走->国際法を無視して政府が匿う
これらはアとか台の思惑に関係ない
仲良くできるか?
0972デフォルトの名無しさん
2005/07/12(火) 00:16:39領海に入った奴や匿う政府とは仲良くできないかもしれないが
それ以外の奴らとは会ってみなければ分からない
とりあえず GCC について意見を言ってみた
0973デフォルトの名無しさん
2005/07/12(火) 00:19:510974デフォルトの名無しさん
2005/07/12(火) 00:34:290975デフォルトの名無しさん
2005/07/12(火) 02:59:07int main(short argc, char **argv)
これだと
warning: first argument of `main' should be `int'
って文句いわれるわけ?
引数の数なんてcharでも十分でしょ
真面目な理由知ってるひといる?
0976デフォルトの名無しさん
2005/07/12(火) 03:40:15intとshortでは、異なる結果になりうるから。
例えばスタックがshortと同じ幅の場合、スタック操作の段階で誤動作する。
0977デフォルトの名無しさん
2005/07/12(火) 09:18:33違う型ですから。
それからANSI以前のCでは、
charやshortでもintにpromotionされて扱う事が約束されたが、
ANSI Cからは、結果が同じなら実際にはshortで渡す処理系も許容。
つまり定義と宣言に食い違いがあるとまずい処理系が許容されている。
0979デフォルトの名無しさん
2005/07/12(火) 13:31:160980デフォルトの名無しさん
2005/07/12(火) 15:16:32http://pc8.2ch.net/test/read.cgi/tech/1121146723/
0981デフォルトの名無しさん
2005/07/12(火) 15:49:140982デフォルトの名無しさん
2005/07/12(火) 15:50:180983デフォルトの名無しさん
2005/07/12(火) 16:02:490984デフォルトの名無しさん
2005/07/12(火) 20:53:460985デフォルトの名無しさん
2005/07/12(火) 21:46:330986デフォルトの名無しさん
2005/07/12(火) 22:26:38おれはソロモンの鍵の方が好きだが
レス数が950を超えています。1000を超えると書き込みができなくなります。