一昔前は、そこらの商用コンパイラよりも良い最適化をする
といわれたGCCも最近は色あせてきてたけど。。。
待望の新バージョンリリースで巻き返しなるか?
とりあえずインストールしてみよう
探検
祝・GCC 3.0リリース
■ このスレッドは過去ログ倉庫に格納されています
1さあね
NGNGNGNG
>>383
372-384のうち375の前半と378以外は全て非建設的だがな。
372-384のうち375の前半と378以外は全て非建設的だがな。
NGNG
わはは、ピュアな脊髄反射だなあw
んで、マジレスするとISO/IEC 14882には
そもそもここで言うerrorとかwarningという用語は登場しないし、
"正しい"プログラムにdiagnostic messageを出してはいけないとも書いてないわけだが。
んで、マジレスするとISO/IEC 14882には
そもそもここで言うerrorとかwarningという用語は登場しないし、
"正しい"プログラムにdiagnostic messageを出してはいけないとも書いてないわけだが。
NGNG
そういう話題はプログラミング板とかでやって。
NGNG
NGNG
>>385
もうやめとけw
もうやめとけw
NGNG
>>385の方がやや劣勢?
NGNG
まあ、とりあえず、
> `typename std::basic_filebuf<_CharT, _Traits>::int_type' is implicitly a typename
> implicit typename is deprecated
ちゅうことで。
> `typename std::basic_filebuf<_CharT, _Traits>::int_type' is implicitly a typename
> implicit typename is deprecated
ちゅうことで。
392あぼーん
NGNGあぼーん
393名無しさん@お腹いっぱい。
NGNG gcc3.3でmips用が作れない…。
どうしたものか
どうしたものか
NGNG
NGNG
>>393
エラーはどんなかんじなの?
エラーはどんなかんじなの?
396393
NGNG >>395
はい、まず手順から
gcc-3.3.tar.gz,newlib-1.11.0.tar.gz,binutils-2.13.2.1.tar.gzを
ftp.ring.gr.jpからもってくる
~/source/toolchain/以下に展開する。
# binutilsのインストール
cd binutils-2.13.2.1
./configure --prefix=/usr/local/cross --target=mips-embedded-elf
make
su -m
make install
ここで~/.cshrcに手を入れて/usr/local/crossにPATHを通す。
source ~/.cshrc
はい、まず手順から
gcc-3.3.tar.gz,newlib-1.11.0.tar.gz,binutils-2.13.2.1.tar.gzを
ftp.ring.gr.jpからもってくる
~/source/toolchain/以下に展開する。
# binutilsのインストール
cd binutils-2.13.2.1
./configure --prefix=/usr/local/cross --target=mips-embedded-elf
make
su -m
make install
ここで~/.cshrcに手を入れて/usr/local/crossにPATHを通す。
source ~/.cshrc
397393
NGNG # gccのインストール
cd ,../gcc-3.3
ln -s ../newlib-1.11.0/newlib .
./configure --prefix=/usr/local/cross --target=mips-embedded-elf \
--with-newlib --enable-languages="c,c++"
make (ここでエラー)
xgcc: installation problem, cannot exec `mips-tfile': No such file or directory
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3/gcc
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3/gcc
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3
googleでmips-tflileを検索すると--with-gnu-asをつけた方がよい
との例があったので、それを追加して再チャレンジ
http://www.spacelan.ne.jp/~m-yana/micro/gnu/mips/mipsegcs.htm
(gcc-3.3/ ディレクトリは一度消してやりなおし)
cd ,../gcc-3.3
ln -s ../newlib-1.11.0/newlib .
./configure --prefix=/usr/local/cross --target=mips-embedded-elf \
--with-newlib --enable-languages="c,c++"
make (ここでエラー)
xgcc: installation problem, cannot exec `mips-tfile': No such file or directory
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3/gcc
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3/gcc
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3
googleでmips-tflileを検索すると--with-gnu-asをつけた方がよい
との例があったので、それを追加して再チャレンジ
http://www.spacelan.ne.jp/~m-yana/micro/gnu/mips/mipsegcs.htm
(gcc-3.3/ ディレクトリは一度消してやりなおし)
398393
NGNG make (またエラー)
tiswctype.c ..linked
twctrans.c ..linked
twctype.c ..linked
wctype.exp ..linked
creating cache ../config.cache
configure: error: can not find install-sh or install.sh in .. ./..
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3
ここで力尽きました。(gcc-3.3/ にはinstall-shがあるのに・・・)
tiswctype.c ..linked
twctrans.c ..linked
twctype.c ..linked
wctype.exp ..linked
creating cache ../config.cache
configure: error: can not find install-sh or install.sh in .. ./..
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3
ここで力尽きました。(gcc-3.3/ にはinstall-shがあるのに・・・)
399393
NGNG 本当は--enable-sharedと--enable-threadsもつけたいのですが
まず基本をするためにこのように(>>396-398)しました。
ただわからないのは、BSDには自前のlibcがあるのに
newlibが必要なのかと言うところです。
googleで検索するとみんなやり方がばらばらで
調べれば調べるほどどんどんわからなくなっていきます。。。
まず基本をするためにこのように(>>396-398)しました。
ただわからないのは、BSDには自前のlibcがあるのに
newlibが必要なのかと言うところです。
googleで検索するとみんなやり方がばらばらで
調べれば調べるほどどんどんわからなくなっていきます。。。
400393
NGNG このやり方はgoogleとEmbedde UNIX,、
UNIX USERのGBA特集(--targetの指定の仕方)を参考にしました。
長くなりましたがよろしくお願いします
UNIX USERのGBA特集(--targetの指定の仕方)を参考にしました。
長くなりましたがよろしくお願いします
401393
NGNG 何度もすいません
hostはAthlon-xp1800+(つまりi386)のNetBSDです。
hostはAthlon-xp1800+(つまりi386)のNetBSDです。
NGNG
そんなに苦労して再コンパイルしたって、
目に見えて大きな変化は無いと思うんだけどね。
目に見えて大きな変化は無いと思うんだけどね。
NGNG
install-shをそれっぽいディレクトリにばらまいてみては?
NGNG
っていうか、 .. って云ってるんだから gcc-3.3/ じゃなくてその上、
toolchain/ に置けばよさそうな気がする…
昔 cygwin で gcc compile したときも、一つ上に置いてたし。
toolchain/ に置けばよさそうな気がする…
昔 cygwin で gcc compile したときも、一つ上に置いてたし。
405393
NGNGNGNG
NGNG
>>406
は?
は?
NGNG
>>407
夏厨は放置プレーしる
夏厨は放置プレーしる
NGNG
無知がnewlib使ってGPL汚染ウマー
NGNG
newlibってeCosのためのライブラリだと思ってたけど
これって間違ってますか?
これって間違ってますか?
NGNG
まあもともとは組み込みOS向けのちっこいlibcってことで開発
されたんだろうけど、いまとなってはCygwinが主要ターゲットって
説も…。
されたんだろうけど、いまとなってはCygwinが主要ターゲットって
説も…。
NGNG
413393
NGNG 試行錯誤してました。
まず、>>403-404
install.shをばらまくのはどうもだめでした。
ここで途方に暮れること数日・・・・。
そこでNetBSD1.6.1のクロスtoolchainの構築をlogに残して
どんなことやってるのか見てみました。
あと、build.shで作ることの出来るmips用includeファイルと
libを使えば良いんじゃないかと思い
こんなconfigureオプションにしてみました。
binutils
./configure --prefix=/usr/local/cross \
--target=mipsel--netbsd --with-gnu-as --with-gnu-ld \
--disable-nls --disable-shared
gcc-3.3
./configure --prefix=/usr/local/cross \
--target=mipsel--netbsd --with-gnu-as --with-gnu-ld \
--disable-nls --disable-shared \
--with-headers=$mipsel_include_path --with-libs=$mipsel_libs_path
なんとかうまくいきましたが疑問が・・・・・。
このheaderとlibは、あるディレクトリ以下の閉じたソースで
includeファイルをmake時に決めうちする場合
このgcc-3.3でつくるオブジェクトには影響しないんですよね。
つまりはこのheaderとlibはgcc-3.3構築のみに
使われると思ってるんですが・・・
認識あってますでしょうか?
まず、>>403-404
install.shをばらまくのはどうもだめでした。
ここで途方に暮れること数日・・・・。
そこでNetBSD1.6.1のクロスtoolchainの構築をlogに残して
どんなことやってるのか見てみました。
あと、build.shで作ることの出来るmips用includeファイルと
libを使えば良いんじゃないかと思い
こんなconfigureオプションにしてみました。
binutils
./configure --prefix=/usr/local/cross \
--target=mipsel--netbsd --with-gnu-as --with-gnu-ld \
--disable-nls --disable-shared
gcc-3.3
./configure --prefix=/usr/local/cross \
--target=mipsel--netbsd --with-gnu-as --with-gnu-ld \
--disable-nls --disable-shared \
--with-headers=$mipsel_include_path --with-libs=$mipsel_libs_path
なんとかうまくいきましたが疑問が・・・・・。
このheaderとlibは、あるディレクトリ以下の閉じたソースで
includeファイルをmake時に決めうちする場合
このgcc-3.3でつくるオブジェクトには影響しないんですよね。
つまりはこのheaderとlibはgcc-3.3構築のみに
使われると思ってるんですが・・・
認識あってますでしょうか?
414393
NGNG あとgcc-3.3のマニュアルには
-mno-half-pic -mhalf-picがあるんですが
しらないオプションと言われるんです。
gccのメーリングリストで見つけました。
昨年の6月に削除されたようです・・・。
そのためNetBSDカーネルコンパイルできない・・・・。
マニュアルアップデートしてないのホントですね
-mno-half-pic -mhalf-picがあるんですが
しらないオプションと言われるんです。
gccのメーリングリストで見つけました。
昨年の6月に削除されたようです・・・。
そのためNetBSDカーネルコンパイルできない・・・・。
マニュアルアップデートしてないのホントですね
NGNG
416あぼーん
NGNGあぼーん
417名無しさん@お腹いっぱい。
NGNG 3.3.1 age
418あぼーん
NGNGあぼーん
419あぼーん
NGNGあぼーん
420あぼーん
NGNGあぼーん
421名無しさん@お腹いっぱい。
NGNG gccは糞
NGNG
お通じありがたし
423名無しさん@お腹いっぱい。
NGNG gccは糞
NGNG
3.4 でまた C++ ABI 変わるってほんと?
426名無しさん@お腹いっぱい。
NGNG 3.3.2age
NGNG
Plamo Linux 2.2.6 上で gcc-3.3.2 をビルドしようとしてるんだが、
$ cd /usr/local/src
$ tar zxf ~/gcc-3.3.2.tar.gz
$ mkdir gccobj
$ cd gccobj
$ ../gcc-3.3.2/configure --prefix=/usr
$ make bootstrap
/bin/sh ./libtool --tag=CXX --mode=link /usr/local/src/gccobj/gcc/xgcc -shared-l
ibgcc -B/usr/local/src/gccobj/gcc/ -nostdinc++ -L/usr/local/src/gccobj/i686-pc-
linux-gnu/libstdc++-v3/src -L/usr/local/src/gccobj/i686-pc-linux-gnu/libstdc++-v
3/src/.libs -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem
/usr/i686-pc-linux-gnu/include -L/usr/local/src/gccobj/i686-pc-linux-gnu/libjav
a -ffloat-store -g -O2 -o libgcj.la -objectlist libgcj.objectlist \
../boehm-gc/libgcjgc_convenience.la ../libffi/libffi_convenience.la ../zlib/libz
gcj_convenience.la \
-rpath /usr/lib/. -rpath /usr/lib/. -lpthread ./libltdl/libltdlc.la -version-i
nfo `grep -v '^#' ../../../gcc-3.3.2/libjava/libtool-version`
ここでループしちゃって帰ってこない。
なんでだろ?
$ cd /usr/local/src
$ tar zxf ~/gcc-3.3.2.tar.gz
$ mkdir gccobj
$ cd gccobj
$ ../gcc-3.3.2/configure --prefix=/usr
$ make bootstrap
/bin/sh ./libtool --tag=CXX --mode=link /usr/local/src/gccobj/gcc/xgcc -shared-l
ibgcc -B/usr/local/src/gccobj/gcc/ -nostdinc++ -L/usr/local/src/gccobj/i686-pc-
linux-gnu/libstdc++-v3/src -L/usr/local/src/gccobj/i686-pc-linux-gnu/libstdc++-v
3/src/.libs -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem
/usr/i686-pc-linux-gnu/include -L/usr/local/src/gccobj/i686-pc-linux-gnu/libjav
a -ffloat-store -g -O2 -o libgcj.la -objectlist libgcj.objectlist \
../boehm-gc/libgcjgc_convenience.la ../libffi/libffi_convenience.la ../zlib/libz
gcj_convenience.la \
-rpath /usr/lib/. -rpath /usr/lib/. -lpthread ./libltdl/libltdlc.la -version-i
nfo `grep -v '^#' ../../../gcc-3.3.2/libjava/libtool-version`
ここでループしちゃって帰ってこない。
なんでだろ?
NGNG
430427
NGNG 長い...。
24 時間たっても終わらないよぅ(Celeron 1.4GHz)。
24 時間たっても終わらないよぅ(Celeron 1.4GHz)。
431427
NGNG 終わった...。
26 時間ばかりかかったです。
こーゆーのを見ると旧式になったのだなぁと思ふ。
26 時間ばかりかかったです。
こーゆーのを見ると旧式になったのだなぁと思ふ。
NGNG
世間ではCeleron 1.4GHzで旧式なのか...........
433427
NGNG いや、俺もそんなことはないと思いたいのだが、
1アプリにすぎない gcc のビルドに丸1日かかっちゃうと
ちょっと切ない気持ちになる。
フツーに使う分には十分な性能なんだがな。
1アプリにすぎない gcc のビルドに丸1日かかっちゃうと
ちょっと切ない気持ちになる。
フツーに使う分には十分な性能なんだがな。
Status of processor 1 as of: 10/21/03 22:19:15
Processor has been on-line since 10/20/03 02:54:11.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.
Status of processor 3 as of: 10/21/03 22:19:15
Processor has been on-line since 10/20/03 02:54:12.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.
というマシンで今からビルドしてみます。
とれくらいかかるかな?
Processor has been on-line since 10/20/03 02:54:11.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.
Status of processor 3 as of: 10/21/03 22:19:15
Processor has been on-line since 10/20/03 02:54:12.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.
というマシンで今からビルドしてみます。
とれくらいかかるかな?
NGNG
書きわすれた。
>>427
java で馬鹿みたいに時間喰ってるので、java を使用しないのであれば、
--enable-languages="c,c++,f77,objc,ada"
でかなり時間を節約できます。
>>427
java で馬鹿みたいに時間喰ってるので、java を使用しないのであれば、
--enable-languages="c,c++,f77,objc,ada"
でかなり時間を節約できます。
NGNG
漏れは--enable-languages=c,c++だけだな
NGNG
libgcc_s.soをdynamic linkされるのがうっとおしいので
いつもspecsファイルを手で変更しているのですが、./configure
のオプションなどで変更できるのでしょうか?
いつもspecsファイルを手で変更しているのですが、./configure
のオプションなどで変更できるのでしょうか?
>>438
--disable-shared
--disable-shared
NGNG
441427
NGNGNGNG
NGNG
H8用cross、未だ3.0.3+平田patchを超えられず(;´Д`)
NGNG
うちのSS5だとどれ位かかるかな…
NGNG
NGNG
3.4 はまた C++ ABI が変わるんだとか...
NGNG
ヽ(`Д´)ノ
450名無しさん@お腹いっぱい。
NGNG Solaris で、マルチスレッドのコンパイル&リンクするときって、どうやるの?
NGNG
#define _REENTRANT
#include <pthread.h>
#include <thread.h>
Sunのcc: -mt ... -lpthread [必要ならば -lrt]
gcc: -pthread ... -lpthread [必要ならば -lrt]
#include <pthread.h>
#include <thread.h>
Sunのcc: -mt ... -lpthread [必要ならば -lrt]
gcc: -pthread ... -lpthread [必要ならば -lrt]
NGNG
gccはoption無しで大丈夫。
453名無しさん@お腹いっぱい。
NGNG make age
454オブジェクト指向促進運動
NGNG IT業界にアージャイル開発とデザインパターンを広めよう!
C言語を使ってかなり苦労したので
その苦労を最小限におさえるために
アージャイル開発、デザインパターンを
多くのプログラマに使って欲しいと思うことがある。
一種の挨拶みたいなものだね。
「なるべく挨拶を心がけましょう。」
「なるべき綺麗な字で書きましょう。」
のように
デザインパターンを使うこと、アージャイル開発することが
プログラマの習慣、常識になってほしい。
なんとか、デザインパターン文化、アージャイル開発文化を押し広げられたら・・・。
IT業界の将来はオブジェクト指向とアージャイル開発が握っています!
C言語を使ってかなり苦労したので
その苦労を最小限におさえるために
アージャイル開発、デザインパターンを
多くのプログラマに使って欲しいと思うことがある。
一種の挨拶みたいなものだね。
「なるべく挨拶を心がけましょう。」
「なるべき綺麗な字で書きましょう。」
のように
デザインパターンを使うこと、アージャイル開発することが
プログラマの習慣、常識になってほしい。
なんとか、デザインパターン文化、アージャイル開発文化を押し広げられたら・・・。
IT業界の将来はオブジェクト指向とアージャイル開発が握っています!
NGNG
オブジェクト指向==デザパタですか。ずいぶん視野の狭いお話で。
456名無しさん@お腹いっぱい。
NGNG いまだに2.95ですが何か
NGNG
>>456
ちんぽむけてますか?
ちんぽむけてますか?
NGNG
俺的にさっさとlispのコンパイラ作って欲しい
NGNG
Gnu is Not Unix
RMSおよびGNUはUNIX市場をぶち壊すことがその目的です。
LISP,関数型言語の繁栄のために日夜努力されているのです。
Allegroの商圏を踏み荒らすような真似をするはずも
ありません。
RMSおよびGNUはUNIX市場をぶち壊すことがその目的です。
LISP,関数型言語の繁栄のために日夜努力されているのです。
Allegroの商圏を踏み荒らすような真似をするはずも
ありません。
NGNG
anonymous cvs server落ちてる?
NGNG
ここ最近ずっとおかしくない?
NGNG
うん、gnu.orgのCVS serverおかしい
NGNG
まあg++の作業はちょっと遅れてるっぽいし、
3.3の完成度は高いから、2年ぐらいは
新規のリリースなしでもいいかな〜なんて。
3.3の完成度は高いから、2年ぐらいは
新規のリリースなしでもいいかな〜なんて。
NGNG
gcc 3.4 って、cc1 とか collect2 が /usr/libexec に移動しているね。
それと /usr/lib/gcc-lib が /usr/lib/gcc になってた。
それと /usr/lib/gcc-lib が /usr/lib/gcc になってた。
465名無しさん@お腹いっぱい。
NGNG WE LOVE GCC!!!
NGNG
468名無しさん@お腹いっぱい。
NGNG このスレの温度
| |- 20
| |
| |- 10
| |
| |- 0
| |
| |- -10 ∧_∧
|┃| (´∀` )
|┃| ( )
. (●) | | |
 ̄ (_(__)
| |- 20
| |
| |- 10
| |
| |- 0
| |
| |- -10 ∧_∧
|┃| (´∀` )
|┃| ( )
. (●) | | |
 ̄ (_(__)
469名無しさん@お腹いっぱい。
NGNG 3.3の完成度は高いのか....(泣)
insn:HI 2040 2044 3203 137 ff01ebc0 (set (reg:DI 31 %i7 [32])
(fix:DI (fix:DF (reg:DF 32 %f0 [647])))) 166 {fix_truncdfdi2} (insn_list 2037 (nil))
(nil))
exif.c:673: internal compiler error: in reload_cse_simplify_operands, at reload1.c:8345
完全なバグ報告を送って下さい。
適切ならばプリプロセス後のソースをつけてください。
<URL:http://gcc.gnu.org/bugs.html> を見れば方法が書いてあります。
gmake: *** [exif.o] Error 1
bash-2.05$ gcc -v
/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/specs から spec を読み込み中
コンフィグオプション: ../gcc-3.3.2/configure --prefix=/opt/gnu --enable-languages=c,c++
スレッドモデル: posix
gcc バージョン 3.3.2
insn:HI 2040 2044 3203 137 ff01ebc0 (set (reg:DI 31 %i7 [32])
(fix:DI (fix:DF (reg:DF 32 %f0 [647])))) 166 {fix_truncdfdi2} (insn_list 2037 (nil))
(nil))
exif.c:673: internal compiler error: in reload_cse_simplify_operands, at reload1.c:8345
完全なバグ報告を送って下さい。
適切ならばプリプロセス後のソースをつけてください。
<URL:http://gcc.gnu.org/bugs.html> を見れば方法が書いてあります。
gmake: *** [exif.o] Error 1
bash-2.05$ gcc -v
/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/specs から spec を読み込み中
コンフィグオプション: ../gcc-3.3.2/configure --prefix=/opt/gnu --enable-languages=c,c++
スレッドモデル: posix
gcc バージョン 3.3.2
NGNG
漏れは3つ位出したぞ。sparcじゃないけど。
マイナーなアーキテクチャの宿命だ。
メンテナが頑張ってくれているので消えることは無さそうだが。
マイナーなアーキテクチャの宿命だ。
メンテナが頑張ってくれているので消えることは無さそうだが。
NGNG
少しぐらいのバギー加減は、ユーザーにコンパイラの内部動作に
関心持ってもらうためには必要だと思われ。とかいってみる。
関心持ってもらうためには必要だと思われ。とかいってみる。
NGNG
>>471
emacs-21.3をleim入れてコンパイルしたら使い物にならないバイナリを吐くのも
啓発のためっすか?(泣)
最初 big-5 あたりでcore吐いていたので configure と Makefile いじれば
なんとかなるかと思って色々やってみたんだけど...
結局 3.2.3 にダウングレードしちゃった。手持ちソースではこちらの方が安定
しているみたいだし。
emacs-21.3をleim入れてコンパイルしたら使い物にならないバイナリを吐くのも
啓発のためっすか?(泣)
最初 big-5 あたりでcore吐いていたので configure と Makefile いじれば
なんとかなるかと思って色々やってみたんだけど...
結局 3.2.3 にダウングレードしちゃった。手持ちソースではこちらの方が安定
しているみたいだし。
NGNG
NGNG
いつの間にか 3.3.3 出てるのな。
アーカイブのディレクトリ構成かわってて気づかなかった。
アーカイブのディレクトリ構成かわってて気づかなかった。
475 ◆ieqrh9GF7Y
NGNG gccの挙動に関しての質問てどこに投げればいいの?
gcc-help ?
因みに質問は以下のコードをコンパイルすると if の部分
がなくなるのはなぜ?ってことなんだけど。
int hoge(signed char ch)
{
if ((unsigned short)ch > 127)
return 0;
return 1;
}
gcc-help ?
因みに質問は以下のコードをコンパイルすると if の部分
がなくなるのはなぜ?ってことなんだけど。
int hoge(signed char ch)
{
if ((unsigned short)ch > 127)
return 0;
return 1;
}
NGNG
くだらない質問はここに書き込め!なんでもアリ32
http://pc3.2ch.net/test/read.cgi/unix/1079699147/
エスパーが次の人にアドバイスするスレ
http://pc3.2ch.net/test/read.cgi/unix/1081522053/
http://pc3.2ch.net/test/read.cgi/unix/1079699147/
エスパーが次の人にアドバイスするスレ
http://pc3.2ch.net/test/read.cgi/unix/1081522053/
NGNG
(キミのプラットフォームでは) signed char が取り得る範囲が -128〜
127 で、その if は常に false でそ。
127 で、その if は常に false でそ。
NGNG
charが1byteではない。もしくは
-128から127っていう範囲でないっていう環境はあるの?
-128から127っていう範囲でないっていう環境はあるの?
479名無しさん@お腹いっぱい。
NGNG いまだにOpenBSD上でgcc2.95系使ってる俺って…
NGNG
NGNG
>>480
> 大抵の環境で、unsigned short の最大の値は 127 より大きいので、
> (unsigned short)ch は 127 よりおおきい値になり得る。
そこで止まっちゃだめだよ。
もしch = -128だったら、unsigned shortにキャストした段階で符号ビットを
延長するので左辺は1...10000000。一方、右辺は整数定数127。これはサフィ
クスがない10進数でintで表現しきれるのでintとして扱われる。
比較演算子の左辺はunsigned short、右辺はintだから、演算を適用する前に
両方ともintへキャストされる。intはunsigned shortより小さいことはないか
ら、左辺のビットパターンはそのまま。よって最初のchが負の値の場合、キャ
スト後のintとしての左辺も必ず負の値になるので、この条件文は常に偽。
> 大抵の環境で、unsigned short の最大の値は 127 より大きいので、
> (unsigned short)ch は 127 よりおおきい値になり得る。
そこで止まっちゃだめだよ。
もしch = -128だったら、unsigned shortにキャストした段階で符号ビットを
延長するので左辺は1...10000000。一方、右辺は整数定数127。これはサフィ
クスがない10進数でintで表現しきれるのでintとして扱われる。
比較演算子の左辺はunsigned short、右辺はintだから、演算を適用する前に
両方ともintへキャストされる。intはunsigned shortより小さいことはないか
ら、左辺のビットパターンはそのまま。よって最初のchが負の値の場合、キャ
スト後のintとしての左辺も必ず負の値になるので、この条件文は常に偽。
NGNG
>>481
感動した
感動した
NGNG
>>481
> intとしての左辺も必ず負の値になるので
なりませんよ。
signedをunsignedにしたばあい、unsignedの範囲に入るようにunsignedの最大値+1を
必要な回数だけ加算する。singed char -1をunsigned shortにした場合USHRT_MAXになる。
つぎに、int以下の整数演算はintに格上げされて演算される(右辺がintでなくても格上
げされる)が、値保存で変換されるのでUSHRT_MAXのまま。
unsigned shortがintより範囲が広い場合、両辺がunsigned shortに変換されて比較されるので、
結果は同じ。
> intとしての左辺も必ず負の値になるので
なりませんよ。
signedをunsignedにしたばあい、unsignedの範囲に入るようにunsignedの最大値+1を
必要な回数だけ加算する。singed char -1をunsigned shortにした場合USHRT_MAXになる。
つぎに、int以下の整数演算はintに格上げされて演算される(右辺がintでなくても格上
げされる)が、値保存で変換されるのでUSHRT_MAXのまま。
unsigned shortがintより範囲が広い場合、両辺がunsigned shortに変換されて比較されるので、
結果は同じ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 人気ライブ配信者22歳女性が刺されて死亡 容疑者と金銭トラブル「貸したお金返してもらえなかった」告知動画見て上京 ★8 [muffin★]
- 【食糧】コメ輸出、35万トン目標 2030年、昨年実績の8倍 農水省 [シャチ★]
- 【埼玉】女性を公園に連れ込み乱暴した疑いで逮捕のトルコ国籍男性を不起訴処分 さいたま地検 ★2 [少考さん★]
- 【歌手】aiko、東日本大震災から14年「…どうか震源地が東京でありますようにって願いながら」投稿でフォロワーへ真意説明 ★2 [muffin★]
- 【速報】ウクライナが30日間の一時停戦受け入れる用意あると表明 米ウクライナ高官協議 [香味焙煎★]
- 【NHK世論調査】内閣支持36%、不支持45%…支持率8ポイント減少 [パンナ・コッタ★]
- 【悲報】石破の支持率が急減…前回から何もしてないのになぜ… [424135378]
- Vtuberもバレたら殺されるって人おるけどなんで? <br> 投げ銭してるやつらがアホなだけじゃない? <br> 今回の事件みたいに個人的に貸し借りあるなら別やけど <>
- 娘の名前を高収入にしようと思うんだが
- JA 「備蓄米は総力を上げて買い取った。今の相場で。だから安心してほしい。」 [197015205]
- ドラゴンパンチ🤛👊😅👊🤜が炸裂するお🏡
- 【速報】配信サイト『ふわっち』で配信中の20代女性が配信中に刺されて心肺停止★10 [989870298]