C言語なら俺に聞け! Part 95

このエントリーをはてなブックマークに追加
1v(^o^i)d●v(^o^i)d●v(^o^i)d
  ヘ_ヘ     まず問題を冷静に吟味して
 ミ ・ ・ ミ   Cの話か否かをはっきりさせてから質問しましょう。 
  (  ° )〜  質問する前には最低限検索を。 

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目) 
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。 

エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。 

C FAQ 日本語訳 
http://www.kouno.jp/home/c_faq/ 
Cプログラマ必読 ・プログラミング言語C(通称 K&R) 
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/ 

各種リンク、関連スレは>>2-13あたり 

C言語なら俺に聞け! Part 94 
http://pc5.2ch.net/test/read.cgi/tech/1099212476/
他の過去ログはここに 
http://nssearch.hp.infoseek.co.jp/clang/ 
2デフォルトの名無しさん:04/11/20 22:20:15
>>1
●もち乙
3v(^o^i)d●v(^o^i)d●v(^o^i)d:04/11/20 22:20:21
【コンパイラ】 
gcc 
http://gcc.gnu.org/ 

【Win32用の開発環境のみ。】 
gcc-cygwin 
http://www.redhat.com/software/tools/cygwin/ 
gcc-mingw 
http://www.mingw.org 
Digital Mars C++ 
http://www.digitalmars.com/ 
Open Watcom 
http://www.openwatcom.com/ 
Borland C++ Compiler 5.5.1 
http://www.borland.co.jp/cppbuilder/freecompiler/ 
Visual C++ Developer Center: Microsoft Visual C++ Toolkit 2003 
http://msdn.microsoft.com/visualc/vctoolkit2003/ 

【ライセンスや機能などに問題あり】 
Microsoft C/C++ 13.0.9466(VC.NET) 
http://www.microsoft.com/japan/msdn/netframework/downloads/ 
LCC-Win32 
http://www.cs.virginia.edu/~lcc-win32/ 
CINT 
http://root.cern.ch/root/Cint.html 
めじろ++98 
http://www.vector.co.jp/soft/win95/prog/se075910.html 
Intel C++ Compiler for Linux 
http://developer.intel.com/software/products/compilers/clin/noncom.htm 
4デフォルトの名無しさん:04/11/20 22:22:04
吊ってくる…

このスレは重複です。↓こちらへどうぞ。
C言語なら俺に聞け! Part 95
http://pc5.2ch.net/test/read.cgi/tech/1100951565/l50
5デフォルトの名無しさん:04/11/20 22:22:41
末尾に余計な文字が入っていた。
ただしくは↓

他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
6デフォルトの名無しさん:04/11/21 07:13:43
7デフォルトの名無しさん:04/11/21 14:27:12
age
8デフォルトの名無しさん:04/11/21 14:31:20
>>4
罰として、ついでに重複の↓も削除依頼出しておくように
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
9デフォルトの名無しさん:04/11/21 15:06:30
先に100まで行ったほうが本物。
そうでないほうが重複で削除対象。
10デフォルトの名無しさん:04/11/21 15:10:57
いや、つねに上にあるほうが本物だ!
11デフォルトの名無しさん:04/11/21 15:14:31
const char *foo; は、fooの指すchar型の連続領域が書き換え禁止だということ。
char const *bar; ってのは、barというポインターが書き換え禁止(ほかの位置を指さない)ということ
12デフォルトの名無しさん:04/11/21 15:17:46
すみません。
sub(int n, char *s1, char *s2);
という関数の中で、strcpyを呼んででたのですが、
そこでわざわざ、stcpy(buf, (const char *)s2); というように書いてあったのです。
これは意味のあることでしょうか?

(a) ぜひそう書くべきだ。
(b) そうかういたほうがよい
(c) そうかいても文法的に間違いじゃないが、書くべきではない
(d) ぜったりやめろ

どれでしょう?
13デフォルトの名無しさん:04/11/21 15:20:41
>>12
(e)書いても書かなくてもどっちでもいい
14デフォルトの名無しさん:04/11/21 15:23:38
どっちー?
15デフォルトの名無しさん:04/11/21 15:24:11
俺なら書かない
16デフォルトの名無しさん:04/11/21 15:34:51
(f)気分次第で
17デフォルトの名無しさん:04/11/21 15:43:03
いや、「書いてはいけない」が正解。

強制キャストってのは、そもそも特殊なことをやるところに書くもの。
場合によっては、「ちょっとやばいかも」ということを強引にやる箇所だったりするわけです。
そういう箇所は注意しておかなければいけない。(移植のときなどは特に)

でも、どうでもいい(しなくていい)ところに強制キャストがあちこちにでてくると、
それに目が慣れてしまい、注意しなければいけない重要な箇所を見逃しやすくなる
という迷彩になってしまう。

そういうわけで、「書いてはいけない」のだ。
18デフォルトの名無しさん:04/11/21 15:43:46
>>17氏に一票
19デフォルトの名無しさん:04/11/21 15:48:30
すみません「氏」じゃないんですけど…。
いちおう戸籍上は女なんで。
20デフォルトの名無しさん:04/11/21 15:50:43
じゃあ16〜19あたりに質問!
unsigned char buf2[256]; とかがあって、
strcpy(buf, buf2); ってするときにはどういうふうにキャストする?

(1) キャストしない。strcpy(buf, buf2); のまま
(2) strcpy(buf, (char *)buf2);
(3) strcpy(buf, (const char *)buf2);
21デフォルトの名無しさん:04/11/21 15:53:56
>>19
氏は主に男に対してつけるが、女性に対してつけても間違いではない。
22デフォルトの名無しさん:04/11/21 15:59:29
私にはつけないでください。
23デフォルトの名無しさん:04/11/21 16:01:59
(1)はコンパイル通らないだろ
(2)かなぁ
24デフォルトの名無しさん:04/11/21 16:04:41
>>22
では、これから名前欄か本文にでも注意書きとして「氏をつけないで下さい」と書いてください。
2518:04/11/21 16:05:33
なんかよく分からんが、すまん。
26デフォルトの名無しさん:04/11/21 16:06:39
偏執だな
27デフォルトの名無しさん:04/11/21 16:07:15
>>22
(T_T)
28デフォルトの名無しさん:04/11/21 16:07:22
>>12
(g)もともと
sub(int n, char *s1, const char *s2);
と定義すべきであった。

2918:04/11/21 16:09:24
C++の話でもうしわけないけど、C++3rd C.3.4 には
> 3つのchar (char, signed char, unsigned char) は、ぞれぞれ別の型なので、
> 異なる char 型へのポインタを併用することは出来ない。

とありますね。
どれも不可ということなんだろうか。
30デフォルトの名無しさん:04/11/21 16:10:40
constかどうかは関数側の問題であって、
それを呼び出し側で明示するのは
「この変数は変更しないでね」と言ってるようで不自然だから、
という解釈で正しいでしょうか?(´・ω・`)
31デフォルトの名無しさん:04/11/21 16:12:35
const char* ∈ char*
32デフォルトの名無しさん:04/11/21 16:12:49
>>30
stcpy(buf, s2);
↑これで warning が出たので
stcpy(buf, (const char *)s2);
↑とりあえずこうしただけだろうと思う
33デフォルトの名無しさん:04/11/21 16:13:56
そんなレベルの話なのか?
34デフォルトの名無しさん:04/11/21 16:14:27
呼び出し先で変更されないことまで
警告するコンパイラはちょっと鬱陶しいな
35デフォルトの名無しさん:04/11/21 16:21:28
ここは重複スレなんだよ。移動しろ
36デフォルトの名無しさん:04/11/21 16:24:13
うーん、でも>>1がまともだしなー
37デフォルトの名無しさん:04/11/21 16:24:28
>>35
戯言は削除依頼出してからにしろ
38デフォルトの名無しさん:04/11/21 16:25:24
>>35は向こうのスレの>>1か?
39デフォルトの名無しさん:04/11/21 16:32:37
>>20
constはC++だよな
あと unsigned つける意味がよくわからん
文字列ならunsignedつけないだろ
40デフォルトの名無しさん:04/11/21 16:36:17
>>39
C99にconstキーワードあるぞ。
あとstrcpyに限らずの話だと思われ
41デフォルトの名無しさん:04/11/21 16:37:19
というか普通にC89にもあるでしょ?
42デフォルトの名無しさん:04/11/21 16:40:59
> (1)はコンパイル通らないだろ

通るにきまってるだろ ぼけ
通らないコンパイラーが実在するなら知りたいぞ!
43デフォルトの名無しさん:04/11/21 16:44:08
> 呼び出し先で変更されないことまで
> 警告するコンパイラはちょっと鬱陶しいな

そうではなく、呼び出し先で変更されないということは、
const char *p;
char *q;
で、p = q; しているのと同じこと、warningは出ない。
q = p; はwarningは出てくれて当然。
constつきのポインター引数に、const無しの実引数を渡すのは前者と同じなんだから、
キャストなんかしなくても、warningでるのは間違い。
warningでるコンパイラーがあったらおしえてくれ!

おれがいままでつかった20種類以上のコンパイラーでそんなんで
warningでるのは1つもなかったぞ!
44デフォルトの名無しさん:04/11/21 16:46:24
32の意見に賛成。
「つけなかったらwarningでたので、(何も考えずに)
関数のプロトタイプにかいてあったと指定してみた」ってところが実際のところだろう。

で、問題は、そういうソースをみて、それをさらにいじる別の新人が
「そう書くものだ」と思い込んでしまうことだ。

で、へぼい会社だと、そのプロジェクトチーム全員がそう思い込んでいたりする
のは実際見かけたことがある。
45デフォルトの名無しさん:04/11/21 16:47:46
> 注意書きとして「氏をつけないで下さい」と書いてください。

いやです。
4634:04/11/21 16:49:09
>>43
?俺もそのことを指摘しているんだけども。


 32 :デフォルトの名無しさん :04/11/21 16:12:49
 >>30
 stcpy(buf, s2);
 ↑これで warning が出たので

ここで警告を出すコンパイラが鬱陶しいなと。
47デフォルトの名無しさん:04/11/21 16:49:12
>>45

じゃあつけたほうがいいの?
48デフォルトの名無しさん:04/11/21 16:49:42
unsigned char*からchar*へのキャストが違反なのはC++
49デフォルトの名無しさん:04/11/21 16:50:51
質問です。
#ifdefじゃなくて#ifを使ったとき、
「定義されてない」ものは、0になると考えていいんでしょうか?
50デフォルトの名無しさん:04/11/21 16:51:27
>>47

何をですか?
51デフォルトの名無しさん:04/11/21 16:52:34
> 何をですか?

「氏」ね!
52デフォルトの名無しさん:04/11/21 16:54:01
>>49

大丈夫。安心してよい。0になることは15年以上前から保証されている。
5318:04/11/21 16:55:55
>>48
Cでは異なるcharの、ポインタ間の相互変換が許されているんですね。
dクス。
54デフォルトの名無しさん:04/11/21 16:57:37
コンパイルはできるけど、ちゃんと動かなくて segmantation violationとかいうエラーが
出てるんですが、
指導教官の言うとおりに、
p=&item; って書いてあるところを
p = &item; にしたら正常に動いているっぽいんですが、
どうも理解できません??
何がいけなかったのでしょう?
55デフォルトの名無しさん:04/11/21 17:02:10
>>54
そこだけじゃなくて別の所も直していたんじゃないか?
56デフォルトの名無しさん:04/11/21 17:02:27
わたしの所属しているプロジェクトのコードで
p = (struct HOGE *)NULL;
とかかいてあるコードをよく見かけるのですが、このNULLをキャストすることは
なにかいいことがあるんでしょうか?

(1) したほうがいい
(2) どっちでも大差ない
(3) むしろしないほうがいい
(4) しちゃだめ

どれでしょう?
57デフォルトの名無しさん:04/11/21 17:05:25
>>56
Cなら無意味
58デフォルトの名無しさん:04/11/21 17:06:53
> そこだけじゃなくて別の所も直していたんじゃないか?

いえ、そこ1箇所だけです。ディレクトリーごとまとめて比較しても、
diff -r old/init.c new/init.c
2223c2223
> p=&item;
---
< p = &item;

1行しかちがわない。
59デフォルトの名無しさん:04/11/21 17:07:07
bind(2) connect(2)
あたりの引数のほげで、

struct sockaddr_in boke;
を (struct sockaddr *)&boke;

のようにするのはどんなもんでしょう?
とくにconnect()のほうは
constがついてるようです。
60デフォルトの名無しさん:04/11/21 17:08:36
>>58
コンパイラは?
61デフォルトの名無しさん:04/11/21 17:10:50
>>60
ccって名前のやつです
62デフォルトの名無しさん:04/11/21 17:11:12
>>59
socket周りのAPIはインターフェースが変態的だから気にするな
63デフォルトの名無しさん:04/11/21 17:17:09
マシンの型番はわかりません。(どこみても書いてない...)
研究室の大ボスが昔研究につかっていたけど、いまは退役して
学生実習の専用に払い下げられています。
64デフォルトの名無しさん:04/11/21 17:18:03
>>62
了解しますた。ありがとうございますた。
65デフォルトの名無しさん:04/11/21 17:20:10
>>51
cc --version
と打ってバージョン確認しる
66デフォルトの名無しさん:04/11/21 17:20:41
>>63
そのコンパイラーで
int i = 5;
i = -10;
printf("%d\n", i);

int i = 5;
i=-10;
printf("%d\n", i);
の結果が同じなるかどうか試してみな!

結果が異なれば、私が学生時代につかってた環境と同じだ ;-)

まあ、ようするに、最低限、代入演算子の両側ぐらいは空白をあけるように
クセをつけろってこった。

(そうでなくても、2項演算子はすべて(2つの例外を除く)両側に空白をあける癖をつけな!
まともにCでコーディングできるようになりたかったらな。
(このへんにたむろしてる馬鹿どもと同じレヴェルで終わりたいならべつにいいが))
67デフォルトの名無しさん:04/11/21 17:20:57
アンカー間違えた orz
68デフォルトの名無しさん:04/11/21 17:21:37
>>65
no input files と出ました。
69デフォルトの名無しさん:04/11/21 17:23:13
このぶんだと、こっちがさきに100行きそうだね。

するってーと、「どっち消すべきか判断しづらいときは、先に100に行ったほうを残し、
残りを削除」っていう、2chの暗黙のルール(慣習)が適用されるね!
70デフォルトの名無しさん:04/11/21 17:25:10
あたまのおかしなやつの妄想だろ
相手するやつが阿呆
71デフォルトの名無しさん:04/11/21 17:25:25
そんな糞なコンパイラのためにコーディングスタイルまで
変えなきゃならんほうがナンセンス。
72デフォルトの名無しさん:04/11/21 17:26:21
>両側に空白をあける癖をつけな!

頭のおかしなやつの妄想
73デフォルトの名無しさん:04/11/21 17:26:31
>>54
コンパイラがタコなだけ。黙って言われたとおりにしておけ。
以上。
74デフォルトの名無しさん:04/11/21 17:26:55
もし私のつかっていたコンパイラーとー同じならば、
ちっとも「くそ」コンパイラーなどではないな ;-)

それにそこに空白をあけないのを「スタイル」だなんてぬかす厨房は
かおあらってでなおしてきたほうがいい。
75デフォルトの名無しさん:04/11/21 17:27:53
で、マシン名じゃなくてOSは何かわからないのか?
76デフォルトの名無しさん:04/11/21 17:29:12
>>74
そのネタをいつまでも引っ張る必要があるのか?
77デフォルトの名無しさん:04/11/21 17:29:44
妄想だろ
78デフォルトの名無しさん:04/11/21 17:29:55
>>75
OSってどこを見ればわかるんですか?
マシン名は、去年卒業した先輩は「ぴーでぃーぴー」って呼んでました。
(でも、ただのhost名かもしれません)
現在は「学生実習用マシン」としか呼ばれていません。
79デフォルトの名無しさん:04/11/21 17:30:24
int i = 5;
i = -10;

int i = 5;
i=-10;

とで結果が違うんでは、
どう考えたって駄目コンパイラでしょう?
80デフォルトの名無しさん:04/11/21 17:30:48
そりゃ、純正のccだな。
81デフォルトの名無しさん:04/11/21 17:31:26
> とで結果が違うんでは、
> どう考えたって駄目コンパイラでしょう?

いや、ふつうだろ。C99には適合していないが、
むかしのCコンパイラーはみんなそうだったし。
82デフォルトの名無しさん:04/11/21 17:32:43
釣りケテーイ
83デフォルトの名無しさん:04/11/21 17:33:52
すでに亡くなった文法です > c=-1; で Cの値を1減らす。

でも、親切なコンパイラーはいまだにwarning出すね。
84デフォルトの名無しさん:04/11/21 17:39:48
うちのコンパイラーもwarning出すな。
でも、うちのは if (i = 10)も警告出すでけっこううるさいのだが。
85デフォルトの名無しさん:04/11/21 17:40:34
で、&=の件との関係をおしえてください!
86デフォルトの名無しさん:04/11/21 17:43:08
100超すために自演厨必死だな
87デフォルトの名無しさん:04/11/21 17:44:46
gotoを使ったら先輩に使うなと怒られてしまいました。
gotoって絶対に使っちゃいけないものなんでしょうか?
それとも使うべきところがあるんでしょうか?
教えてください。
88デフォルトの名無しさん:04/11/21 17:47:20
>>87
こんなこと言ってるうちは使うな
89デフォルトの名無しさん:04/11/21 17:51:44
PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11
PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11
PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11
PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11
PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11
PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11
PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11
PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11
PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11
PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11PDP11
90デフォルトの名無しさん:04/11/21 17:52:28
あと10件だ
がんがれ
91デフォルトの名無しさん:04/11/21 17:52:58
るby>>>>>>>>>>
92デフォルトの名無しさん:04/11/21 18:01:13
おまえそんなことして楽しいか?
93デフォルトの名無しさん:04/11/21 20:08:15
これかな?
どうやら板違い。

PDP-11 simulator V3.2-3
Disabling XQ
@unix

login: root
# cc -v
-v: cannot open
# cc --version
--version: cannot open
# cc -V
-V: cannot open
# vi
vi: not found
# ed
aaa
?
auau
?
94デフォルトの名無しさん:04/11/21 20:45:53
>87
とにかく処理速度を第一に要求される場合、gotoを使う
ケースがあるのかもしれない。
95デフォルトの名無しさん:04/11/21 20:52:21
それはもちろんある。
状態遷移マシンを書くときなんかも goto 便利。
96デフォルトの名無しさん:04/11/21 20:56:10
つまらなそうな質問で申し訳ないのですが、Tabキーの分だけ文字間隔をあけて
出力するにはどうすればいいのでしょうか?
97モウモウ:04/11/21 20:58:28
>>96
\t を出力すればいいんではないかい?
98デフォルトの名無しさん:04/11/21 20:59:28
だよなぁ
9996:04/11/21 21:04:00
>97様
すばやいレスをありがとうございました。
早速試したところ、しっかりと出力できました。ありがとう。
100デフォルトの名無しさん:04/11/21 21:21:49
Tabキー 文字間隔

これでぐぐればすぐなのに・・・
101デフォルトの名無しさん:04/11/21 21:22:10
>99
お、お、お、お、お、そんな回答でよかったのかよ・・・
102デフォルトの名無しさん:04/11/21 21:47:20
つまらなそうな質問で申し訳ないのですが、beep音を
出力するにはどうすればいいのでしょうか?
103デフォルトの名無しさん:04/11/21 21:53:41
>>102
printf()で使える。
104デフォルトの名無しさん:04/11/21 22:11:00
>>102
'\a' を出力
105デフォルトの名無しさん:04/11/21 22:13:29
>>93 ったら、edからぬけられなくなって焦ってるっぽい ;-)
だれか抜け方おしえてやれよ
106デフォルトの名無しさん:04/11/21 22:14:38
>>105
あなたが偉そうに教えてあげればいいんじゃないの
107デフォルトの名無しさん:04/11/21 22:16:00
他の端末からkill!!
108デフォルトの名無しさん:04/11/21 22:17:28
ちなみに、PDP-11の時代にはすでにその演算子は廃止されてたぞ。
だから、その研究室のはもっと古い時代のものだろう。
109デフォルトの名無しさん:04/11/21 22:18:22
まずaのモードから抜けるなら、行頭で.
コマンドモードから抜けるなら
qかq!か^Dだ (常識)
110デフォルトの名無しさん:04/11/21 22:19:21
>109
非常識

111デフォルトの名無しさん:04/11/21 22:19:57
>109
^Dなんかで抜けていいと思ってるのか。
とんでもねぇな
112デフォルトの名無しさん:04/11/21 22:21:14
edを^Dでぬけるのはじょーしきです。
それができないやつはもぐり
113デフォルトの名無しさん:04/11/21 22:24:41
>>112
じゃあXEDITは知ってる?
114デフォルトの名無しさん:04/11/21 22:24:58
>112
psしてみろ。大変なことになってるぞ。
115デフォルトの名無しさん:04/11/21 22:28:55
こいつぼけ > 114
^Dでぬけたらプロセス残るとでも思ってるらすい ;-)
116デフォルトの名無しさん:04/11/21 22:30:56
>115
めちゃめちゃ残ってるんだけど。今試したか?
117デフォルトの名無しさん:04/11/21 22:31:55
残るわけねーだろ ぼけ
118デフォルトの名無しさん:04/11/21 22:32:19
>116
試さないでウダウダ言う奴の相手はする必要ないぞ?
それとも今試す環境がないのかな。
明日会社で試してビックリしてごらん。
119デフォルトの名無しさん:04/11/21 22:33:23
この一人でageまくってる奴だけNG指定したいんだけど
できないかな。ID出てりゃ簡単なのに。
トリップ付けてくれない?
120デフォルトの名無しさん:04/11/21 22:34:16
どうやらXEDITは常識なのに知らなかったらしい
121デフォルトの名無しさん:04/11/21 22:36:01
> 試さないでウダウダ言う奴の相手はする必要ないぞ

お、ごまかすために暴れ始めたな ;-)
122デフォルトの名無しさん:04/11/21 22:37:00
★今日のぼけ1人め
「edを^Dで抜けたらプロセスが残ると思い込んでいるぼけ」
123デフォルトの名無しさん:04/11/21 22:37:26
2人めまだかなー
124デフォルトの名無しさん:04/11/21 22:42:27
★これまでに分かったこと
>122氏はpsのオプションを知らない。
125デフォルトの名無しさん:04/11/21 22:42:48
質問です。
int a[] = {
100,
200,
300,
400,
};
で、sizeof(a) / sizeof(a[0) ってやったら、4になるべきですか? 5になるべきですか?
126デフォルトの名無しさん:04/11/21 22:43:11
★これまでに分かったこと
>122氏はXEDITは知らない。
127デフォルトの名無しさん:04/11/21 22:43:32
124はまだ無駄な抵抗をしてるなー
すなおにしったかぶりをみとめろよ ;)
128デフォルトの名無しさん:04/11/21 22:43:58
★これまでに分かったこと
>122氏は「試したか?試してないのか?」の問いには答えていない
→試していないと思われる。
129デフォルトの名無しさん:04/11/21 22:44:18
>125
4
130デフォルトの名無しさん:04/11/21 22:44:25
>>125
エラーになるべき
131デフォルトの名無しさん:04/11/21 22:44:53
>129
でもこの書き方からして5になったんだろうなー
132デフォルトの名無しさん:04/11/21 22:45:22
★推測
>122氏は今必死こいて「XEDIT」と「psのオプション」を
調べている。
133デフォルトの名無しさん:04/11/21 22:46:11
いえ、4になりました。
でわたしも4になるべきだと思うし、いくつか本もしらべてそうかいてあったのですが、
5だとかいう人がいたので気になったので聞いてみただけです。
ここにはわかる方はいらっしゃらなさそうですね。
134デフォルトの名無しさん:04/11/21 22:46:24
>130
なんで?本質的じゃない答えはやめてよ。
135デフォルトの名無しさん:04/11/21 22:47:06
>133
あのぅ、質問してから4分も経っていないのに
それはないんじゃないの?
136デフォルトの名無しさん:04/11/21 22:47:22
132はまだ無駄に暴れている。
もしくは、関係ないことをいっぱいかけば、自分の恥「^Dで抜けるとプロセスが残ると思い込んでいる」が
上のほうにスクロールして目立たなくなる、とでも思ってるにちがいない ;-0
137デフォルトの名無しさん:04/11/21 22:47:52
>133
おそろしく無礼な奴だな。

>132
相手するなといってるだろうが。
138デフォルトの名無しさん:04/11/21 22:48:19
>>133
なるわけねーだろ。5だと言う奴は無視しろ
139デフォルトの名無しさん:04/11/21 22:48:32
>136
ちなみに>128はどっちなの?
140デフォルトの名無しさん:04/11/21 22:48:47
> 質問してから4分も経っていないのに

でもー たった4分のあいだに「エラーになるべき」とかあまりわかってなさそうな
あたまのわるそーなひとの書き込みしかなかったので
141デフォルトの名無しさん:04/11/21 22:49:20
>136
>119のトリップ付ける案に賛成。まぁあんたがトリップを
付けられるかどうかは知らんが。
142デフォルトの名無しさん:04/11/21 22:49:43
お前ら書き込みすぎ
143デフォルトの名無しさん:04/11/21 22:49:56
スクロールして目立たなくなったとおもってホッとしているところに
再掲
★今日のぼけ1人め
「edを^Dで抜けたらプロセスが残ると思い込んでいるぼけ」
144デフォルトの名無しさん:04/11/21 22:49:59
なんつー不遜な香具師だ。
145デフォルトの名無しさん:04/11/21 22:50:18
>>140
130じゃないが
>>125をよく読んでみ
146デフォルトの名無しさん:04/11/21 22:50:22
★推測
>122氏は今必死こいて「XEDIT」と「psのオプション」を
調べるための時間稼ぎに>>125,133を書いた。
147デフォルトの名無しさん:04/11/21 22:50:24
質問
short num =280;
int i=15;
printf("%d".(num>>i)&0x01);
の((num>>i)&0x01)の部分はどういう意味ですか?
148130:04/11/21 22:50:35
そりゃ悪かったな。
5になると答えた人は何を根拠に5と答えたのかな?
それをまず知りたい。
149デフォルトの名無しさん:04/11/21 22:50:58
たしかにここレベル低すぎ...
150デフォルトの名無しさん:04/11/21 22:51:04
>140
その書き込みの頭の悪さは分かるが、それは4分間に一人
頭が悪い人間がいただけだろ。

まあ>138が正解だと思うけどな。
そんなアホのために振り回されてもいいという聖人は
ここにはいないよ。
151デフォルトの名無しさん:04/11/21 22:51:46
> まあ>138が正解だと思うけどな

思う...って、自信ないんですか? 基本文法なのに
152デフォルトの名無しさん:04/11/21 22:51:48
>>147
シフトとマスク
153デフォルトの名無しさん:04/11/21 22:52:32
>>147
15ビット目だけを取り出してる。
154デフォルトの名無しさん:04/11/21 22:52:44
>145
お前の指摘は本質的じゃないところだから意味がない。
だから頭悪いと言われてるんだよ。

勘違いしないでほしいのだが、>140の態度は問題だけど
>130は確かに頭悪いよ。それは間違いない。
155デフォルトの名無しさん:04/11/21 22:53:14
>151
悪かったよ。揚げ足取るなよ。
156デフォルトの名無しさん:04/11/21 22:53:17
っていうか、
すなおに
short num =280;
printf("%d". (num >> 15) & 0x01);
って書けよ。
157デフォルトの名無しさん:04/11/21 22:53:31
頭の悪さっじゃなくて、単なる茶目っ気だろう?
そんな事もわかんないのか。
158デフォルトの名無しさん:04/11/21 22:54:11
一人age厨君は都合の悪いコメントは全部無視だねぇ。
相手してる俺らが悪いんだろうな。
159デフォルトの名無しさん:04/11/21 22:54:51
>157
誰か相手してくれるといいな。
160デフォルトの名無しさん:04/11/21 22:56:26
>>158
まー、知ったかぶりしたがりの、でも本当は半可通の、
半可通ほど居丈高であるの法則のまんまだというのが
観察できただけでも面白かったよw
161デフォルトの名無しさん:04/11/21 22:56:29
厨避けにはやっぱりRubyのほうがいいですかね?
162あっちの1:04/11/21 22:57:00
>>38
遅レスすまん。最初に言っとくと俺は>>37じゃない。
んで、こっちが伸びてるからこっちを5日ぐらいで消化してあっちを再利用、
その次をPart97として立てる、でいいんじゃねーかな。1にテンプレが無いだけで
廃棄なんつーアホは、好きに削除依頼出してくれ。
163デフォルトの名無しさん:04/11/21 22:57:03
なんか今日はすごい入れ食いだな
164デフォルトの名無しさん:04/11/21 22:57:23
>160
バカな俺は「半可通」を辞書で引いてしまった・・・
165あっちの1:04/11/21 22:57:38
あー、>>37じゃなくて>>35だった。悪い
166デフォルトの名無しさん:04/11/21 22:58:32
すみません、
これ、エラーになったんですが...
enum {
RED,
YELLOW,
BLUE,
PINK,
GREEN,
} foo;
167デフォルトの名無しさん:04/11/21 22:59:26
dakara?
168デフォルトの名無しさん:04/11/21 22:59:30
> バカな俺は「半可通」を辞書で引いてしまった・・・

その昔、半可電機とジーメンスがつくった合弁会社です。
169デフォルトの名無しさん:04/11/21 23:01:19
>>160
「プロセス残るとおもいこんでいるぼけ」が都合悪くなって最後に逃げる姿 ;-)

やはり定番のパターンで、最初のうちはいっぱい書いてごまかすのよね。
それで「うやむやにする」ができないと、すてぜりふかひらきなおるか ;)
170デフォルトの名無しさん:04/11/21 23:02:22
>>166
それは、そのコンパイラーがちゃんと標準規格を満たしていないから。
171デフォルトの名無しさん:04/11/21 23:04:06
>139は?
172デフォルトの名無しさん:04/11/21 23:04:35
>166
GREENはダメだろ、GREENは。
173デフォルトの名無しさん:04/11/21 23:05:01
この一人age厨いつまでいるの?
174デフォルトの名無しさん:04/11/21 23:05:52
>169
結局試したの?君が試したんだったら「試したけど残らない」って
言えば説得力上がるのに・・・・試してないんですね。
175デフォルトの名無しさん:04/11/21 23:06:35
>>169
残念でした。思ってません。さっきV6 UNIXで試して、
プロセスが残ってないことを確かめましたw
176デフォルトの名無しさん:04/11/21 23:07:33
いまさら「ためす」っあたりですでにだめじゃん。
つまり、残ると思ってた or 自信なかった ってことでしょ?
177デフォルトの名無しさん:04/11/21 23:08:21
暫く前にBeckyのMLで本人が暴れてたけどこっちにもこないかねぇ
178デフォルトの名無しさん:04/11/21 23:08:46
edは^Dで抜けるのはもはや25年以上前から常識なの。
そんなんでプロセスのこってたら、いまごろわたしのマシンは、
intではとてもたりないだけのぞんびプロセスがいることになる ;-)
179デフォルトの名無しさん:04/11/21 23:09:23
ここは知ったか振り大杉
180デフォルトの名無しさん:04/11/21 23:09:26
>175は俺じゃねぇ。俺ってのが誰だかわからんかもしれんけど。
181デフォルトの名無しさん:04/11/21 23:09:39
>>177

実は先々週、本人を名古屋で見かけて名刺渡しました。
(でも名刺くれんかった)
182デフォルトの名無しさん:04/11/21 23:10:01
>178
アヒャヒャヒャヒャ。25年以上前だって。こいつ何歳だよ。
183デフォルトの名無しさん:04/11/21 23:10:03
日下部って多分朝鮮系だよな。人の話を聞かない、人が悪いと譲らない、周りのせいにする。
高圧的で、周囲は自分に従うと思い込んでいる。
184デフォルトの名無しさん:04/11/21 23:11:09
177と181は2人とも誤爆っぽい。

(削除予定スレのほうに続けて読むとつじつまがあうので..)
185デフォルトの名無しさん:04/11/21 23:11:15
>178
だからそのゾンビを確認したのかどうか聞いてるの。
確認してみ。psのオプションは分かってるよな?
君が確認するまでは誰も納得しないよ。
君なんて信頼に足る人物なはずがないんだからさ
186デフォルトの名無しさん:04/11/21 23:11:41
日下部って誰?
187デフォルトの名無しさん:04/11/21 23:12:05
>>184
粘着ウゼー

>>184
そですか、相変わらずなんですね。
188デフォルトの名無しさん:04/11/21 23:12:40
> 25年以上前だって。こいつ何歳だよ。

5歳からつかっていて30歳なら25年以上だろ?
いまのばりばりの技術者って、たいがいそんなもんだ。
おれはUnixは12歳からだったけどな。
189187:04/11/21 23:13:04
煽りでミスって最悪
当然、下のほうの>>184>>181宛です
190デフォルトの名無しさん:04/11/21 23:14:08
> だからそのゾンビを確認したのかどうか聞いてるの。

「え? ほんとにのこるの?」なんて思って確認するようなやつは
すでにだめだろ。わかってないから確認しなきゃいけないわけで。ぼけにおどらされてどうする。
191デフォルトの名無しさん:04/11/21 23:14:23
>188
すげー。俺の周りの奴らは5歳からやってたのかーw
お前は37歳なの?
192デフォルトの名無しさん:04/11/21 23:14:41
189も名刺もらえんかったの?
193デフォルトの名無しさん:04/11/21 23:15:12
>190
かわいそうなマシンだ・・・
194デフォルトの名無しさん:04/11/21 23:15:55
> すげー。俺の周りの奴らは5歳からやってたのか

って、おまえの会社はちがうのか?
うちの会社はそんなやつがごろごろいるぞ。
195デフォルトの名無しさん:04/11/21 23:16:01
祖父は45年前から使っている
196デフォルトの名無しさん:04/11/21 23:16:16
voidの名刺をもらうオフやろうぜ
197デフォルトの名無しさん:04/11/21 23:16:16
>188
スマン。30歳って時点でひきまくりなんだけど。
俺は30歳までだいぶあるけど、自分が30歳になったとき、
土日に2ちゃんに書き込んでるような生活はしていたくないな。
198デフォルトの名無しさん:04/11/21 23:16:32
> 粘着ウゼー

にげきれなかったときのセリフ
199デフォルトの名無しさん:04/11/21 23:17:03
>194
お前の脳内では確かにそうなんでしょう。別に否定はしないよ。
200デフォルトの名無しさん:04/11/21 23:17:09
名刺はもらえんかったがケータイで写真はとったぞ。
2ショットじゃないが。
201デフォルトの名無しさん:04/11/21 23:18:19
>198
それは粘着がうざいときのセリフです。
ひとつひとつ教えてあげないと分からないみたいなので、
皆さんも書き込みには気を付けてあげてください。
202デフォルトの名無しさん:04/11/21 23:19:07
>197
確かに。こいつが家庭を持っていないことを祈ろう。
203デフォルトの名無しさん:04/11/21 23:19:41
                                ジサクジエン王国
          ___
  ヽ l /       |(・∀・)|
  -: * -     | ̄ ̄ ̄、i , ジサクジエン王国
  /.i ヽ     △   .- * -.
   i     △l |    ´i` 
   _i__△|_田. |△.__i___
     |._|__門_|__|_____|     ジサクジエン王国

ジサクジエン王国
204デフォルトの名無しさん:04/11/21 23:20:02
sageているのはひとりだけ
205デフォルトの名無しさん:04/11/21 23:20:39
で、どこからどうやってvoidの話題になったんだ?
>>1にそれっぽいのがあったからって、それだけでこわがってるのか?
そりゃおまえら「こわがりすぎー」っていわれても無理はないぞ。
意識しすぎだ おまえら。
206デフォルトの名無しさん:04/11/21 23:20:42
で、常識のXEDITはどうなったんでしょう。
そろそろ調べがついてる頃だと思うんですが…
207デフォルトの名無しさん:04/11/21 23:21:01
話を戻せ! voidの話題なんかするな!
208デフォルトの名無しさん:04/11/21 23:21:10
禿げしくどうでもいい
209デフォルトの名無しさん:04/11/21 23:21:26
>>207
そういうおまえがいちばん意識していて、
いちばんこわがってるように見えるぞ。
210デフォルトの名無しさん:04/11/21 23:21:47
>>205
>>17が低脳だったのが最大の原因
211デフォルトの名無しさん:04/11/21 23:22:35
> 俺は30歳までだいぶあるけど、自分が30歳になったとき、
> 土日に2ちゃんに書き込んでるような生活はしていたくないな。

おれもまだだいぶあるな
212デフォルトの名無しさん:04/11/21 23:23:13
俺はあと10年半ある
213デフォルトの名無しさん:04/11/21 23:23:40
17ってだれ?
214デフォルトの名無しさん:04/11/21 23:24:38
30前に死ぬから大丈夫だよ(笑)
215デフォルトの名無しさん:04/11/21 23:25:00
>>213
氏がどうのこうのってゴチャゴチャ言ってその後もしばらく居座りスレを妙な方向に曲げた馬鹿女(自称)
216デフォルトの名無しさん:04/11/21 23:25:07
700人ぐらいのパーティー会場だったんだけど、
プログラムみて、その名前があったので、おどろいて写真撮った
217デフォルトの名無しさん:04/11/21 23:26:47
質問です。
わたしの読んでいる入門本には、
shortはlongより長くない。と書いてあるんですが、
intについて書いてないんです。intがlongより長いことはあるんでしょうか?

またcharがshortより大きいことはあるんですか?
218デフォルトの名無しさん:04/11/21 23:26:59
ゴキブリホイホイスレ
219デフォルトの名無しさん:04/11/21 23:27:09
>>217
その本の名前をまず書けよ
220デフォルトの名無しさん:04/11/21 23:27:26
>217
どちらもない
221220:04/11/21 23:27:57
レスアンカーミスった
>>217
222デフォルトの名無しさん:04/11/21 23:28:09
> その後もしばらく居座りスレを妙な方向に曲げた馬鹿女(自称)

つまり、自称でもなんでも「女」らしきものがあると、にぎわうんですか?
そんなにここって女っ気ないんですか?
223デフォルトの名無しさん:04/11/21 23:28:24
>219
なぜ?
224デフォルトの名無しさん:04/11/21 23:28:36
>>217
K&R日本語第二版p.44
shortはintより長くてはならず、intはlongより長くてはいけない
225デフォルトの名無しさん:04/11/21 23:28:53
>222はスルーで。っていう俺が一番スルーできていない。
226デフォルトの名無しさん:04/11/21 23:29:05
萌えとかそんなんじゃない
227デフォルトの名無しさん:04/11/21 23:29:28
>>222
馬鹿女はトラブルの元なんだよ。板違いだからマ板に行ってくれ
228デフォルトの名無しさん:04/11/21 23:31:11
> shortはintより長くてはならず、intはlongより長くてはいけない

第1版とで大きくかわった箇所だな。
229デフォルトの名無しさん:04/11/21 23:32:46
で、家にかえったら、私と同じような角度で写真撮ってたひとをWeb上にいっぱい発見。

この3つめの写真な。
ttp://www.geocities.jp/fides628/webangai.htm

230デフォルトの名無しさん:04/11/21 23:32:52
つか、お前らみんな板違いなんだけど
231デフォルトの名無しさん:04/11/21 23:33:11
232デフォルトの名無しさん:04/11/21 23:33:25
> 萌えとかそんなんじゃない

否定のしかたが「そ、そんなんじゃない、ち、ちがう!」とどもって聞こえますよ。
233デフォルトの名無しさん:04/11/21 23:33:54
質問してもいいですか?
234デフォルトの名無しさん:04/11/21 23:34:14
>>233
いいわよ
235デフォルトの名無しさん:04/11/21 23:34:27
>228
そうなんですか。元はどうだったんですか。
236デフォルトの名無しさん:04/11/21 23:35:07
>232
聞こえません。
237デフォルトの名無しさん:04/11/21 23:35:21
お、すでに見つけてる人がいたか。
じゃあ、こっちはどうだ
ttp://www.jsa-tokai.jp/top.html


おれが撮ったのは、彼が川島なお美と並んでいるところだが、
自分のサーバーさらせないのでurlは内緒な。
238デフォルトの名無しさん:04/11/21 23:36:09
> 質問してもいいですか?

それも質問ですね。
残り2問です。
239デフォルトの名無しさん:04/11/21 23:36:40
え、じゃあ3問しか質問できないってことですか?
240デフォルトの名無しさん:04/11/21 23:37:11
>>239
うん。
あと1問ね。
241デフォルトの名無しさん:04/11/21 23:37:13
> え、じゃあ3問しか質問できないってことですか?

そうです。
のこり1問です。
242デフォルトの名無しさん:04/11/21 23:38:13
じゃあ、だいじな残り1問ってことで...
おてやわからに教えてもらえますか?
243233:04/11/21 23:39:01
ではお言葉にあまえて。
複素数計算するプログラム作ってるんですけど、今時はcomplex.h 使って
なるべく標準ライブラリのccos() とか呼ぶ方がいいでしょうか?
それともccos()なんてしらねーよ、って顰蹙でしょうか?
244デフォルトの名無しさん:04/11/21 23:39:33
THE END厨
245デフォルトの名無しさん:04/11/21 23:40:23
>>243
楽できる方を選びます。
246デフォルトの名無しさん:04/11/21 23:40:32
雑談はマ板でやってくれ
247デフォルトの名無しさん:04/11/21 23:41:39
ふつうC99だからだいじょぶでは?

でもC99でもかならず実装しなければいけないわけではない。
「するならこう」ときめてあるだけ > 複素数まわりの部分
ので自分のコンパイラーのマニュアルよめ
248デフォルトの名無しさん:04/11/21 23:42:05
cおmpぇx
249デフォルトの名無しさん:04/11/21 23:43:03
ふつうC99だから
でもC99でもかならず実装しなければいけないわけではない
コンパイラー
250233:04/11/21 23:55:42
私のコンパイラ(gcc(egcs-2.91.66))だと_Complex だとOK
なんですが、complex だと駄目。C99 は_Complex 型ありますか?
251デフォルトの名無しさん:04/11/21 23:58:03
main以外の関数からプログラムを強制終了する方法は無いですか?
252デフォルトの名無しさん:04/11/21 23:59:23
exit() abort()
253デフォルトの名無しさん:04/11/22 00:02:00
カトリックではabortは戒律で厳しく禁止されています。
254デフォルトの名無しさん:04/11/22 00:02:54
> 私のコンパイラ(gcc(egcs-2.91.66))だと_Complex だとOK
> なんですが、complex だと駄目。C99 は_Complex 型ありますか?

C99では複素数があるなら_Complex型がある。またそれはcomplexと
typedefされることになってるので、両方使える。
255デフォルトの名無しさん:04/11/22 00:03:47
sexFriend.abortion()
256デフォルトの名無しさん:04/11/22 00:03:57
gccでも最新のなら-std=c99つければ、complexも_Complexも両方使える。
257デフォルトの名無しさん:04/11/22 00:06:17
Rubyばら何もせずに始めから使える。
258デフォルトの名無しさん:04/11/22 00:06:51
鼻つまってますね
259デフォルトの名無しさん:04/11/22 00:07:52
Ruby最強!
260デフォルトの名無しさん:04/11/22 00:10:22
で、そのrubyはCで書かれてますよ ;-)
261デフォルトの名無しさん:04/11/22 00:10:49
自分自身の処理系をかけないような言語はだめだめ。
262デフォルトの名無しさん:04/11/22 00:12:41
Ruby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>C
263デフォルトの名無しさん:04/11/22 01:21:35
#include <stdio.h>#include <memory.h>
#define BUFSIZE 128
int RingNum(int num,int min,int max){
 return((num-(max<min ? min^=max^=min^=max:min)<0 ?
  (max-min+1)-(min-num)%(max-min+1):num-min)%(max-min+1)+min);
}
int main(){
 char* p;int i,offset;
 p=new char[BUFSIZE];//リングバッファ
 if(!p) return -1;
 memset(p,0,sizeof(char)*BUFSIZE);
 offset=112;
 for(i=0;i<64;i++){
  offset=RingNum(offset+1,0,BUFSIZE-1);
  *(p+offset)=1;
 }
 delete[] p;
 return 0;
}
RingNumは上のように使うのですがこれ(RingNum)は
Cで平たく書いた方が早いですか?
264263:04/11/22 01:22:56
age忘れ
265デフォルトの名無しさん:04/11/22 02:38:21
> RingNumは上のように使うのですがこれ(RingNum)は
> Cで平たく書いた方が早いですか?

こいつぼけ..。3項演算子はもともとCのものなのをしらないのか。
この関数RingNum()は、そのまんまCだぞ。
mainのほうでもCでないのはnewとdeleteだけじゃん。

3項演算子が、自分で書いてて複雑だと思うなら、適宜開けばいいだけのこと。
(2重になってるうち1つとか)

そうすると以下のようになる
266デフォルトの名無しさん:04/11/22 02:38:41
#include <stdio.h>
#include <memory.h>

#define BUFSIZE 128

int RingNum(int num, int min, int max)
{
  if (num - (max < min ? min ^= max ^= min ^= max : min) < 0)
    return (max - min + 1) - (min - num) % (max - min + 1)
  else
    return (num - min) % (max - min + 1) + min;
}

int main()
{
  char *p;
  int i, offset;

  if ((p = calloc(BUFSIZE)) == NULL)
    return EXIT_FAILURE;
  else {
    offset = 112;
    for (i = 0; i < 64; i++) {
      offset = RingNum(offset + 1, 0, BUFSIZE - 1);
      p[offset] = 1;
    }
    free(p);
    return EXIT_SUCCESS;
  }
}
267デフォルトの名無しさん:04/11/22 02:50:45
あんた、「こいつぼけ」が好きだね
268デフォルトの名無しさん:04/11/22 03:05:14
こいつほげ
269デフォルトの名無しさん:04/11/22 03:06:29
にゃんにゃん
270デフォルトの名無しさん:04/11/22 03:42:48
え? ここの標準言語でしょ? > こいつぼけ
わたしはここで覚えたのだが。けっこう使っている人多いじゃん。
271デフォルトの名無しさん:04/11/22 03:43:23
void情報があるときいて見に来たんですがー
どこ?
272デフォルトの名無しさん:04/11/22 03:46:15
ここでnumは変数名として見づらい(minやmaxにまぎれる)ので、

以下のようにしたほうが見やすい。
int RingNum(int n, int min, int max)
{
  if (n - (max < min ? min ^= max ^= min ^= max : min) < 0)
    return (max - min + 1) - (min - n) % (max - min + 1)
  else
    return (n - min) % (max - min + 1) + min;
}
273デフォルトの名無しさん:04/11/22 03:53:04
>min ^= max ^= min ^= max
未定義動作引き起こしますよ
274デフォルトの名無しさん:04/11/22 03:57:39
いいえ、起こしません。右から順です。動作も安定しています。
275デフォルトの名無しさん:04/11/22 04:01:32
結合順の問題ではなくて、min と max に2回副作用が起こるためです
276デフォルトの名無しさん:04/11/22 04:03:14
いや、それが1文の中であっても、シーケンスポイントは超えていないので
問題ない。
277デフォルトの名無しさん:04/11/22 04:04:34
おまえ
*p = *p++; が問題あるってのと混同していないか?
278デフォルトの名無しさん:04/11/22 04:06:32
いや、シーケンスポイントを超えてないからこそ
問題だと思うんですが
279デフォルトの名無しさん:04/11/22 04:22:24
さあどうするどうするw
280デフォルトの名無しさん:04/11/22 04:39:01
逆だって、シーケンスポイントをまたいでなら問題あるが。
281デフォルトの名無しさん:04/11/22 04:40:43
いや、その逆だろ? このパターンだとシーケンスポイント内には複数回出てこないから
問題ない。
282デフォルトの名無しさん:04/11/22 04:46:59
代入演算子はシーケンスポイントだろ?
283デフォルトの名無しさん:04/11/22 04:47:47
代入演算子がいつからシーケンスポイントになった?
284デフォルトの名無しさん:04/11/22 04:48:49
シーケンスポイントって何ですか
285デフォルトの名無しさん:04/11/22 04:51:39
生きた化石
286デフォルトの名無しさん:04/11/22 04:51:59
&&とか||とか,とか;とか
287デフォルトの名無しさん:04/11/22 05:45:14
int RingNum2(int num,int min,int max)
{
 int ret;
 if(max<min)
 {
  ret=max;
  max=min;
  min=ret;
 }
 if(num-min<0)
 {
  ret=(max-min+1)-(min-num)%(max-min+1);
 }
 else
 {
  ret=num-min;
 }
 ret=(ret%(max-min+1)+min);
 return ret;
}
で結局こう書くのと>>263のように書くのとではどっちが早いですか?
288デフォルトの名無しさん:04/11/22 06:05:17
自分で試せば、と言われるに決まっているだろうに。
289デフォルトの名無しさん:04/11/22 06:48:18
「反日」の構造-----中国、韓国、北朝鮮を煽っているのは誰か
著者: 西村幸祐著 《ジャーナリスト》
主な著作: 『ホンダ・イン・ザ・レース』(講談社)
本体価格: 1400円
税込価格: 1470円
  判型: 四六判上製
 発売日: 2004年11月24日
※概ね、この2日後に書店店頭に並びます
 コード: ISBN4-569-63996-8

内容:靖国参拝、領土・領海問題、歴史認識等において、アジアを煽っているの
は誰か。マスメディアが伝えない「反日」の構造を明らかにする。
解説:2004年夏のサッカー・アジア杯中国大会における中国人サポーターの“剥き
出しの反日感情”は、いまだ記憶に新しい。日本人選手へのブーイングや口汚い野
次は「中国人の民度の低さ」「反日教育の“成果”」と言ってしまえばそれまでだ
が、著者の独自の取材、調査によれば根はより深く、日本を巻き込んだ「反日ネッ
トワーク」ともいうべき構造が見えてくる。
 靖国参拝、領土・領海侵犯問題、歴史認識問題等においても、中国の横暴ぶりは
目にあまる。また中国だけでなく、韓国における「反日ぶり」も以前にまして凄ま
じい。『冬のソナタ』などによって韓国ブームに沸いているが、人気の主役である
ペ・ヨンジュンが「私も韓国人として、独島妄言には腹が立つ」などと発言してい
ることは報じられない。さらに言えば、今日の韓国ブームがいかに「仕掛けて創ら
れた」かを日本人は知らない。
 マスメディアが伝えない、アジアにおける「反日」の構造を明らかにする。
http://www.php.co.jp/bookstore/prog/n_detail.php?select=4-569-63996-8
290デフォルトの名無しさん:04/11/22 08:28:31
> 書くのとではどっちが早いですか?

聞きたいのは「早い」かどうかか? それは自分しかわからんだろ? 自分で両方書いたんだろうから。
それとも「速い」かどうかか? それはコンパイラーに聞け。

それに書くならこうだ。
int RingNum2(int n, int min, int max)
{
  int s;

  if (max < min)
    swap(max, mix);
  if (n - min < 0)
    s = (max - min + 1) - (min - n) % (max - min + 1);
  else
    s = n - min;
  return s % (max- min + 1) + min;
}
291デフォルトの名無しさん:04/11/22 09:29:16
元々グローバルに宣言した配列の配列について要素数を変更したかったので
後からmallocを使うように設計変更しました。こんな感じです。

変更前
char hoge[YMAX][XMAX];

変更後(ymax と xmax は変数にしたいのです)
char *hoge;
mainの中で hoge = malloc(ymax * xmax * sizeof(char));

それで変更前はループ中などで hoge[i][j] で参照出来たのですが、
変更後だとそれが出来なくなってしまいました。
*(hoge + i * xmax + j) だとかなり鬱陶しいですし。
こういう時はどうすれば良いのでしょうか?

定義のところで
char (*hoge)[XMAX];
とか書く方法は知ってますが、これだと XMAX は変数から持ってこれないですよね?
292gakusei:04/11/22 09:45:43
学校の課題で教えて頂きたいところがあるのですが
何方かお願いできませんでしょうか??
293gakusei:04/11/22 09:49:07
http://www.iis.u-tokyo.ac.jp/~susaki/c/func1.html
ここなんですけど、事情があって授業を長期間休んでしまったせいで
全く分かりません。
もし宜しければ何方かお願いしますm(_ _)m
問題は1〜5番です
294デフォルトの名無しさん:04/11/22 09:50:16
>>291
関数なりマクロになりすれば

>>292
なにー?
295gakusei:04/11/22 09:54:46
>>294
返信有難うございます。

「解いて下さい」と直に言ってるみたいで本当に申し訳ございませんが・・・
単位がやばくて(x_x)
来週の月曜日まで期間があるので、暇つぶし程度でお願いします^^;
296デフォルトの名無しさん:04/11/22 09:56:54
x_x=1;
f(x_x);
297gakusei:04/11/22 09:58:34
ちなみにまだ自分は1つも解けてないんです^^;
ホントさっぱりで(x_x)
こういうトコに進学したコト自体が間違いでした^^;
298デフォルトの名無しさん:04/11/22 10:01:45
>>293
丸投げしないでどこが分からないとか書いてくださいよ。
2.height
4.height, weight, bmi, sweight
5.
int main(void){
 int i;double height, weight, bmi, sweight;
 while(1){
  printf("身長(m)と体重(kg)を入力してください ");
...
  message(********************);
 }
 return (0);
}
299デフォルトの名無しさん:04/11/22 10:04:32
これはネタだなu-tokyo
300291:04/11/22 10:06:36
>>294
マクロですか。やってみます!!!
激しくありがとうございます。!!!
301gakusei:04/11/22 10:08:22
有難うございますm(_ _)m 感謝します!!
入院生活だったので出席日数のコトは学校側は許してくれたのですが・・・
課題のコトになるとちょっと無理があって(x_x)
c言語は全くと言ってイイ程無知なんです^^;
それで丸投げ状態で(x_x)
本当にメチャクチャな頼み方ですがで申し訳ございませんが
もし宜しければ付き合ってくださいm(_ _)m
302gakusei:04/11/22 10:09:39
>>299
すいませんm(_ _)m
本当にネタじゃないです(x_x)
303デフォルトの名無しさん:04/11/22 11:28:54
なあ gakusei さんよ、何をそんなに焦っているんだい?
事情があったのは仕方がないね。
それで授業に出られなかったのは残念だね。
それで、一番肝心な学力はどうするの?
本来なら大卒じゃない学力で大卒を名乗っても無能扱いされるだけだよ。
授業に出られななかったのが何科目あったか知らないけど、
何のために大学へ来たのか、今一度、原点に立ち返ってみなよ。
もういい歳こいてるんだから、親の言うなりで大学へ行かされてるんじゃなく、
行きたくないんなら行かない、行くんなら目的のために最善を尽くせよ。
学力はあと1年あればちゃんと得られそうかい?
その場合はお金かかるよね。金策なり、交渉なりが、今やるべきことじゃないか。
304gakusei:04/11/22 11:46:36
>>303
と、学歴コンプレックスの低学歴が説教たれまくってます。
305デフォルトの名無しさん:04/11/22 11:48:01
DQN東大生キタ━━━━━━(゚∀゚)━━━━━━ !!
306デフォルトの名無しさん:04/11/22 11:49:54
お前ら人生相談板へ逝け。
307デフォルトの名無しさん:04/11/22 11:52:27
http://pc5.2ch.net/test/read.cgi/tech/1100530682/520

520 名前:gakusei[] 投稿日:04/11/22 10:01:29
308デフォルトの名無しさん:04/11/22 12:00:25
ここはとても香ばしいインターネットですね。
309デフォルトの名無しさん:04/11/22 12:06:53
菊川怜タン(*´д`*)ハァハァ
310デフォルトの名無しさん:04/11/22 12:07:53
>>304
ああ、そんなに高学歴ってわけじゃないしいいよ俺のことはDQNだと思ってくれて
で、君のことだが、今何のための行動をしているの? 目先じゃなくもっと遠くの目的で。
311gakusei:04/11/22 12:09:02
        {:::.:::.:::>.::´ ̄ヽ、 ,. -一 ヽ_
    ,. -┘.:::.:/:.:::.:::.:::.:::ノ::.Y:;___.:.:./.:.:.:.:.ヽ
   (.:::.:::.:::.:::.:::.:::.:::.:::.:;:、;:;∠二:.ヽ`ヽ.:.:.:.:.:.:.:、
    ):.:::.:::.:::.:::.:::.; '´ //〈.:.:.:.:\ \.:.:.:.:.:.:.::ヽ-へ
  r''".:::.:::.:::.:::.:::/ / / / ハ `ー‐┐\ ヽ:.:.:.:.:.:.:ノ=ニ):\
  { ::.:::.:::.:::.:::.; ′  /      |   {_:.:.:.ヽ ヽ:.:.:.(二`V/^):、
    ̄つ.:::.::/   / ,′    |    |  ̄ヽハ. i.:.:.:.:.`i!ヽ.!_/:./   
   (:.:::.:::.::!l!  l  i      |l!   |  ノ:.:.| |:.:.:.:.:.:||:.ト、;:ノ
    `7:.::|l|  | ハ      ;'|     し-、| |:.:..:_ノ.|.:| |
      ヽ|H  | | l__,    / |  /  / ノ|/:.:ん. l |:.| |
       |l!ヽ. 代「 ヽ.  , / `ト、/! ,イ. く:.:/:.; -┘| L」 !  高学歴だなんてそんな
        |  l N.--ミ ヽ/ソ _レ'´ lメ // |/  | |   |
        |  ! |l,ィ^h.、    ´ ̄ ヽ 1  |     | |   |
       | !( { { | | ' _, """ ノ!|   |    | |   |
      !.| |_\  ヽ、    _,. <._| !  |ヽ.   | |   |
         !/〈.:.:.Y_>、 〉、 ̄´;:;:;:;:;:;://|  |:.:.::',  l l   |
       ム-レく.:.:.:_}ノ:@;:ニ、;:;:;//;:;! 、|:.:.:.:.:L_ ! !  |
     _,.∠=ニ〈:.:.:.:.:.:.:.:.:.:.:/ニ  V;〈〈_;/| ヽ:.:.:.:.:.:L_l !  |
    `ーニ二_‐ヘ.:.:.:.:.:.:.:.:(゙こ  /'^ヘ V:.:\ \:.:.:.:.:{! |   !
     <:.:.:. ̄} .:.:.:.:.:.:.:`} ノ:.:..:.ハ V:.:_>- ヽ.:.:.:.} |   i
      |_>'7.:.:.:.:.:.:.:.:.:.:Y.:.:.:.:.:.:.:.::.:>'"  /:.:r‐'´〉、  i
312gakusei:04/11/22 12:12:13
>>310
そんな事を低学歴のバカと話すためにこのスレに来ているわけではありません。
さっさと答え教えろヴォケ。
313デフォルトの名無しさん:04/11/22 12:13:38
本人はとうの昔にいないような希ガス。
314デフォルトの名無しさん:04/11/22 12:15:01
こんだけ釣れりゃ満足だろ
315デフォルトの名無しさん:04/11/22 12:20:15
もう終わりか残念だ。次の質問щ(゚Д゚щ)カモーン!!
316デフォルトの名無しさん:04/11/22 12:22:10
>さっさと答え教えろヴォケ。

なんのために?
317デフォルトの名無しさん:04/11/22 12:27:27
別スレで部分的に答えちゃったけど入院中何してたんだろ…( ´ー`)
318デフォルトの名無しさん:04/11/22 12:42:10
真紅萌え
319デフォルトの名無しさん:04/11/22 13:03:32
ちょっと教えて下さい

コンパイルすると最後に
「○○はステータス 1 で終了しました」
と出るのですが、この”ステータス1”って何ですか?
320デフォルトの名無しさん:04/11/22 13:05:14
「○○は」による
321デフォルトの名無しさん:04/11/22 13:06:44
こばやしあせいが作曲担当しているCMの会社か?
322デフォルトの名無しさん:04/11/22 13:10:05
○○の部分に、
「collect2: ld 」が入ります
323デフォルトの名無しさん:04/11/22 13:11:47
324デフォルトの名無しさん:04/11/22 13:18:34
ちなみに
/tmp/ccU1LIgC.o(.text+0x9a): In function `main':
: undefined reference to `関数名'
collect2: ld はステータス 1 で終了しました

こんな感じで表示されます
325デフォルトの名無しさん:04/11/22 13:20:56
>>324
1:異常終了
プロトタイプ見直せ
326デフォルトの名無しさん:04/11/22 13:32:02
-lm
327319:04/11/22 13:35:46
>>323
>>325
レスサンクス
ガンガッてみます
328デフォルトの名無しさん:04/11/22 13:37:00
無視された・・・
そりゃ確かに数学ライブラリとは限らないが。
329319:04/11/22 13:40:32
うおーーーーーーーー
本当だ プロトタイプ宣言してなかった!
感謝ですヽ(´ー`)ノ
330デフォルトの名無しさん:04/11/22 13:41:03
>>325
main から return したら正常終了だが・・・
331デフォルトの名無しさん:04/11/22 13:42:38
プロトタイプ宣言をしていないとリンクエラーが出るなんてはつみみ
332デフォルトの名無しさん:04/11/22 13:43:37
おお、そっちのがでかいな
不覚であった・・・
333デフォルトの名無しさん:04/11/22 13:43:47
勉強になってよかったな。
334デフォルトの名無しさん:04/11/22 13:51:46
コマンドライン引数を用いるプログラムで中間テストにでそうな
問題をどうか教えてください
あと30分で始まってしまうんです!!
335デフォルトの名無しさん:04/11/22 13:53:14
>>334
コマンドライン引数を全て表示せよ
336デフォルトの名無しさん:04/11/22 14:02:51
コマンドライン引数で与えられたファイルをCのプログラムとみなしてコンパイルしろ。
337デフォルトの名無しさん:04/11/22 14:04:35
ありがとう。逝ってきます。
338マルハの中華丼:04/11/22 14:39:57
>>330
あふぉ
339デフォルトの名無しさん:04/11/22 15:23:34
>>331
ヘッダやライブラリを切り分けていかない人には無縁の話
340デフォルトの名無しさん:04/11/22 15:31:06
昨日C言語を始めました
配列のアドレスを指定するのにアドレス演算子が必要ないのは、変数をstrとして
str=&str[0]
だからということで説明がつきますか?
341デフォルトの名無しさん:04/11/22 15:43:52
>>340
そうだよ。
342319:04/11/22 16:01:24
先輩方教えて下さい
共通モジュールの使用方法ってどうやるんでしょうか?

例えば、
A、BそれぞれC言語ソースファイルになっていて
Aの中でBで定義されている関数を使いたいのです

Aの中にBの内容を記述したら共通モジュールと言えない様な気がしてならないのですが
普通の開発だとどうやるのでしょうか?
343デフォルトの名無しさん:04/11/22 16:04:03
Bのプロトタイプをヘッダファイルに追い出してAからインクルード、コンパイル後にAとBをリンクする。
344319:04/11/22 16:27:32
>>343
リンクか!
助かりました
ありがとうございます
345デフォルトの名無しさん:04/11/22 21:48:09
age
346デフォルトの名無しさん:04/11/22 21:54:11
>>319は呼び出す関数の名前を書き間違っていただけな気がする。
347デフォルトの名無しさん:04/11/22 21:55:28
>>346
パラメータの型が違ってるとか
348デフォルトの名無しさん:04/11/22 22:21:08
質問します。

「(cahr)getchar()」と「getchar()」の違いって何でしょうか?

よろしくお願いします。
349デフォルトの名無しさん:04/11/22 22:21:57
>>348
同じ。
350デフォルトの名無しさん:04/11/22 22:22:01
>>348
cahrって何だ?それを説明してくれ
351デフォルトの名無しさん:04/11/22 22:22:42
下らない
352デフォルトの名無しさん:04/11/22 22:25:02
>>349
同じなんですか。ありがとうございます

>>350
ごめんなさい。charの間違いです。
353デフォルトの名無しさん:04/11/22 22:25:39
>>350
typedef int cahr;
354デフォルトの名無しさん:04/11/22 22:33:07
ごめんんださい。carの間違いです。
355hexdump:04/11/22 22:37:57
#include <stdio.h>
main(void){
char a;
a = 0xaf;
printf("%02x \n", a );
}
結果
ffffffaf
になります。
2文字だけafと取れないのでしょうか?
356デフォルトの名無しさん:04/11/22 22:39:01
>>355
char a;
 ↓
unsigned char a;
357モウモウ:04/11/22 22:39:46
>>355
printf("%02x \n", ((int) a) & 0xFF );
でいいんでは?
358デフォルトの名無しさん:04/11/22 22:41:15
>>357
プ
359デフォルトの名無しさん:04/11/22 22:43:56
intへのキャストは不要
printf("%02x\n", a & 0xff);
が正解
360hexdump:04/11/22 22:44:33
ありがとう
#include <stdio.h>
main(void){

unsigned char a;
a = 0xaf;
printf("%02x \n", a );
}
結果
af
できだ
361デフォルトの名無しさん:04/11/22 22:48:58
357はあきらかなしったかぶり
362デフォルトの名無しさん:04/11/22 22:50:26
ここでunsigndにするのは初級、0xffでマスクするほうがなぜいいか
(出てくるコードは大概いっしょなのに)というのがわかるまでに
1か月で済むやつもいれば、1年かかってもそれがわからないやつもいる。
363モウモウ:04/11/22 22:50:30
>>361
すまんかったな。
364デフォルトの名無しさん:04/11/22 22:54:28
>>362
アセンブラ読めない香具師ハケーン
365デフォルトの名無しさん:04/11/22 22:55:51
よめるからいってるんだろうが
366デフォルトの名無しさん:04/11/22 22:56:56
>>362
日本語書けない香具師ハケーン
367デフォルトの名無しさん:04/11/22 23:02:09
ここのvoid本物?
368デフォルトの名無しさん:04/11/22 23:02:53
書いてるじゃん > 日本語
369デフォルトの名無しさん:04/11/22 23:03:32
本物だったらこの時間は寝てるはず。
それに本物だったら「?」とかつかわん。
370デフォルトの名無しさん:04/11/22 23:04:27
ということにしたいのですね?
371モウモウ:04/11/22 23:04:40
どっちも同じコードになったんだけど。。。

void Func1(char a)
{
    printf("%02x \n", (unsigned char) a); 
}

6:    void Func1(char a)
7:    {
00401000   mov         eax,dword ptr [esp+4]
00401004   and         eax,0FFh
00401009   push        eax
0040100A   push        offset string "%02x \n" (00408030)
0040100F   call        _printf (004010a0)
00401014   add         esp,8
8:        printf("%02x \n", (unsigned char) a);
9:    }
00401017   ret
372モウモウ:04/11/22 23:05:12
void Func2(char a)
{
    printf("%02x \n", a & 0xFF ); 
}

11:   void Func2(char a)
12:   {
00401020   mov         eax,dword ptr [esp+4]
00401024   and         eax,0FFh
00401029   push        eax
0040102A   push        offset string "%02x \n" (00408030)
0040102F   call        _printf (004010a0)
00401034   add         esp,8
13:       printf("%02x \n", a & 0xFF );
14:   }
00401037   ret
373デフォルトの名無しさん:04/11/22 23:05:20
なつかしいなー
void氏ねー
374デフォルトの名無しさん:04/11/22 23:05:37
本物は、1行目がかならず文字数が奇数になってるはず。

5行以上あるときは、最終行とその2行まえが韻を踏んでいるはず。
(こんどの新札より、本物/にせものを身や分けやすい!)
375デフォルトの名無しさん:04/11/22 23:07:08
本物はIn articleで始めるんじゃなかった?
376デフォルトの名無しさん:04/11/22 23:07:23
> どっちも同じコードになったんだけど。。。

だからそう書いてあるだろ!

日本語読めないやつめ。
377デフォルトの名無しさん:04/11/22 23:08:24
> 本物はIn articleで始めるんじゃなかった?

いや、そうともかぎらん。
あと、本物がぜったいつかわない文字が何文字かある。
378モウモウ:04/11/22 23:09:03
>>376

>>362>>364 って、
どっちかのほうが優れているって言っているんじゃないの?
379デフォルトの名無しさん:04/11/22 23:09:29
はいはい...先日本物の写真をgetしたものです。(けーたいなので画質は悪いですが?
欲しいかたはE-Mailください。
380デフォルトの名無しさん:04/11/22 23:10:32
>>378
おまえ、都合のわるいところだけは飛ばして読むほうか?
381モウモウ:04/11/22 23:11:10
>>380
うん?そんなつもりはないのですが、どういうことですか?
382デフォルトの名無しさん:04/11/22 23:11:12
362をもう1回じっと読め。
っていうか10回でもいいからわかるまでよめ
383モウモウ:04/11/22 23:13:09
>382
> 0xffでマスクするほうがなぜいいか

マスクするほうがいいって言っているんでは?
384デフォルトの名無しさん:04/11/22 23:17:02
> ここでunsigndにするのは初級、0xffでマスクするほうがなぜいいか
> (出てくるコードは大概いっしょなのに)というのがわかるまでに
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 1か月で済むやつもいれば、1年かかってもそれがわからないやつもいる。
385デフォルトの名無しさん:04/11/22 23:17:09
一挙にウホなスレになったな・・・
386デフォルトの名無しさん:04/11/22 23:18:52
でなぜ0xffでマスクした方がいいのでぃすか?
387モウモウ:04/11/22 23:18:54
>>384
ああ、いっしょだって言っているのか。
その文章はちょっと分かりにくいよ。
>>364 も読み違いしているんじゃないのかな。
388デフォルトの名無しさん:04/11/22 23:20:33
> その文章はちょっと分かりにくいよ。

なわけねーだろ
389デフォルトの名無しさん:04/11/22 23:21:30
>>379
写真は本人のホームページで見られるから困ってません。
390デフォルトの名無しさん:04/11/22 23:22:17
このスレはもう馬鹿しか残っていないから
何か情報を得たり議論を深めたりすることは不可能。
暇を潰したいと思っている人間以外は
別のBBSかMLへ逝きましょう。
391デフォルトの名無しさん:04/11/22 23:23:05
ということにしたいのですね
  ヘ_ヘ
 ミ ・ ・ ミ
  (  ° )〜
392デフォルトの名無しさん:04/11/22 23:23:13
>>390
と、閑古鳥が鳴いて困っている糞サイト管理人が言いました
393デフォルトの名無しさん:04/11/22 23:23:21
直に同じって書いてるのに分かり難いって…。
1語1語に解説を要求するのか?
394デフォルトの名無しさん:04/11/22 23:23:38
[ストーリー解説]
(1) 364がしったぶりのぼけなことを書いた。(違うコードになると思い込んでいて)
(2) 実際に-Sつきでコンパイルしたら同じになってしまった。
(3) 「読み間違えてそうかいたんだ!」といおうとしたが、いかにもしらじらしい。
(4) そこで「読み間違えるやつ」を登場させる。
(5) そいつに「364もきっとそうだとおもうと」といわせる。

まだ、十分わざとらしいってば...
395モウモウ:04/11/22 23:24:16
>>393
ごめんよ。私が悪かった。
これで終わりにしよう。
396デフォルトの名無しさん:04/11/22 23:24:42
>>392
閑古鳥ってここのこと?
http://pc5.2ch.net/test/read.cgi/tech/1100951565/
397hexdump:04/11/22 23:24:45
#include <stdio.h>
main(void){
unsigned char a[22];
a[2] = 0xf3;
a[3] = 0xf3;
a[4] = 0xf3;
a[5] = 0xf3;
printf("%02X%02X %02X%02X \n",a[1],a[2],a[3],a[4]);
}
配列使ってhexdump表示します
マスクつかうより見やすいからunsignd採用したいと思います
398デフォルトの名無しさん:04/11/22 23:25:05
> 写真は本人のホームページで見られるから困ってません

でも、先々週とったばかりのやつですよ!
(某ぷっつん女優との2しょっと)
399デフォルトの名無しさん:04/11/22 23:25:50
> マスクつかうより見やすいからunsignd採用したいと思います

スペルおぼえてないやつが、言うセリフじゃねーな
400デフォルトの名無しさん:04/11/22 23:26:21
>>398
要りません
401モウモウ:04/11/22 23:26:42
>>394
正直にいっておくけど、私は 364 とは別人だし、まったく知らない人だよ。
402デフォルトの名無しさん:04/11/22 23:26:50
> ごめんよ。私が悪かった。

おや、きょうは素直に認めるんですね。
403デフォルトの名無しさん:04/11/22 23:28:01
でも、きのうの「edを ^Dで終了するとプロセスが残ってしまう」は
かっこわるかったですね。
なかなか認めずにあばれつづけて、みんなの寝るのを待ってましたね? (Y/y)
404デフォルトの名無しさん:04/11/22 23:28:12
>>402
せっかく落ち着いたのに絡むな。
わざとやってるとしたらvoidといっしょだ。
405デフォルトの名無しさん:04/11/22 23:28:36
では、ネットオークションで売ることにします。
406デフォルトの名無しさん:04/11/22 23:29:24
>>404
「せっかくすなおにみとめてごまかす方法をえらんだんだから、
それ以上言うのはずるい」ですか? 翻訳すると
407デフォルトの名無しさん:04/11/22 23:29:28
あーうんこ臭ぇ
408モウモウ:04/11/22 23:30:07
>>402
ちょっとわけがわからないのですが、他の人と取り違えていませんか。
私は間違ったときはいつも誤りますよ。
>>403 もぜんぜん身に覚えがないのですが。
まあいいですけど。
409デフォルトの名無しさん:04/11/22 23:30:36
unsignedの功罪にきづくまで何週間かはたまた何か月かかるかで、
その後どこまでレベルアップできるかが決まります。
410デフォルトの名無しさん:04/11/22 23:31:31
> ぜんぜん身に覚えがないのですが。

ふふ
411デフォルトの名無しさん:04/11/22 23:32:04
どう考えてもunsignedのほうがビットマスクより優れてるんだが。
charは1バイトだが1バイトが0〜0xFFだとは限らないんだぞ。
412デフォルトの名無しさん:04/11/22 23:32:45
>>409
君はいまどのレベルにいるの?
413デフォルトの名無しさん:04/11/22 23:33:11
> どう考えてもunsignedのほうがビットマスクより優れてるんだが。

いいえ。

また、unsigned charは8bitとはかぎりませんし。
414デフォルトの名無しさん:04/11/22 23:33:44
> 君はいまどのレベルにいるの?

地下20回でCと戦っています。
415デフォルトの名無しさん:04/11/22 23:34:13
0〜0xFFは1バイトだがcharが1バイトだとは限らないんだぞ。
416デフォルトの名無しさん:04/11/22 23:35:03
おれはもうすぐもっと不思議なC++70階だよ
417デフォルトの名無しさん:04/11/22 23:35:23
ケンタウロスかー
418モウモウ:04/11/22 23:35:26
>>415
そんな細かいこと言っていたら
> 0〜0xFFは1バイトだが
も違うっていう人もいるよ。
419デフォルトの名無しさん:04/11/22 23:35:50
> > 0〜0xFFは1バイトだが
> も違うっていう人もいるよ。

いいえ。いません。
420デフォルトの名無しさん:04/11/22 23:36:04
>>415
printf("%u", sizeof 0);
printf("%u", sizeof 0xFF);
421デフォルトの名無しさん:04/11/22 23:36:21
>0〜0xFFは1バイトだが

これは違わない
422デフォルトの名無しさん:04/11/22 23:37:21
>>415
0〜0xFFは1オクテット
1バイトが8ビットじゃない世界は世の中にいくらでもある
423デフォルトの名無しさん:04/11/22 23:37:35
> charが1バイトだとは限らない

void先生の本を読め!
P94だ
charは「かならず」1バイトだと書いてある!

よって正しい。
424モウモウ:04/11/22 23:37:56
それは1オクテットだよ。正確には。
1バイトが8ビットとは限らないんだよ。
425デフォルトの名無しさん:04/11/22 23:38:23
(でも1オクテットだとも8bitだとも書いてない。ふふ...)
426デフォルトの名無しさん:04/11/22 23:38:31
>>423
用語の定義を個人の本に頼るとは・・・・
ウホきもい
427デフォルトの名無しさん:04/11/22 23:38:57
>>424
かぶりすぎ
428デフォルトの名無しさん:04/11/22 23:39:00
>>423
void先生の本ってなんですか?
429デフォルトの名無しさん:04/11/22 23:39:10
>>423
それはむしろANSI規格に
sizeof(char)は必ず1を返す って書いてあるのが根拠だろ
430デフォルトの名無しさん:04/11/22 23:39:34
> それは1オクテットだよ。正確には。

いいや、それがまちがい。
charは1オクテットだという保証などどこにもない!
つまりかならず8bitなわけでもない!

でも「かならず1バイト」なのだ。

さすが日下部先生!
431デフォルトの名無しさん:04/11/22 23:40:13
> sizeof(char)は必ず1を返す って書いてあるのが根拠だろ

いや、その2ページ前だ! ちゃんと読め!
432デフォルトの名無しさん:04/11/22 23:40:54
> どう考えてもunsignedのほうがビットマスクより優れてるんだが。

馬鹿。逆だろ。
433モウモウ:04/11/22 23:41:08
> 0〜0xFFは1バイトだが

私はこれに対して言ったわけだが。。
char の話じゃなくって。
434デフォルトの名無しさん:04/11/22 23:41:17
charは必ず1byteだけど8bitとは限らない、が正確なとこ
435デフォルトの名無しさん:04/11/22 23:42:21
自演してるうちに自分が突っ込んでるのか突っ込まれてるのか分からなくなったんじゃない?
436デフォルトの名無しさん:04/11/22 23:44:39
まったく・・・
/Jオプションつけてコンパイルするだけの話だろ?
437デフォルトの名無しさん:04/11/22 23:45:26
ウホきもい

# スクロールで誤魔化させてやらない
438デフォルトの名無しさん:04/11/22 23:45:28
> #include <stdio.h>
> main(void){
> char a;
> a = 0xaf;
> printf("%02x \n", a );
> }
> 結果
> ffffffaf
> になります。
> 2文字だけafと取れないのでしょうか?

これがもともとの要求だし...
439デフォルトの名無しさん:04/11/22 23:46:21
ウホきもい

# スクロールで誤魔化させてやらない
440デフォルトの名無しさん:04/11/22 23:47:25
はいはいNHKのさくらたんが通りますよー
http://deadman44.jp/etc/20041122-230013.mpg
441デフォルトの名無しさん:04/11/22 23:49:17
charに0xaf入れて負数と判断されてる時点でchar=8ビット確定だが
このスレ的にはそもそもオーバーフローは処理系依存だからどっか行けって事?
442デフォルトの名無しさん:04/11/22 23:52:04
>>441
オーバーフローの結果は未定義
オーバーフローという現象が存在するか否かが処理系定義
いずれにしても処理系依存という用語では分類されない
処理系の特徴に依存する動作なら関連性があるが
443デフォルトの名無しさん:04/11/22 23:52:41
>>440
流石国営放送
444デフォルトの名無しさん:04/11/22 23:58:57
良く出来たコラだな
445hexdump:04/11/23 00:28:33
/Jオプションって何?
bccにもあるの?
446デフォルトの名無しさん:04/11/23 00:35:33
標準出力をchar[]型の変数に割り当てる事ってできないでしょうか?
そのアプリケーションでprintfなんかを使って他のフレームワークに
const char* として渡してやりたいです。
447デフォルトの名無しさん:04/11/23 00:37:07
少なくとも標準には存在しない
448デフォルトの名無しさん:04/11/23 00:37:09
sprintf?
449446:04/11/23 00:42:45
sprintfが流用できればと思ったんですがやはりprintfが自然かなと思いました。
writeln()
とかに命名した関数でリソースプールを実装したsprintf()ラッパで
再現する方向を考えます。
ありがとうございました。
450デフォルトの名無しさん:04/11/23 00:59:12
float も内部では double で処理されていて
速度も double の方が速いというのは
過去の話ですか?
451デフォルトの名無しさん:04/11/23 01:00:03
過去か現在かって問題じゃない
452デフォルトの名無しさん:04/11/23 01:19:35
はい、過去の話です。



が、doubleが引数になっていたりしてキャストの手間がありますが
453デフォルトの名無しさん:04/11/23 01:22:21
>>451
>>452
どっちだよ
ちゃんと教えてあげれ
454デフォルトの名無しさん:04/11/23 01:22:55
処理系に依存します、ってのが定番アンサー
455デフォルトの名無しさん:04/11/23 01:26:05
実測しないで綺麗事を言うだけなオジョーに話すことはない
456450:04/11/23 01:33:30
>>455
実測って, たとえばどんな演算をすれば測定できますか?
やってみようと思ったのですが,
適切な式が浮かびません…
457デフォルトの名無しさん:04/11/23 01:37:55
>>456
その程度のレベルの人間が速いだの何だの言ってんじゃねえよ
458デフォルトの名無しさん:04/11/23 01:40:02
漏れがちょろっと試した限りではfloatの方が1.5倍くらい速かった。
激しく環境依存なので何の参考にもならんが。
459デフォルトの名無しさん:04/11/23 01:41:07
time a.out
460デフォルトの名無しさん:04/11/23 01:49:28
>>457
そんなこと言うと質問する人がいなくなる

って言っても>>454なのかな...
良い例が浮かびません
461デフォルトの名無しさん:04/11/23 01:54:39
>>460
良い例が浮かばない=測定条件が存在しない
つまり、速くも遅くもないってことだ

チューニングとは実働環境に特化させることを言う
目的のないチューニングは首のない鶏がごとし
462デフォルトの名無しさん:04/11/23 01:56:03
> 首のない鶏がごとし
と首長族が言っています
463デフォルトの名無しさん:04/11/23 02:14:19
初心者ほど速度速度と言う。
そして、不必要に高速化してどんどん見にくいコードを書いていく。



と、初心者が同レベルの奴を見て言ってみる。
464デフォルトの名無しさん:04/11/23 02:15:54
>>463
高速化の議論についてこれない初心者は(・∀・)カエレ!!
465デフォルトの名無しさん:04/11/23 02:16:45
まだ議論にも達してねーじゃねーか馬鹿w
466デフォルトの名無しさん:04/11/23 02:18:20
アセンブラかたこと
ハードクルクルパー
アルゴリズムは逐次制御しかわかんねー

妙にプライドだけ高い抵抗勢力は戦力外どころかマイナスだ
467デフォルトの名無しさん:04/11/23 02:23:10
このスレはもう馬鹿しか残っていないから
何か情報を得たり議論を深めたりすることは不可能。
暇を潰したいと思っている人間以外は
別のBBSかMLへ逝きましょう。
468大原ゆき:04/11/23 02:25:09
だれか私を呼びましたか
469デフォルトの名無しさん:04/11/23 02:25:17
971 名前:デフォルトの名無しさん 投稿日:04/11/20 17:19:33 mailto:sage
ネタだったということにしたいのですね(・∀・)ニヤニヤ
470デフォルトの名無しさん:04/11/23 02:32:52
資格の大原

誤答だらけのヘタレ大原
471デフォルトの名無しさん:04/11/23 02:36:48
goto hell;
472デフォルトの名無しさん:04/11/23 04:48:30
「実測しない'高速化'の議論は無意味」とはカーニハンの有名なことば。
473デフォルトの名無しさん:04/11/23 05:20:47
ちなみに、うちの環境だとdoubleのほうがfloatより速いです。
474デフォルトの名無しさん:04/11/23 08:06:39
実際のコードがなきゃ比較する意味がない。
475デフォルトの名無しさん:04/11/23 08:23:40
意味ではないのでは?
476デフォルトの名無しさん:04/11/23 08:24:05
今週は日下部の弟子どもが大量になだれこんできている模様。
477デフォルトの名無しさん:04/11/23 08:24:25
こわがりすぎー
478デフォルトの名無しさん:04/11/23 08:25:50
> それはむしろANSI規格に

いまどき「ANSI規格」とかいってるやつはかなりぼけ
479デフォルトの名無しさん:04/11/23 08:27:18
> が、doubleが引数になっていたりしてキャストの手間がありますが

いまどき同じかずだけのfloat引数の関数の1セットがある
480デフォルトの名無しさん:04/11/23 08:30:14
しかしprintf系だとキャスト無しでfloatを渡すことはできない。
481デフォルトの名無しさん:04/11/23 08:50:47
おまえぼけ
なんのためにIEEEフォーマットに変えたのだ!
482デフォルトの名無しさん:04/11/23 10:12:14
すみません
「long double」 という型は 「float」 や 「double」 と同じように
気軽に使ってもよいのでしょうか?
483デフォルトの名無しさん:04/11/23 11:43:05
>>482
だめです、使いすぎるとメモリが物理的に破壊されます。
484デフォルトの名無しさん:04/11/23 11:51:37
>>482
誰にも許可なんか求めなくていい
しょせん機械、道具に過ぎない

必要なら使うというだけ
例えば
・double では精度が足りない
・ウチのマシンでは double より速い
のようなこと
485デフォルトの名無しさん:04/11/23 12:25:26
なんで質問してる方がsageで解答する方がageなんだ?
486デフォルトの名無しさん:04/11/23 12:27:18
Apacheのソースを読んでてつまづいたんですが、

unsigned aborted:1;
signed int keepalive:2;

が何を宣言してるのかわからないんですが教えてください。
487モウモウ:04/11/23 12:32:15
>>486
ビットフィールド、で検索してみたら?
488デフォルトの名無しさん:04/11/23 12:38:30
>>485
あんたほど神経質に使い分けてないだけだろ
489486:04/11/23 12:40:20
>>487
なんとか理解できました。
ありがとうございます。
490デフォルトの名無しさん:04/11/23 13:16:15
>>488
つまり >>485>>488 は自演厨
491デフォルトの名無しさん:04/11/23 13:24:44
age/sageにこだわる奴って・・・
492デフォルトの名無しさん:04/11/23 13:28:02
>>486
1と2だけだったらビットフィールド使う意味はあまりない
493デフォルトの名無しさん:04/11/23 13:29:14
>>491
決まってんだろ、技術的な論議に入れなくて、2ch 語の論議で満足したいだけな低脳
494デフォルトの名無しさん:04/11/23 13:35:45
>>492
ズレとる
495デフォルトの名無しさん:04/11/23 13:40:19
>>494
001と010が010と100になってるってこと?
496デフォルトの名無しさん:04/11/23 13:44:46
文字列コピーをしようと思ったんですが、うまくいきません。
どうすればうまくいきますか?
char *copy(char *dest, char *src)
{
 char *tmp;

 tmp = dst;
 while ((*src++ = *dst++ ) != NULL);

 return tmp;
}
497デフォルトの名無しさん:04/11/23 13:49:07
>>496
while内でdestとsrcが反対だろ。
498デフォルトの名無しさん:04/11/23 13:51:31
while (*src++ = *dst++);
でOK
499デフォルトの名無しさん:04/11/23 13:51:37
NULLってなんだよ'\0'にしとけ
500デフォルトの名無しさん:04/11/23 13:52:04
>>498
警告が出るから不許可
501496:04/11/23 14:00:28
ありがとうございます。明日学校に行ってから試してみます!
502496:04/11/23 14:23:49
なんだよ手前等、俺がせっかく突込みどころ満載のネタを振ってやったのにたった5レスかよ。シケてんなぁ
503デフォルトの名無しさん:04/11/23 14:28:43
今の普通32bitCPUつんだPCで、
doubleって64bitなんですか?それとも32bit?
504デフォルトの名無しさん:04/11/23 14:31:53
64bit doubleより64bit int(long long)のほうが精度が高い理由を20字以内で述べよ
505デフォルトの名無しさん:04/11/23 14:33:43
>精度が高い
小数点以下をどう扱っているか、が違うからだ
506デフォルトの名無しさん:04/11/23 14:36:49
>>502
氏ねヴォケ
507デフォルトの名無しさん:04/11/23 14:39:24
>>505
そうか。助かったよ
508デフォルトの名無しさん:04/11/23 14:39:45
sizeof(hoge) と sizeof hoge の違いを教えてください
509デフォルトの名無しさん:04/11/23 14:41:52
>>508
sizeof(hoge) と sizeof( hoge )ぐらいの違い
510デフォルトの名無しさん:04/11/23 14:44:12
>>504
答え「設問が根本的に間違っている」13文字
511デフォルトの名無しさん:04/11/23 14:44:54
ruby is nanbar one desuka?
512デフォルトの名無しさん:04/11/23 14:45:16
off cousu!!
513デフォルトの名無しさん:04/11/23 16:15:38
コースを外れているんだな。
514gakusei:04/11/23 16:18:24
304
311
312
は自分じゃないです(x_x)
書き込むのが遅くなりました
申し訳ございませんm(_ _)m
515デフォルトの名無しさん:04/11/23 16:26:11
課題
『標準入力からテキストファイルを読み込み、行を短い順に出力しなさい。
但し、行は最大 80 文字とし、 80 文字以上の行は先頭 80 文字だけの行として取扱い出力し、
空行は出力しないで下さい。
また、同じ長さの行は入力した順番に出しなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに入力した出力と、
http://www.bbn.com/index.html のホームページのソースを入力した結果を先頭 5 行、
最後の 5 行を示しなさい。

なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。』

CとC++のどちらでも構いません。よろしくお願いします。
516デフォルトの名無しさん:04/11/23 16:28:34
課題
『標準入力からテキストファイルを読み込み、行を短い順に出力しなさい。
但し、行は最大 80 文字とし、 80 文字以上の行は先頭 80 文字だけの行として取扱い出力し、
空行は出力しないで下さい。
また、同じ長さの行は入力した順番に出しなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに入力した出力と、
http://www.bbn.com/index.html のホームページのソースを入力した結果を先頭 5 行、
最後の 5 行を示しなさい。

なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。』

CとC++のどちらでも構いません。よろしくお願いします。
517デフォルトの名無しさん:04/11/23 16:28:52
課題
『標準入力からテキストファイルを読み込み、行を短い順に出力しなさい。
但し、行は最大 80 文字とし、 80 文字以上の行は先頭 80 文字だけの行として取扱い出力し、
空行は出力しないで下さい。
また、同じ長さの行は入力した順番に出しなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに入力した出力と、
http://www.bbn.com/index.html のホームページのソースを入力した結果を先頭 5 行、
最後の 5 行を示しなさい。

なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。』

CとC++のどちらでも構いません。よろしくお願いします。
518デフォルトの名無しさん:04/11/23 16:29:53
課題
『標準入力からテキストファイルを読み込み、行を短い順に出力しなさい。
但し、行は最大 80 文字とし、 80 文字以上の行は先頭 80 文字だけの行として取扱い出力し、
空行は出力しないで下さい。
また、同じ長さの行は入力した順番に出しなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに入力した出力と、
http://www.bbn.com/index.html のホームページのソースを入力した結果を先頭 5 行、
最後の 5 行を示しなさい。

なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。』

CとC++のどちらでも構いません。よろしくお願いします。
519デフォルトの名無しさん:04/11/23 16:33:55
課題
『標準乳力からテキストファイルを読み込み、行を短い順に出力しなさい。
佃し、行は最大 80 文字とし、 80 文字以上の行は乳頭 80 文字だけの行として取扱い説明し、
空行は出力しないで下さい。
また、同じ長さの行は乳力した順番に出しなさい。
レポートでは、実行例として、作成したウスターソースをプラグラムに入力した出力と、
http://www.bbn.com/index.html のホムーページのソースを入力した結果を先頭 5 行、
最後の 5 行を示しなさい。

なお、取り扱える行数は実行時のコンピュータの目盛りのサイズのみに
依存しなければなりません。勝手にインチを設けてはいけません。』

CとC++のどちらでも構いません。よろしくお願いします。
520本7:04/11/23 16:34:48
DOSしてなにがおもしろいんだか
521:04/11/23 16:42:20
●に飽きたので▲も買ってみた
522デフォルトの名無しさん:04/11/23 16:43:34
俺のところじゃDOS7が現役なんだがな
523デフォルトの名無しさん:04/11/23 16:44:23
>>519
微妙に変えてあるのか
524デフォルトの名無しさん:04/11/23 16:52:24
課題
『標準入力からテキストファイルを読み込み、行を短い順に出力しなさい。
但し、行は最大 80 文字とし、 80 文字以上の行は先頭 80 文字だけの行として取扱い出力し、
空行は出力しないで下さい。
また、同じ長さの行は入力した順番に出しなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに入力した出力と、
http://www.bbn.com/index.html のホームページのソースを入力した結果を先頭 5 行、
最後の 5 行を示しなさい。

なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。』

CとC++のどちらでも構いません。よろしくお願いします。

できれば、夜の7時までにお願いします。その後遊びに行きたいので。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525デフォルトの名無しさん:04/11/23 16:55:03
課題
『標準入力からテキストファイルを読み込み、行を短い順に出力しなさい。
但し、行は最大 80 文字とし、 80 文字以上の行は先頭 80 文字だけの行として取扱い出力し、
空行は出力しないで下さい。
また、同じ長さの行は入力した順番に出しなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに入力した出力と、
http://www.bbn.com/index.html のホームページのソースを入力した結果を先頭 5 行、
最後の 5 行を示しなさい。

なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。』

CとC++のどちらでも構いません。よろしくお願いします。

できれば、夜の7時までにお願いします。その後遊びに行きたいので。
526デフォルトの名無しさん:04/11/23 16:56:36
>>504
「精度」の定義をしろ
527デフォルトの名無しさん:04/11/23 16:57:04
>>524
俺んとこ遊びに来い
528デフォルトの名無しさん:04/11/23 16:57:26
課題
『標準入力からテキストファイルを読み込み、行を短い順に出力しなさい。
但し、行は最大 80 文字とし、 80 文字以上の行は先頭 80 文字だけの行として取扱い出力し、
空行は出力しないで下さい。
また、同じ長さの行は入力した順番に出しなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに入力した出力と、
http://www.bbn.com/index.html のホームページのソースを入力した結果を先頭 5 行、
最後の 5 行を示しなさい。

なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに
依存しなければなりません。勝手な上限を設けてはいけません。』

CとC++のどちらでも構いません。よろしくお願いします。

できれば、夜の7時までにお願いします。その後遊びに行きたいので。
529デフォルトの名無しさん:04/11/23 17:00:58
連投しやがった馬鹿の全レス、透明あぼ〜ん完了
次の方どうぞ
530デフォルトの名無しさん:04/11/23 18:20:32
4桁で基数ソート書いて〜
531デフォルトの名無しさん:04/11/23 18:22:08
基数ソ+
532デフォルトの名無しさん:04/11/23 18:44:00
>526

Say, Do !
533デフォルトの名無しさん:04/11/23 18:45:44
>>504
桁数を指定するのに領域を浪費するから
18文字
534デフォルトの名無しさん:04/11/23 18:56:13
>>504
浮動小数点数は指数表現に情報を必要とするから

ああ〜22文字。ブブー
535デフォルトの名無しさん:04/11/23 18:57:21
浮動小数点数は指数表現に領域が必要だから

よーしぴったり20文字
536デフォルトの名無しさん:04/11/23 19:00:01
>浮動小数点数は指数表現に情報を必要とするから
 浮動小数点数は指数表現用の情報を含むため
537デフォルトの名無しさん:04/11/23 23:49:10
Javaみたいなことができるの?
538デフォルトの名無しさん:04/11/24 01:03:13
> CとC++のどちらでも構いません。よろしくお願いします。

これは簡単そうだ。オレが先日学校の講義でやった宿題を
ちょっと改造してみた。

★line.h
typedef struct line_t {
  struct line_t *prev;
  struct line_t *next;
  int size;
  char *buf;
} LINE;

void delete_all_lines(void);
LINE *add_line(LINE *, char *);
LINE *del_line(LINE *);

extern LINE list;
539デフォルトの名無しさん:04/11/24 01:04:40
★sub.c
#include <stdio.h>
#include <stdlib.h>
#include "list.h"

LINE list = {&list, &list, NULL};

void *strdup(void *);


LINE *add_line(LINE *c, char *buf)
{
  LINE *np;

  if ((np = (LINE *)malloc(sizeof(LINE))) == NULL)
    return NULL;
  if ((np->buf = strdup(buf)) == NULL) {
    free(np);
    return NULL;
  }
  np->prev = c;
  np->next = c->next;
  c->next->prev = np;
  c->next = np;
  c->size = strlen(buf);
  return np;
}
540デフォルトの名無しさん:04/11/24 01:05:15
void delete_all_lines(void)
{
  LINE *cur;

  for (cur = list.next; cur != &list; cur = del_line(cur))
    ;
}


LINE *del_line(LINE *c)
{
  LINE *p;

  p = c->next;
  c->next->prev = c->prev;
  c->prev->next = c->next;
  free(c->buf);
  free(c);
  return p;
}
541デフォルトの名無しさん:04/11/24 01:06:13
★main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "list.h"

#define LINE_SIZE (80 + 1 + 1)

static void inputlines(FILE *fp, LINE *);
static void outputlines(void);
static void usage(void);
static void cant(char *);
542デフォルトの名無しさん:04/11/24 01:06:43
main(int argc, char **argv)
{
  FILE *fp;
  LINE *cur;

  --argc;
  ++argv;

  cur = &list;
  if (argc == 0)
    inputlines(stdin, cur);
  else {
    while (argc--) {
      if ((fp = fopen(*argv, "r")) == NULL)
        cant(*argv);
      inputlines(fp, cur);
      (void)fclose(fp);
      argv++;
    }
  }
  outputlines();
  return EXIT_SUCCESS;
}
543デフォルトの名無しさん:04/11/24 01:14:10
static void inputlines(FILE *fp, LINE *cur)
{
  char buf[LINE_SIZE];

  while (fgets(buf, LINE_SIZE, fp) != NULL) {
    if ((cur = add_line(cur, buf)) == NULL) {
      fprintf(stderr, "can't alloc memory\n");
      delete_all_lines();
      exit(EXIT_FAILURE);
    }
  }
}


static void outputlines()
{
  LINE *p;

  for (p = list.next; p != &list; p = p->next)
    fputs(p->buf, stdout);
}
544デフォルトの名無しさん:04/11/24 01:22:03
static void usage(void)
{
  fprintf(stderr, "Usage: foo file [...]\n");
  exit(EXIT_SUCCESS);
}


static void cant(char *name)
{
  fprintf(stderr, "can't open %s\n", name);
  exit(EXIT_FAILURE);
}
545デフォルトの名無しさん:04/11/24 01:23:34
(1)「 取り扱える行数は実行時のコンピュータのメモリーのサイズのみに依存」は満たしている。
(2) 「 80 文字以上の行は先頭 80 文字だけの行として」の部分も自分でやること
(3) 肝腎のソーティングの部分は本人のたのしみのためにとってある。
(4) 同値の場合の並び順が保存されなければいけないのでqsortを使えないことに注意。
546デフォルトの名無しさん:04/11/24 01:24:18
長すぎ・・・。
別のところにアップしてリンク張ってくれよ。
547デフォルトの名無しさん:04/11/24 01:31:45
ついに答える半可通が出たか
548デフォルトの名無しさん:04/11/24 01:59:29
答えられるスキルのない547が暴れています。
549デフォルトの名無しさん:04/11/24 02:38:27
この質問者には、ソーティング部分はむりっぽい。
ヒントってことで。
ソーティングは基本的に要素の
(1) 比較

(2) 交換
ができればあとはアルゴリズム

さて、このソースの場合の2つの要素(行)の「交換」は誰かかけるか?
550デフォルトの名無しさん:04/11/24 02:39:32

ここの連中のレベルみて、それが無理だということぐらい想像できんのか?
551デフォルトの名無しさん:04/11/24 04:30:11
>>550
じゃ、君やってみてよ。たのんだよー
552デフォルトの名無しさん:04/11/24 04:44:40
>>546
> 長すぎ・・・。
int main(void)
{
  int i = 0, j, k, c, size = 0;
  char buf[82], **lines = NULL;

  while (fgets(buf, sizeof buf, stdin))
    if (buf[0] != '\n') {
      if (i == size && (lines = realloc(lines, size += 1024)) == NULL)
        exit(1);
      if (buf[strlen(buf) - 1] != '\n') {
        while ((c = getchar()) != '\n' && c != EOF)
          ;
        if (c == EOF) break;
      }
      lines[i] = strdup(buf);
      lines[i++][strlen(buf) - 1] = 0;
    }

  for (j = 1; j <= 80; j++)
    for (k = 0; k < i; k++)
      if (lines[k] && strlen(lines[k]) == j) {
        puts(lines[k]);
        free(lines[k]);
        lines[k] = NULL;
      }
  free(lines);
  return 0;
}
553デフォルトの名無しさん:04/11/24 05:06:03
修正

>      if (i == size && (lines = realloc(lines, size += 1024)) == NULL)

size += 1024 を (size += 1024) * sizeof(int*) に

>      lines[i] = strdup(buf);
>      lines[i++][strlen(buf) - 1] = 0;


>      if (buf[strlen(buf) - 1] != '\n') {
の上に
554デフォルトの名無しさん:04/11/24 05:12:18
修正の修正

> size += 1024 を (size += 1024) * sizeof(int*) に

sizeof(int*) を sizeof(char*) に。orz
555デフォルトの名無しさん:04/11/24 08:15:29
strcatについて質問なんですけど、
下のように書いてコンパイルして実行するとセグメンテーション違反と言われるのですが
どこをどう直せばセグメンテーション違反が無くなるでしょうか。

#include <string.h>
#include <stdio.h>
int main(void){
char *a = "hello";
char *b = "bye";
strcat(a,b);
}


また次のように書いてコンパイルし
./a.out hoge huga と実行すると
hogehugauga と表示されるのですが、hugahuga じゃなくて hugauga なのはなぜなんでしょうか。

#include <string.h>
#include <stdio.h>
int main(int argc,char *argv[]){
char *a ;
char *b ;
a = argv[1];
b = argv[2];
strcat(a,b);
printf(a);
printf(b);
printf("\n");
}
556デフォルトの名無しさん:04/11/24 09:18:25
"hello"の領域はどこに確保されている?
あまりそういうこと考えたことない?
557デフォルトの名無しさん:04/11/24 09:21:58
reallocで「連続した」領域を確保しなおすのでは、
「まだメモリーはいっぱいあまってるのに、連続したそんな大きいかたまりはない」場合に
とれなくなるので、だめ。
558555:04/11/24 09:55:20
>>556
>"hello"の領域はどこに確保されている?
えーと、aの示してるアドレスのところに確保されているんだと考えてます。
>あまりそういうこと考えたことない?
はい。恥ずかしいですが正直なところ聞かれるまでは考えてませんでした。

そこでmalloc()で明示的に領域を確保して以下のように書き直してみました。
これだと意図しているように動くのですが、
前のもののどこがいけなかったのかはわからないです。
よろしければもう少し教えていただけないでしょうか。

#include <string.h>
#include <stdio.h>
int main(int argc,char *argv[]){
char *a;
char *b;
int c;
b= argv[1];
c =100* sizeof(char);
a = (char *)malloc(c);
a[0] = 'a';
strcat(a,b);
strcat(a,b);
printf(a);
printf(b);
printf("\n");
}
559デフォルトの名無しさん:04/11/24 10:37:12
> > "hello"の領域はどこに確保されている?
> えーと、aの示してるアドレスのところに確保されているんだと考えてます。

質問のしかたが悪かったかな?
そのaの指している"hello"が入っている場所は、どのへんにあって、
そもそもそこは書けるの? ROMだったらそうるわけ? と、そういうことを
考えてみましょうということです。
560デフォルトの名無しさん:04/11/24 10:39:24
> 明示的に

そういう日本語はありません。翻訳がヘタなひとが逐語訳ように捏造した言葉ですね。

> そこでmalloc()で

わざわざmallocしなくてもよいです。

char a[] = "hello"; に変えてみたら?
561デフォルトの名無しさん:04/11/24 10:59:12
> hugahuga じゃなくて hugauga なのはなぜ

strcatしてるわけでしょ? 後ろにくっつけてるわけ。
「hoge」の入ってた領域の「e」の後ろには何がはいってる? \0だよね。
じゃあその後ろには何がある?

あんた想像力なさすぎ。

図でも書け。
562デフォルトの名無しさん:04/11/24 11:01:16
このあたりは「技術評論社」の「作ってわかるCプログラミング」が説明を得意として
いるあたりですね。あの本で修得したひとは、ぜったいこんな間抜けな質問はしない。

このあたりをわかっていない以上、疑問をもつこと質問をすることはよいことではあるが、
(わかったつもりで疑問におもわないよりは)、
「わかったつもりにさせる」本で、わかったつもりになっているよりは
あなたはまだましだと言えるでしょう。
だったら、もうすこしましな「読めばちゃんとわかる本」でも読んでみたら?
563デフォルトの名無しさん:04/11/24 11:06:04
voidもどきまたキター( -д-) 、ペッ
564デフォルトの名無しさん:04/11/24 11:10:49
こわがりすぎきたー
565デフォルトの名無しさん:04/11/24 11:16:21
>>560
この場合に、「char a[] = "hello";」では駄目だろ。
作ってわかるCプログラミングではそういう説明してるの?
566デフォルトの名無しさん:04/11/24 12:11:21
まあ初心者なら、"hello" の領域がどこにあって
後ろに何があるか、そこは読み書き自由な場所か
考える必要性すら感じないだろうな。
そんな失敗を重ねて、俺たちはレベルをうpするんだ。

さくらたんのエロ画像うpきぼんぬ。
567デフォルトの名無しさん:04/11/24 12:14:51
「はじめてのC」って本はだめですか?
568デフォルトの名無しさん:04/11/24 12:16:52
char *a = "hello     ";
char a[] = "hello     ";
569デフォルトの名無しさん:04/11/24 12:17:42
訂正
char *a = "hello\0 ";
char a[] = "hello\0 ";
570デフォルトの名無しさん:04/11/24 12:18:30
ぐぉスペース無くなってる
char *a = "hello\0    ";
char a[] = "hello\0    ";
571デフォルトの名無しさん:04/11/24 12:18:47
半角池
572デフォルトの名無しさん:04/11/24 12:18:57
>char *a = "hello\0 "; 
小細工してもコレは駄目だっつーの
573デフォルトの名無しさん:04/11/24 12:19:06
char a[67] = "hello";
574デフォルトの名無しさん:04/11/24 12:22:26
>char *a = "hello\0    ";

この場合constだから書き換えようとするとセグメンテーションフォールト
575デフォルトの名無しさん:04/11/24 12:23:29
Macで使えないじゃん
576デフォルトの名無しさん:04/11/24 12:24:08
未定義じゃないかね
577デフォルトの名無しさん:04/11/24 12:31:29
そう。未定義。undefined。鼻から悪魔が出てきても、ハードディスクを
フォーマットされても文句は言えないのだよ。
578デフォルトの名無しさん:04/11/24 12:35:26
オーエー
579デフォルトの名無しさん:04/11/24 13:27:58
while ((c = getchar()) != EOF){
putchar(c);
}
このループが終わらないのは何故ですか?
終わらせる方法も良かったら教えてください。
580デフォルトの名無しさん:04/11/24 13:29:57
>>579
cをchar型で定義してるんじゃないか?intにしろ。
理由はEOFはint型でないと表せないから。
581デフォルトの名無しさん:04/11/24 13:45:09
>>580
すいません。
宣言部分が抜けていました。
int型でやっているのですが、終わりません。

文字列を入力すると、EOFが出るまでputchar(c)を繰り返していると思っているのですが。
文字列を出力しきっても終わりません。
582デフォルトの名無しさん:04/11/24 13:46:56
入力側がEOFコードを入力してないんだろ。
583デフォルトの名無しさん:04/11/24 14:03:40
EOFコードって入力できるの?
-1?
584デフォルトの名無しさん:04/11/24 14:05:29
WindowsではCTRL+ZがEOF
585デフォルトの名無しさん:04/11/24 14:37:10
UNIX、LinuxはCTRL+D
586デフォルトの名無しさん:04/11/24 20:04:26
>>560
>> 明示的に
>そういう日本語はありません。翻訳がヘタなひとが逐語訳ように捏造した言葉ですね。

むむ。じゃ、explicitってなんて訳せばいい?
587デフォルトの名無しさん:04/11/24 20:14:45
588デフォルトの名無しさん:04/11/24 20:24:28
>>587
ふんふん。
じゃ"You have to explicitly specify the type of data."はどう訳す?
589デフォルトの名無しさん:04/11/24 20:26:34
>>587
ふつー「明示的に」だ。>>560は素人
590デフォルトの名無しさん:04/11/24 20:44:27
>>564
違うよ、うざがりすぎだよ
591デフォルトの名無しさん:04/11/24 20:45:32
はっきりとデータの種類を指定しなければなりません。
明白にデータの種類を指定しなければなりません。

明示的にデータの種類を指定しなければなりません。
592デフォルトの名無しさん:04/11/24 20:50:16
ちょっと前から明示的にが日本語じゃないって必死に主張するバカが一人居るんだよ。
放置してやれよ。
593デフォルトの名無しさん:04/11/24 20:52:05
594デフォルトの名無しさん:04/11/24 20:55:02
explicit /ɪksplísɪt, eks-/
━ 【形】
T 〈陳述など〉明白な, はっきりした, 明示的な (⇔implicit).

New College English-Japanese Dictionary, 6th edition (C) Kenkyusha Ltd. 1967,1994,1998
595デフォルトの名無しさん:04/11/24 20:59:11
捏造だと思ったら本当にBookshelfで出た
596デフォルトの名無しさん:04/11/24 21:01:06
597デフォルトの名無しさん:04/11/24 21:04:04
オラ、出てこい! >>560
598デフォルトの名無しさん:04/11/24 21:41:52
ジーニアスもリーダーズも「明示的に/な」だな。
「明示的」でググると50万件以上ヒットする。1ページ目はほとんどソフトウェア関連のページがヒットしてる。
誰が最初に訳したのか知らないが、そのときに無理やり作った造語だったとしても、
普通に使われてるのは明らか。
599デフォルトの名無しさん:04/11/24 21:55:00
「捏造」だからいけないとは言わないが、
英和辞典を根拠に「日本語として定着している」と主張するのも
当たってないような気がする。
600デフォルトの名無しさん:04/11/24 21:56:04
暗黙←→明示
601デフォルトの名無しさん:04/11/24 21:57:13
>>599
だな

参照すべきリファレンスがちゃんとあるのにな
602デフォルトの名無しさん:04/11/24 22:01:00
独立、演説も福沢諭吉が作った造語だし。
603デフォルトの名無しさん:04/11/24 22:03:17
専門家でもない一個人が主張する「よりは」、
英和であろうと辞書に載ってるということの方が、
説得力があると思うんだが。
604専門家はうさんくさい:04/11/24 22:04:27
専門家はうさんくさい
605デフォルトの名無しさん:04/11/24 22:07:57
つか、この手の話題の場合、人口に膾炙しているかどうかが問題。
「明示的に」はしているといえよう。
606デフォルトの名無しさん:04/11/24 22:11:20
明白はすでにそうある状態のことだから全然意味が違う
607デフォルトの名無しさん:04/11/24 22:11:48
>>603

601 だが、言ってる意味わかってねえな
おまえら触ったこともなさそうに見えてきた
そんなんで PG 名乗ってたらプゲラだぜまったく
608デフォルトの名無しさん:04/11/24 22:13:04
PGはPuGeraの略だろ。
609デフォルトの名無しさん:04/11/24 22:17:11
〜的
(接尾)
(1)名詞およびそれに準ずる語に付いて、形容動詞の語幹をつくる。
(ア)主に物や人を表す名詞に付いて、それそのものではないが、それに似た性質をもっていることを表す。…のよう。…ふう。
「百科事典―な知識」「スーパーマン―な働き」「母親―な存在」
(イ)主に抽象的な事柄を表す漢語に付いて、その状態にあることを表す。
「印象―な光景」「積極―に行動する」「定期―な検診」
(ウ)物事の分野・方面などを表す漢語に付いて、その観点や側面から見て、という意を表す。上(じよう)。
「学問―に間違っている」「事務―な配慮」
〔(ア)〜(イ)は、もと中国、宋・元の俗語で「の」の意味を表す助辞であったものを、明治以降、英語の -tic を有する形容詞の訳語に用いたことに始まる〕

三省堂提供「大辞林 第二版」より
610デフォルトの名無しさん:04/11/24 22:18:02
つーかおまいら的にはどうよ?この流れは。
611デフォルトの名無しさん:04/11/24 22:18:11
明示的 暗黙 でぐぐるといい
612デフォルトの名無しさん:04/11/24 22:22:16
>>610
鬱陶しい.
613デフォルトの名無しさん:04/11/24 22:31:13
てか、プログラミング関連の文章読んでたら、わかりそうなもんだが
614デフォルトの名無しさん:04/11/24 22:32:00
っていうか今は平成なわけだが
615デフォルトの名無しさん:04/11/24 23:27:52
質問です。
高橋しん氏の 「キミのカケラ」 ですが、2 巻だけ Amazon で売ってません。
何でですか?
616デフォルトの名無しさん:04/11/24 23:50:09
Amazonの気分です(^_^;
617デフォルトの名無しさん:04/11/25 01:26:53
明示的 <-> 暗示的 だろ。
618デフォルトの名無しさん:04/11/25 01:31:34
もうそれはいいから。
619デフォルトの名無しさん:04/11/25 01:31:38
> WindowsではCTRL+ZがEOF

これは大うそ。
Unixも^DもEOFではない。
EOFっていうコードが送られるのではなく、
もう入力がなくなるとgetcharが EOFを返すだけだ。
だから、そのあと何度呼んでもEOFを返す。そのたびにそのコードがきているわけではない。

^Dを打つと、その直前で標準入力をおしまいにする、というだけの操作。
EOFは、いちばん後ろを超えてさらに読もうとしたときに返ってくる値、というだけ。

同様に、ファイルから読むときも、ファイルの後ろにEOFがくっついているわけではない。
10バイトのファイルを先頭から呼んで、10回めに最後の文字が返り、11回め以降がEOFが
返るというだけのことです。

ウソをおしえちゃいけない。
620デフォルトの名無しさん:04/11/25 01:32:54
「明示する」はある。
「暗示する」、「暗示的に」はある。

「明示的」は、便宜的逐語訳用のことばだな。
関係代名詞を「〜するところの」と訳すようなもの > 便宜的
621デフォルトの名無しさん:04/11/25 01:34:54
> それどころかデリファレンスでむしろ遅くなる。

これウソ。

やーい > しったかぶり
622デフォルトの名無しさん:04/11/25 01:36:25
> 通常の配列は領域をスタックに確保するから

> 普通に配列を定義しようとするとスタック領域というメモリ領域にそれを作

これらもウソ。
ローカル変数である配列だけだ > スタックにとられる可能性があるもの。
そもそもローカル変数をスタックに置く処理系も最近減ってきてる。
623デフォルトの名無しさん:04/11/25 01:37:12
> 0から10.0まで積分計算をし、積分結果の最後の値を返す関数eulerがあるのですが、
> 途中の計算過程も出力するようにするにはどうすればいいのですか?

だれに聞いているの? オイラ?
624デフォルトの名無しさん:04/11/25 01:39:33
>>622
ほー、そうなんだ。知らなかった。
625デフォルトの名無しさん:04/11/25 01:40:26
>同様に、ファイルから読むときも、ファイルの後ろにEOFがくっついているわけではない。
>10バイトのファイルを先頭から呼んで、10回めに最後の文字が返り、11回め以降がEOFが
>返るというだけのことです。

ウソをおしえちゃいけない。
626デフォルトの名無しさん:04/11/25 01:41:39
誤爆なんだろうけど、参考になった。
627デフォルトの名無しさん:04/11/25 01:43:03
DOSってEOFがなかったっけ?
628デフォルトの名無しさん:04/11/25 01:43:45
>>622
GCCとかVCもスタックにおかなくなったの?
629デフォルトの名無しさん:04/11/25 01:44:25
おとといの馬鹿のことか?
630デフォルトの名無しさん:04/11/25 01:48:42
それどころか、CP/Mは最終レコードの残りは全てEOF(というか0x1a)で埋められる。
631デフォルトの名無しさん:04/11/25 01:50:22
>だから、そのあと何度呼んでもEOFを返す。

ウソ教えちゃいけない
632デフォルトの名無しさん:04/11/25 01:51:16
テキストモードだと0x1Aだな<終端
633デフォルトの名無しさん:04/11/25 01:51:28
> それどころか、CP/Mは最終レコードの残りは全てEOF(というか0x1a)で埋められる。

これもうそ。テキストファイルだけだ。
634デフォルトの名無しさん:04/11/25 01:52:06
> GCCとかVCもスタックにおかなくなったの?

gccでもいろいろ。うちにあるマシン用のgccはスタックに置かない。
635デフォルトの名無しさん:04/11/25 01:52:37
> > だから、そのあと何度呼んでもEOFを返す。
> ウソ教えちゃいけない

いいえ。規格でそう決まっています。
636デフォルトの名無しさん:04/11/25 01:53:07
> ほー、そうなんだ。知らなかった。

常識です。
637デフォルトの名無しさん:04/11/25 01:55:04
> DOSってEOFがなかったっけ?

ありません。CP/Mのファイルも扱うedlin.exeが^Zをつけるのを
「MS-DOSの仕様だ」と勘違いした日本のメイカーでそれをつけているところが3社ほど
あった程度です。
でも、それをmscのgetchar関数で読んだら、EOFの前に0x1aが返ります。
(あるヴァージョン以降ではテキストモードでさえ!)
638デフォルトの名無しさん:04/11/25 02:01:20
> テキストモードだと0x1Aだな<終端

それもウソ。
「ファイルサイズ」をディレクトリー中にもたずに、ブロックサイズしかもっていなかった
CP/Mの時代にそういうのをつかってテキストファイルの末尾を検知していただけ。
DOSやWindowsにはそういうものは存在しない。

mscの古いヴァージョンや一部のバージョンでは、テキストモードで^Zを無視する場合も
あるが、それもファイルの末尾にあった場合だけの場合と、途中にあった場合に
それ以降を読まなくなってしまう場合の2通りが存在する。
639デフォルトの名無しさん:04/11/25 02:03:21
ファイルの末尾がWindowsで^Zだなんてウソをしったかぶりするやつがいるもんだから、
初心者がだまされて、ファイル末尾にEOFとか^Zが入っていると思い込むのだ。
640デフォルトの名無しさん:04/11/25 02:04:16
>>633
嘘じゃないよん。バイナリファイルではそもそも残りが出ないから。
641デフォルトの名無しさん:04/11/25 02:07:56
DOSやWindowsに存在するかしないかというんじゃなくて
テキストモードでは 0x1A (もしくは物理的終端)を
ファイルの終端とみなすって話だ。
642デフォルトの名無しさん:04/11/25 08:58:46
たしかに英和辞典でちょっと変な日本語が出て来て、
国語辞典で調べてみると無い場合ってのも希にあるよね。
643デフォルトの名無しさん:04/11/25 09:02:16
> 嘘じゃないよん。バイナリファイルではそもそも残りが出ないから。

いーや。それもウソ。バイナリーファイルでも半端分はあるわけ。
ただ、おおざっぱにおわっておけばいいだけ。テキストファイルと
ちがって、最終ブロック残りには「ゴミ」が入ってる。

それにCP/Mの場合、ヴァージョンにもよるが、テキストファイルで
最終ブロックの半端分は^Zで「うまっている」わけではなく、
最終位置の後ろが1つだけ「^Z]がはいって、残りはゴミという場合もある。
644デフォルトの名無しさん:04/11/25 09:04:08
> テキストモードでは 0x1A (もしくは物理的終端)を
> ファイルの終端とみなすって話だ。

ああ、それも大うそ。WindowsやMS-DOSにテキストモードってのが存在するわけではなく、
それら用の各種Cコンパイラーの中にそういうものがあるだけ。
しかもメイカーごとにテキストモードの定義はかなりばらばらでいいかげん。
しかも、その8割り以上は0x1aを扱わない。(0x0d 0x0aの変換だけ)

645デフォルトの名無しさん:04/11/25 09:29:46
>Cの全ての型のサポート
>C99 で、C++にない多くの型が追加されました。
http://www.kmonos.net/alang/d/comparison.html#Ctypes

これ、たとえばどんなものがそうなのでしょうか?
646デフォルトの名無しさん:04/11/25 09:33:18
こんどはfjごっこかい?
647デフォルトの名無しさん:04/11/25 10:10:22
voidごっこが続いているだけだと思う
648デフォルトの名無しさん:04/11/25 10:11:33
なんか過去の議論が走馬灯のように・・・漏れら死ぬのかな・・・
649デフォルトの名無しさん:04/11/25 10:17:27
> こんどはfjごっこかい

そんなものはありません。
650デフォルトの名無しさん:04/11/25 10:18:28
C++にないといえば、複素数とか虚数やunsigned long long intとかlong doubleだな
651デフォルトの名無しさん:04/11/25 10:27:46
つまりCの圧勝ということですな
652デフォルトの名無しさん:04/11/25 10:30:43
おれがCをはじめたころにはvoidもなかった。
653デフォルトの名無しさん:04/11/25 10:59:44
(・∀・)
654デフォルトの名無しさん:04/11/25 11:28:44
古風なマシンでは
ファイルの終わりには EOF (End Of File)が返り
ソケットの終わりには EOT (End Of Terminal)が返り
ユーザーの終わりには EOU (End Of User)が返り
端末が爆発するという、ウソのような本当にあった怖い話。
655デフォルトの名無しさん:04/11/25 11:30:37
用語や説明はもちろん正確であるべきだけど
このスレ本題から外れた突込みで9割浪費されてるな。
656デフォルトの名無しさん:04/11/25 11:40:33
終端子症候群
657デフォルトの名無しさん:04/11/25 14:01:55
>>654
>ソケットの終わりには EOT (End Of Terminal)が返り
違うな。EOT はテープの終わりを示す銀色の部分だ。
658デフォルトの名無しさん:04/11/25 17:15:08
じゃあ、BOTはw
659デフォルトの名無しさん:04/11/25 18:19:53
bunch of time、時間のかかる作業のことだ
660デフォルトの名無しさん:04/11/25 19:37:25
すいません C言語を勉強し始めたばかりのものなのですが

main(argc, argv)
char **argv;
{
        int c, n;
        char *s;
        s = argv[1];
        while(c = *s++) {
                if(c<'0' || c>'9') {
                        printf("bad character\n");
                        exit(1);
                }
                n = n*10 + c - '0';
        }
        sleep(n);
}
のソースの意味がわかりません
if(c<'0' || c>'9') のところは数字以外を排除しているのはわかるのですが
その前の
while(c = *s++) とn = n*10 + c - '0';がわからないです
何をしているのでしょうか?
すいませんが解説していただけるとありがたいです
よろしくお願いします
661デフォルトの名無しさん:04/11/25 19:40:31
Cの勉強に参考とすべきソースじゃないと思うな。それ。
662デフォルトの名無しさん:04/11/25 19:45:35
>>660
・while(c = *s++) {
argv[1]から順次一文字ずつ取り出してcに格納。その値が0(文字列終端)ならループ終了。
例えば、引き数に'532'を渡したときに数値としての532を得るのが目的。
・n = n*10 + c - '0';
nの値を10倍して取り出した文字を数値化したものを加算。
例えば、nが53でcが'2'のとき、この計算の結果nが532になる。

尚、全体としては引き数で指定した数だけsleepするプログラムらしい。
例えばUnix系でこのプログラムがsleepという実行モジュール名なら、
sleep 532とすれば532秒間sleepしつづける。
663デフォルトの名無しさん:04/11/25 19:49:29
        int c, n=0;にしとけよ
664デフォルトの名無しさん:04/11/25 19:54:12
馬の耳に念仏だろう
665660:04/11/25 20:34:47
>>662
ありがとうございます
でも どうして
c=*s++で一文字づつコピーされるのでしょうか?
sのポインタを渡したらsのアドレスの中身(数字)が渡されて
++で次のアドレスに移動・・・  と言う感じでいいのでしょうか?
また n = n*10 + c - '0'  の意味はわかったのですが-'0'はどいう意味でしょうか??
聞いてばかりですいませんがよろしくお願いいたします

>>661
身近になるソースからと思いやり始めました
お手数をおかけして申し訳ありません

>>663
すいません 写し間違いでした
ありがとうございます
666デフォルトの名無しさん:04/11/25 20:39:05
しかし古臭いソースだな
667デフォルトの名無しさん:04/11/25 20:39:46
c=*s++はc=sしてからs++するって意味。
c - '0'は文字を数値に変換するやり方
'0' - '0' = 0
'3' - '0' = 3
(c - 'a') + 'A' で小文字を大文字に変換
668デフォルトの名無しさん:04/11/25 20:45:11
>>667
すっげ
手品を見た気分
669デフォルトの名無しさん:04/11/25 20:52:54
>>667ってあってるのか?
俺はどう説明したらいいかわからんから
言うのはやめとくが
670デフォルトの名無しさん:04/11/25 20:55:09
あってるけど、常識
671デフォルトの名無しさん:04/11/25 21:00:08
いや >>660にたいしての答えとしてあってるかだろ
672デフォルトの名無しさん:04/11/25 21:05:55
>c=*s++はc=sしてからs++するって意味。
*←これ何のためについてるの?
673デフォルトの名無しさん:04/11/25 21:07:06
>>667
668にアフォにされてるの気が付いてる?
674660:04/11/25 21:26:57
>>667
はい 1回目は++をしないのはわかっています
++sなら 1回目から++をしてから渡すという感じでいいのですよね?
私が わからないのはどうして1文字だけ渡すかと言うことです
聞いている側なのに 変な聞き方ですいません

私も 今実験してたのですが
-'0'をしなかったら 1桁の数字を渡されたときに 48大きい数がでることがわかりました
このために -'0'を してるんですね
これは よくわからないのですが
c=*sで渡したのでメモリ内のアスキーコードが渡されたということでしょうか?
そのために(c<'0' || c>'9')等 アスキーコードで比較を行っているということでしょうか?
なので アスキーコードから数字を取り出すために'0'(48)を引いているということでしょうか?
まだあまり ポインタなどがわからないので  わけがわからないかもしれませんが
間違っていたりすれば 補完していただけるとありがたいです
すいませんがよろしくお願いします
675デフォルトの名無しさん:04/11/25 21:32:04
コンパイルしたら、再宣言の型が一致しないとでましたが、どういうことが考えられるでしょうか。
676デフォルトの名無しさん:04/11/25 21:36:16
>>675 コードみせて。
677デフォルトの名無しさん:04/11/25 21:59:48
678デフォルトの名無しさん:04/11/25 22:20:08
便乗質問なんですけど
>>660
char **argv;
とは、どういう意味なのでしょうか?
679デフォルトの名無しさん:04/11/25 22:21:45
>>678 文字列の配列。
680デフォルトの名無しさん:04/11/25 22:24:07
むかしはint argc;抜かしても良かった記憶があるなぁ。
681デフォルトの名無しさん:04/11/25 22:24:40
>>678
char型へのポインタのポインタ。
あそこに書いてるのは書いた人が古い人だったからでしょう。
昔は引数の型ああやって書いてたらしい。
682678:04/11/25 22:28:28
ぽいんたのぽいんた?
全く意味がわかりません
簡単に説明していただけないでしょうか
683デフォルトの名無しさん:04/11/25 22:33:35
hon yome
684デフォルトの名無しさん:04/11/25 22:34:02
>>682
俺はやだ
説明するのに図がいるから

誰かおkの人いる?
685デフォルトの名無しさん:04/11/25 22:34:11
686デフォルトの名無しさん:04/11/25 22:43:30
ポインタとアスキーコードは無関係
あと n = n*10 + (c & 0x0F)
687デフォルトの名無しさん:04/11/25 22:45:22
CのソースをHTMLにしたいんですが、
どういうツールがデファクトスタンダードでしょう?
今はドキシジェン(Doxygen)で生成したやつから
エディタで切り出しているんですけど、タグの切り出し作業がめんどくさくて。
688デフォルトの名無しさん:04/11/25 22:46:27
>>687
まちがっていたらごめん。
enscript というツールで色つきの HTML にできたと思う。
ViewCVS なんかでも使われていた記憶がある。
689デフォルトの名無しさん:04/11/25 22:48:55
>>687
xmlタグ
690678:04/11/25 22:49:04
全く意味がわかりません
俺には プログラムは無理みたいです・・
691デフォルトの名無しさん:04/11/25 22:49:08
687です。実行環境は Windows です。
692デフォルトの名無しさん:04/11/25 22:51:51
俺もなんでchar **argv;で最初の1桁がいくかわからん
693デフォルトの名無しさん:04/11/25 22:52:10
>>691
enscript は Cygwin のインストーラからインストールできるぞ。
694デフォルトの名無しさん:04/11/25 22:52:40
<xmp>
main()
{
puts("sine");
}
695692:04/11/25 22:53:02
コピーするところミスった
 while(c = *s++) {

どうしたら 最初の一桁がコピーされるん?
696デフォルトの名無しさん:04/11/25 22:53:03
>>691
GNU global とかかな?

>>690
>>685の一番最初の検索結果も読んだ?
697デフォルトの名無しさん:04/11/25 22:53:24
<xmp>
main()
{
puts("sinimasu");
}
</xmp>

すまん、酒のみすぎたらしい
吐いてきます
698デフォルトの名無しさん:04/11/25 22:53:29
>>688
>>689
おっと、短時間でレスがついていた、どうも情報ありがとうございます。
ただ、"XMLタグ"ってどういう意味なんでしょうか?
想像力をビンビンにはたらかせても、わからないっす.....
なんかそういう機能がDOMとかSAXにあるんですか??
699デフォルトの名無しさん:04/11/25 22:54:30
別にchar *argv[]でもいいんじゃないのか
わかりやすいからこっち使ってる
700デフォルトの名無しさん:04/11/25 22:58:00
>>693
>>696
レスどうも、ありがとうございます。調べてみます。
このスレッドって、伸びるのがやたら速いですね。
と、こういっているうちに、またレスがついているのかも、
なんかちょっとうれしぃなぁ。
701デフォルトの名無しさん:04/11/25 22:59:22
銀行のシステムを作っているのですが、
doubleの中にお金が入っていて、小数点を含む場合、それを切り捨てるにはどうしたらいいでしょうか?

double a = 10.123
となっているのを、
a = 10
としたい。

何か便利な関数はないでしょうか?
702デフォルトの名無しさん:04/11/25 23:00:01
>>701
intにキャストする
703デフォルトの名無しさん:04/11/25 23:00:26
truncじゃねぇの?
704デフォルトの名無しさん:04/11/25 23:01:11
floor でしょ。
705デフォルトの名無しさん:04/11/25 23:01:49
あ、しまった、普通に整数型にキャストじゃねぇの?
706デフォルトの名無しさん:04/11/25 23:03:31
>>701
double 使っちゃだめ
誤差の出方が 10 進と違うのを誰も理解しない
707デフォルトの名無しさん:04/11/25 23:05:22
> 銀行のシステムを作っているのですが、

・・・
708デフォルトの名無しさん:04/11/25 23:05:32
>>706
浮動小数は金融計算には使わないのは常識だな。
でも何使う?
709デフォルトの名無しさん:04/11/25 23:05:46
>>706  
くわしく
710デフォルトの名無しさん:04/11/25 23:06:44
2進で表せない数字(0.1)とかだろ
711デフォルトの名無しさん:04/11/25 23:08:49
お金が入ってるのに小数点があるってどういうとき?
ドルとかに変換しないといけないから?
712デフォルトの名無しさん:04/11/25 23:08:54
こんにちは。藤●診断室です。
あ〜あ、キャストなんかする香具師に医療システムなんか
作られたりしたら恐ろしい。
全く分かってないんだな。俺をリスペクトしろよ。
713デフォルトの名無しさん:04/11/25 23:12:17
>>697
googleかけたら、意図がわかったよ。---> XMP
お体に気をつけて。
714デフォルトの名無しさん:04/11/25 23:15:08
>>712
わかった、リスペクトする。
でもおれっちキャストしまくってるよ、
仕事は医療システムだよ、投薬管理だよ。
錠剤じゃないよ、液体だよ。
715デフォルトの名無しさん:04/11/25 23:17:15
>>711
税率かけると、小数点になりますよー
716デフォルトの名無しさん:04/11/25 23:33:35
>>704
ありがとうございま!
717デフォルトの名無しさん:04/11/25 23:38:22
(・∀・)
718デフォルトの名無しさん:04/11/25 23:42:28
>>706
>double 使っちゃだめ
>誤差の出方が 10 進と違うのを誰も理解しない
ぜひ、詳しく!
719デフォルトの名無しさん:04/11/25 23:51:02
丸め誤差
720デフォルトの名無しさん:04/11/25 23:53:57
>>718
double x = 0.0;
double y = 0.1;
int i;
for (i = 0; i < 10; ++i)
    y += x;
printf("y = %lf\n", y);
721デフォルトの名無しさん:04/11/25 23:58:41
すいません 検索するとこのソースにめぐり合い実行して見たのですが
main( int argc, char *argv[], char *envp[] )
{
    int i ;
        printf("&argc == 0x%x, argc == %d\n", &argc, argc );
        printf("&argv == 0x%x, argv == 0x%x\n",&argv, argv );
        for( i=0 ; argv[i] ; i++ )
            printf("argv[%d]==0x%x, \"%s\"\n",i,argv[i],argv[i] );
}
実行すると
$ ./a.exe who am i
&argc == 0x22f070, argc == 4
&argv == 0x22f074, argv == 0x61782cd8
argv[0]==0x61782d20, "./a"
argv[1]==0x61782d38, "who"
argv[2]==0x61782d50, "am"
argv[3]==0x61782d68, "i"
になります
どうして 0x12, 0x18, 0x12, 0x18と順番になるのでしょうか?
すいませんが教えてください
722デフォルトの名無しさん:04/11/26 00:00:15
めぐり合い実行
723721:04/11/26 00:03:55
>>722
そのサイトの実行結果も
% ./arg-print  
&argc == 0xbfffe7c0, argc == 1
&argv == 0xbfffe7c4, argv == 0xbfffe824
argv[0]==0xbffffa81, "./arg-print"
% ./arg-print who am i
&argc == 0xbfffe740, argc == 4
&argv == 0xbfffe744, argv == 0xbfffe7a4
argv[0]==0xbffffa78, "./arg-print"
argv[1]==0xbffffa84, "who"
argv[2]==0xbffffa88, "am"
argv[3]==0xbffffa8b, "i"
と なっています
すいませんがよろしくおねがいします
724デフォルトの名無しさん:04/11/26 00:04:16
gdb めぐりあい宇宙
725デフォルトの名無しさん:04/11/26 00:05:55
 き に す る な
726デフォルトの名無しさん:04/11/26 00:09:02
>>721
>どうして 0x12, 0x18, 0x12, 0x18と順番になるのでしょうか?
どこが?
0x12ってどこのこと?
#まさか、0x61782d50 - 0x61782d38のこと言ってないよなぁ。それなら素直に0x18だもんなぁ…
727デフォルトの名無しさん:04/11/26 00:15:26
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define HAIRETU 40000
#define BEFFILE "data1"
#define AFTFILE "jiko2"
FILE *fp,*fp1;
int main(){
int iy,n;
static float g[HAIRETU];
float d[8];
float B;
float R;
if(NULL==(fp=fopen(BEFFILE,"r")))
exit(0);
for(iy=0 ; iy<HAIRETU ; ++iy){
g[iy]=fgetc(fp);}
fclose(fp);
if( (fp1=fopen(AFTFILE, "w") ) == NULL){
exit(1);}
for(n=0 ; n>7 ; ++n){{{
B +=g[n+2]*g[n];
}}
R=1/8*B;
fprintf(fp1,"%e\n",R);
B=0;}
fclose(fp1);}

このプログラムをビルドするとg[iy]=fgetc(fp)の部分で
warning C4244: '=' : 'int ' から 'float ' に変換しました。データが失われているかもしれません。
と表示され、実行して書き込んだファイルを見ると何も書き込まれていません。
どうすれば正しく書き込めるでしょうか。
728デフォルトの名無しさん:04/11/26 00:20:59
float d[8];
は脳内消去で・・・
729デフォルトの名無しさん:04/11/26 00:22:51
>>727
BEFFILEから一文字ずつ配列gに取り込んで何がしたいの?
数値を読み込みたいならfscanf()なりfgets()+sscanf()なり、適切に変換すること。

nのループの終了条件が n > 7 なのでループが一回も実行されない点に注意。
それと、ブロックはきちんとインデントをつけて書く習慣をつけておきましょう。
#エディタ任せでもいいけどね。
730デフォルトの名無しさん:04/11/26 00:23:36
>>728
突っ込みどころ多すぎてそれどころじゃない罠
731デフォルトの名無しさん:04/11/26 00:48:33
どの参考書にもmalloc()を使ったらfree()で開放しましょうって書いてあるけど、
開放しなかったらどうなるんですか?
やってみても別に問題は無いみたいですけど。
732デフォルトの名無しさん:04/11/26 00:49:47
>>731
過去スレ読め
733デフォルトの名無しさん:04/11/26 00:53:28
>>731
メモリリークといってメモリが開放されない場合があります。
ただし、現在はヒープごとメモリを開放されることが多いです。
つまり、freeしなくてもプロセスを終了するときに開放されることが多いということです。
逆にfreeしないとメモリリークを起こす環境の方が少ないです。



釣りなら止めて下さい
734デフォルトの名無しさん:04/11/26 01:04:21
>やってみても別に問題は無いみたいですけど。

それがあんたの判断基準か (プ
735デフォルトの名無しさん:04/11/26 01:30:55
>>660のソースについてなんですが
          char *s;
          s = argv[1];
は何をしているのでしょうか?
これでsにはargv[1]のポインタが入るの?
でも その場合なんで &argv[1]ってしなくていいんですか?
736デフォルトの名無しさん:04/11/26 01:39:10
にゅー くれらっぷー
737デフォルトの名無しさん:04/11/26 01:43:20
たとえばの話

アドレス(もしくは変数名)  値(もしくは文字列)
0xbfffaa00 (argv)        0xbfffaa08
0xbfffaa04           0xbfffaa28
0xbfffaa08           (argv[0]の内容)
0xbfffaa28           (argv[1]の内容)
s                0xbfffaa28
738735:04/11/26 01:50:12
>>737
私に言ってくれているのでしょうか??
すいませんがよくわかりません
説明していただけるとありがたいです
739737:04/11/26 01:56:07
この例だと、argv[1]の値は0xbfffaa28で、その値が
設定されているメモリのアドレスは0xbfffaa04。
その値の0xbfffaa28のアドレスには文字列が設定されている。
これがargv[1]が指している文字列。
だから、sに代入すべきなのは、argv[1]の値の0xbfffaa28
であって、&argv[1]はargv[1]のアドレスだから、0xbfffaa04に
なってしまう。ここには文字列などないので、これをsに
代入するとぐちゃぐちゃになります。ていうかコンパイル
エラーになる。
740735:04/11/26 02:01:39
>>739
ありがとうございます
頭がごちゃごちゃになってきました・・
すいませんが 今は寝て起きてから考えて見ようと思います
すいません ありがとうございました
741デフォルトの名無しさん:04/11/26 03:43:57
> 開放しなかったらどうなるんですか?

ぜったいしちゃだめ > 開放



(解放ならしてもいいが)
742デフォルトの名無しさん:04/11/26 05:02:44
うちのサーバは一般開放
743デフォルトの名無しさん:04/11/26 06:22:40
ど素人ですが、C言語でなにができるんですか?
744デフォルトの名無しさん:04/11/26 06:34:58
Rubyのインタープリタを書くこと。
745デフォルトの名無しさん:04/11/26 07:36:02
>>735
> char *s;
> s = argv[1];
>は何をしているのでしょうか?
>これでsにはargv[1]のポインタが入るの?
>でも その場合なんで &argv[1]ってしなくていいんですか?

sにはargv[1]が入る。決してargv[1]のポインタが入る訳ではない。
&argv[1]ってするとargv[1]のポインタが入ってしまうだろ?それに、そうしたくても char **s にしとかないと型不整合エラー。
746デフォルトの名無しさん:04/11/26 07:39:26
>>743
C++コンパイラの作成やJavaコンパイラの作成が出来る
747デフォルトの名無しさん:04/11/26 09:26:32
>>743
たぶん君の彼女をつくることは出来ない
748デフォルトの名無しさん:04/11/26 09:36:59
perlではコマンドの結果を
@list=`ls`
とやって受け取ることが出来ますが、Cではどうやったら出来ますか?
749デフォルトの名無しさん:04/11/26 09:39:16
fork と socket を使う
750デフォルトの名無しさん:04/11/26 09:57:23
>>748
一応ここは環境依存排除なので標準ではできないというのが答。
存在するなら、popen()を使うのがawk的でいいかと。
751748:04/11/26 11:07:52
>>749>>750
わかりました。UNIXプログミングについて勉強してみます。
ありがとうございます。
752 ◆ogaWFi0wUo :04/11/26 12:13:35
プログラム書いてると 頭痛くなるのは仕様ですか?
753デフォルトの名無しさん:04/11/26 13:39:39
>>752
あなたの脳みその仕様です
754デフォルトの名無しさん:04/11/26 14:49:01
>>752
PC から放射される電磁波が原因です。
プログラムはチラシの裏に書きましょう。
755デフォルトの名無しさん:04/11/26 15:23:18
C言語で彼女の作り方を教えてください。
756デフォルトの名無しさん:04/11/26 15:29:55
lover* make_lover() { return NULL; }
757デフォルトの名無しさん:04/11/26 16:31:33
if((kanojo=make_lover())==NULL){
fprintf(stderr, "彼女の作成に失敗しました。\n");
exit(99);
}
758デフォルトの名無しさん:04/11/26 19:25:06
>>756
make love する者
759デフォルトの名無しさん:04/11/26 23:27:51
>>758
意味変わっちゃってるね。
760 :04/11/27 14:55:19
初歩的な質問だと思いますが。
文字列の2進数と16進数のを表示するプログラム

void strdump(const char *s)

{

while(1){

int i;

printf("%c %x ",*s,(CHAR_BIT+3)/4,*s);

for(i = CHAR_BIT - 1 ; i>=0; i--)

putchar(((*s>>i) & 1U) ? '1' : '0');



putchar('\n');

if(*s++ == '\0')
break;

}
}
最初のprintf文の引数の  (CHAR_BIT + 3 )/4 , *s
とputcharの  putchar(((*s>>i) & 1U) ? '1' : '0');


が理解できないです。
出来たらどなたかご教授くだされ。
761sage:04/11/27 15:09:12
初歩的な質問だと思いますが。
文字列の2進数と16進数のを表示するプログラム

void strdump(const char *s)

{

while(1){

int i;

printf("%c %x ",*s,(CHAR_BIT+3)/4,*s);

for(i = CHAR_BIT - 1 ; i>=0; i--)

putchar(((*s>>i) & 1U) ? '1' : '0');



putchar('\n');

if(*s++ == '\0')
break;

}
}
最初のprintf文の引数の  (CHAR_BIT + 3 )/4 , *s
とputcharの  putchar(((*s>>i) & 1U) ? '1' : '0');


が理解できないです。
出来たらどなたかご教授くだされ。
762デフォルトの名無しさん:04/11/27 15:10:42
質問させていただきます
int, charの違いがいまいちわかりません
char型で20を取るのと、int型で20を取るのとでは何か変わるのでしょうか?
763デフォルトの名無しさん:04/11/27 15:11:23
質問はageとけ
764デフォルトの名無しさん:04/11/27 15:11:44
>printf("%c %x ",*s,(CHAR_BIT+3)/4,*s);

これオリジナルのまま? パラメータの数があってないんだけど


> (*s>>i) & 1U) ? '1' : '0'
愛があっておっ立ってるか、立ってたらチンコ、立ってないならマンコ
765モウモウ:04/11/27 15:11:57
>>762
何も変わりません。
766デフォルトの名無しさん:04/11/27 15:12:26
>762

20ならどっちでもおなじだ
767デフォルトの名無しさん:04/11/27 15:17:28
>>762
>>765-766の言う通りなんだけど、慣習的にintは数値を扱うため、charは文字を扱うために使われている。
768デフォルトの名無しさん:04/11/27 15:19:02
>慣習的にintは数値を扱うため

プ
だからgetchar()ではまるんだよw
769デフォルトの名無しさん:04/11/27 15:22:09
charは1バイト
intは2バイトや4バイト、環境による。
770デフォルトの名無しさん:04/11/27 15:22:14
char ってコンパイラによって signed であったり unsigned であったりするわけだけど、
移植性のあるコードを書くときはみなさんどうしていますか?
771762:04/11/27 15:23:26
20ならと言うことは
例えばcを入れた場合は変わるのでしょうか?
何度も質問してしまってすいません
772デフォルトの名無しさん:04/11/27 15:24:33
>char ってコンパイラによって signed であったり unsigned であったり

マジ?
char と unsigned char が同じなの? 信じらんねぇー
773モウモウ:04/11/27 15:25:03
>>771
char の場合、(chat が signed であれば) -128 〜 +127 の値しか入らない。
その範囲の値である限り、int でも同じってこと。
0x0C も 'c' もこの範囲にあるので int でも同じ。
774デフォルトの名無しさん:04/11/27 15:25:37
>例えばc

文字'c'のことか?それでも同じ
775デフォルトの名無しさん:04/11/27 15:26:13
>>772
LSI-Cはそれがデフォルトだな。
776モウモウ:04/11/27 15:27:24
>>775
ADS や RVCT もデフォルトだな。
777762:04/11/27 15:31:16
ありがとうございます
説明足らずですいませんでした
私が言ったのは  
char c='c';
等のことでした
この場合 cには'c'と言う文字ではなく
アスキーコードの0x63(99)が代入されるという考え方でいいのでしょうか?
778デフォルトの名無しさん:04/11/27 15:32:25
'c'という文字がアスキーコードの0x63(99)なんだが...
779モウモウ:04/11/27 15:33:35
>>777
C 言語では文字と数値は同じものだよ。
char c = 'c';
と書くのも
char c = 0x63;
と書くのもまったく同義。
780762:04/11/27 15:47:11
ありがとうございます
でも かなり混乱してきました
char c=0, d='0';
とやった場合 cには0(null?)がはいってdには0x30がはいるんですよね?
もし
int main(int argc, char **argv)
のプログラムで ./hoge.out 10 と言う実行をした場合は
10と言う数字ではなく
配列で|0x30|0x31|\0|と入るのでしょうか?
まだ 全然C言語がわかっていないものの書き方なので
わかりづらい言い方になっているかもしれませんが
すいませんがお願いします
781モウモウ:04/11/27 15:48:28
>>780
ここで聞くよりCの入門書を読むほうがいいと思うよ。
お互いにね。
782デフォルトの名無しさん:04/11/27 15:52:13
>>781
わからないんだったらレスしないで
783デフォルトの名無しさん
>>780
argv[0] -> "./hoge.out"
argv[1] -> "10"
argv[2] -> NULL

i.e.
argv[1][0] -> '1' = 0x31
argv[1][1] -> '0' = 0x30
argv[1][2] -> '\0' = 0