C言語なら、俺に聞け! <11>
■ このスレッドは過去ログ倉庫に格納されています
0001スーパーハッカー 日下部陽一
NGNGいろいろな言語を極めたが、一番手になじむのはCだった。
Cのことならぜんてわかるから、疑問な点があったらオレに聞け。
だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。
・comp.lang.c Frequently Asked Questions
http://www.eskimo.com/~scs/C-faq/top.html
・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマならこれを買っとけ。
・プログラミング言語C(K&Rと呼べば通のようだぞ)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/yfcbookshelf-22/250-3950205-1475419
K&Rで挫折するようなヤツはこれでも買え。
これでわからない、救いがたいヤツはあきらめろ。
・作ってわかるCプログラミング(アヒル本と呼べば通のようだぞ)
http://dennou.gihyo.co.jp/books/void_c/
http://www.amazon.co.jp/exec/obidos/ASIN/477411328X/qid%3D1005618315/250-3950205-1475419
・前スレ C言語なら、オレに聞け! <10>
http://pc.2ch.net/test/read.cgi/tech/1008300863/l50
0002デフォルトの名無しさん
NGNGそれでも買ってしまうようなら、Cの才能はないと思え。
0003デフォルトの名無しさん
NGNG教えてください。
0004デフォルトの名無しさん
NGNGsscanf(pData, "%c", &cData);//pDataは文字列のポインタ
このコードが不安定なんです。
0005デフォルトの名無しさん
NGNGOSは Sun0S4.1.3 です。
0006デフォルトの名無しさん
NGNG何を?
>>4
不安定って具体的にどういうこと?
>>5
どんなメッセージが出てるの?
コンパイラの種類は?
# SunOSにはデフォルトでccはついてないような気がする
00075
NGNGありがとう!とりあえず cc をインストールしてみる事にします!
0008Kusakabe Youichi
NGNG> おれは42才、24年間プログラムを一生懸命作ってきた。
それってかなりおちこぼれでは? :)
0009Kusakabe Youichi
NGNG> 「作ってわかるCプログラミング」を書店で見て、
> それでも買ってしまうようなら、Cの才能はない
「ということにしたい」:) ?
0010デフォルトの名無しさん
NGNG長い間プログラムを作ってると落ちこぼれなのかよ。
あんただって、まだJavaとかやってるんだろ?
0011デフォルトの名無しさん
NGNGさーね、5年後くらいにはっきり結果がでるんじゃない。
三田本みたいにいわれないといいけどね(反語表現
0012デフォルトの名無しさん
NGNG臭がりすぎ〜
0013Kusakabe Youichi
NGNG> 長い間プログラムを作ってると落ちこぼれなのかよ。
っていうか、そんなことしかしてないようじゃおちこぼれでしょう。
> あんただって、まだJavaとかやってるんだろ?
Javaをさわるとおちこぼれなんですか? :)
0014Kusakabe Youichi
NGNG> さーね、5年後くらいにはっきり結果がでるんじゃない。
でしょうね。
> 三田本みたいにいわれないといいけどね
そうですね。(さすがにあそこまでひどい本はないでしょうけど)
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGstring,float,float
string,float,float
という形のCSV形式のファイルから1レコードを読み込むにはどうすりゃいいのさ?
0017デフォルトの名無しさん
NGNG001816
NGNGstring,float,float
このレコードを読み込んでから、各フィールドごと変数に入れるには
どうすればよいのですか?
0019Kusakabe Youichi
NGNG>string,float,float
>このレコードを読み込んでから、各フィールドごと変数に入れるには
>どうすればよいのですか?
strtok()でフィールド分割してatof()で変換すればいいのでは?
312ペイジと314ペイジに書いてありますね。
K&R2版の:)
0020Kusakabe Youichi
NGNG>312ペイジと314ペイジに書いてありますね。
>K&R2版の:)
314ペイジと316ペイジでは?
K&R2版の:)
0021デフォルトの名無しさん
NGNG0022Kusakabe Youichi
NGNG> sageクサあらわる
すなおにアヒル本を読めばいいのにね:)
0023デフォルトの名無しさん
NGNG>そんなことしかしてないようじゃ
べつに1は、それしかしてないとは言ってないだろ。
0024あべだす
NGNGBMP画像からRGB値を取りだしたいのですが、
どうすればいいのでしょうか。
手もとの参考書には基礎的な事しか書いてなく、
どう考えても分かりませんでした。
0025デフォルトの名無しさん
NGNGもともと、自分の同類を卑下した書き込みなんだからいいっしょ。
そこまで問い詰めなくても。
障害者が障害者を馬鹿にした発言をするのと同じ思考。
0026デフォルトの名無しさん
NGNG猫でもわかるに、ビットマップがどうたらって章があるけど、
これじゃいかんの?
http://www.kumei.ne.jp/c_lang/index_sdk2.html
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGネタだよね?
0029Kusakabe Youichi
NGNG>BMP画像からRGB値を取りだしたいのですが、
>どうすればいいのでしょうか。
Windowsで一般的に扱われる拡張子BMPの画像はDIBと呼ばれます。
DIBのRGB表現は色深度によってインデクスドカラーとマスクドカラーに分けられます。
16色や256色と呼ばれるのが前者、ハイカラー、フルカラーと呼ばれるのは後者です。
この両者は色データの表現方法が違うので、RGB値を取り出す方法も違ってきます。
まずはDIBのファイルヘッダ情報を解析するところからはじめてはどうでしょうか?
0030デフォルトの名無しさん
NGNGいや、RLE圧縮とかもあるし、オフスクリーンに展開するというのは普通の方
法じゃないか? たぶん1ピクセルだけ取り出して終りってわけでもないだろう
し。
0031デフォルトの名無しさん
NGNGここじゃダメなのか?
http://www.sm.rim.or.jp/~shishido/windows.html
0033Kusakabe Youichi
NGNG>「オフスクリーンに展開するというのは普通」だね。
言葉尻をとった無意味な書き込みはやめたほうがいいのでは?
もっと内容のある情報を共有しましょう:)
003432
NGNG>言葉尻をとった無意味な書き込みはやめたほうがいいのでは?
話の流れを読まずに無意味な書き込みはやめたほうがいいのでは?
>>27「画面に表示してから」に対して
>>30「オフスクリーンに展開するというのは普通」
と書いたから、>>32「だね。」と同意したまで。
よく読め。
#つーか、その名前やめれや。
0035名無しさん@お腹いっぱい。
NGNG林晴比古の本は良くないって本当なの?
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGそれはおかしくない?
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG1000行位かましたった方が効果的
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG「作ってわかるC〜」だったかの著者だったとは・・・
あんなんでも本が出せるのか
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG世の中にはさ、なんつーか常識じゃ考えられないソースを
書く人もいるわけよ
0049デフォルトの名無しさん
NGNG本物はもう少し偏屈で根性の曲がった性悪で卑屈な人です。
0050Kusakabe Youichi
NGNG> In article >>21, デフォルトの名無しさん/sage/21 wrote:
> > sageクサあらわる
> すなおにアヒル本を読めばいいのにね:)
それはどんな本ですか?
0051Kusakabe Youichi
NGNG> まずはDIBのファイルヘッダ情報を解析するところからはじめてはどうでしょうか?
ダウト
0052Kusakabe Youichi
NGNG> >「オフスクリーンに展開するというのは普通」だね。
>
> 言葉尻をとった無意味な書き込みはやめたほうがいいのでは?
> もっと内容のある情報を共有しましょう:)
「共有」してどうする:)
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG文句ばっか言ってないでヤホーの掲示板で
困ってる初心者に教えにいってやれよ
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG>> すなおにアヒル本を読めばいいのにね:)
>
>それはどんな本ですか?
ログくらい読めよ。>日下部
人には本買えとか読めとか言ってるくせに。
0057名無しさん@お腹いっぱい。
NGNG0058デフォルトの名無しさん
NGNG引数で、範囲外の値だとかNULLは処理しないのにNULLが渡されたときとか。
配列の値がソートされているはずなのにされてないとか、プログラム内部の
データがおかしいとき。
ファイルとか、キー入力のような外部からのデータにはassert()は使わない。
0059デフォルトの名無しさん
NGNGそういえばそんなのも有ったな。
活用した事が無い漏れって、DQN?
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG0063Kusakabe Youichi
NGNG> 日下部って人が
> 「作ってわかるC〜」だったかの著者だったとは・・・
> あんなんでも本が出せるのか
買ってみればいいのに。
0064Kusakabe Youichi
NGNG> 文句ばっか言ってないでヤホーの掲示板で
> 困ってる初心者に教えにいってやれよ
ヤホー?
0065デフォルトの名無しさん
NGNG>マクロ切ってデバッグビルド時にだけ有効にしとくのが常道。
オレもそう思ってたけど、このまえ読んだ「達人プログラマ」には
リリースバージョンでも残しとけって書いてあった。
(ま、好き好きだと思うけど)
0066デフォルトの名無しさん
NGNG0067
NGNG最近公開されたQuake2のソースとか読みたいんですけど
膨大な数のソースファイル、関数を読むのを支援してくれるツールとかってなんかないでしょうか?
0068デフォルトの名無しさん
NGNGVisual C++
0069デフォルトの名無しさん
NGNGOSくらい示せよ
0070デフォルトの名無しさん
NGNG↑の2.6のAで書かれている
struct name {
int namelen;
char namestr[MAXSIZE];
};
が「規格の厳密な解釈によると許されない」というのが
わかりません。構造体のメンバに配列はだめってこと?
0071デフォルトの名無しさん
NGNGマクロは使ってはならないということ。
0072 67
NGNG007370
NGNGそれは構造体のメンバだから?
それとも普通の配列宣言でもマクロはだめ?
0074デフォルトの名無しさん
NGNGマクロ使うのはOK。
struct a {
int namelen;
char namestr[10];
};
struct b {
int namelen;
char namestr[20];
};
のとき、offsetof(struct a, namestr) == offsetof(struct b, namestr)である
保証がないということ。C99では配列の長さを変数にした場合や省略した場合、
struct c {
int namelen;
char namestr[namelen + 1];
};
struct d {
int namelen;
char namestr[];
};
において、offsetof(struct c, namestr) == offsetof(struct d, namestr)となる
ことが保証されてる。
0075Kusakabe Youichi
NGNG> http://www.catnet.ne.jp/kouno/c_faq/c2.html#0
> ↑の2.6のAで書かれている
> struct name {
> int namelen;
> char namestr[MAXSIZE];
> };
> が「規格の厳密な解釈によると許されない」というのが
> わかりません。構造体のメンバに配列はだめってこと?
その構造体自体は何も問題ないですね。
そうではなく、[1]の一番小さいのだけとって「かぶせて」使うのと同じように、
mallocとかでその構造体のsizeof分だけとるのではなくて、それより小さくとった
ものに「かぶせて」(もちろんnamestrに書くときにははみ出さないように気をつけて)
使うことが問題あるということでは?
007770
NGNG古い規格では構造体内の配列のサイズが違うと、構造体内でのアドレスのオフセット
が同じである保証が無いということですね。
>>75
凄く解りやすい。納得。
本物ですか?(藁
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG> 古い規格では構造体内の配列のサイズが違うと、構造体内でのアドレスのオフセット
> が同じである保証が無いということですね。
C99でも配列のサイズが定数の場合は保証されません。
保証されるのは、新しく導入された可変長配列を使った場合だけ。
0080デフォルトの名無しさん
NGNG保障されないことによって不具合が生じるコードは
例えばどんなものですか?
008170
NGNGどもです。
オフセットが保証されないってことは、仮想的に宣言した配列でかぶせるという
行為自体が危険ですね。
標準規格の変遷にちょっと興味が出てしまいました。
詳しいサイトとか無いでしょうかね。
できれば日本語(^^;
008270
NGNGこういう使い方がマズイということじゃないかな。
struct a{
int namelen;
char namestr[10];
};
struct a{
int namelen;
char namestr[20];
};
foo()
{
struct a *pa;
struct b *pb;
pa = malloc(sizeof(struct a));
/* pa->namestr[] に値をセット*/
pb = (struct b)pa;
/* pb->namestr[] の値を参照*/
}
008370
NGNG訂正です
誤)pb = (struct b)pa;
正)pb = (struct b*)pa;
0084デフォルトの名無しさん
NGNG下のようなコードを書く際、bar()を呼んでもhogeと表示される保証がないという
こと。俺はhogeと表示されない処理系は見たこと無いし、
struct sockaddr_in sin; して bind(s, (struct sockaddr *)&sin...)すら
規格では保証されないことなるのであまりこだわってもしょうがないとも思う。
#define MAXSIZE 1024
struct name {
int namelen;
char namestr[MAXSIZE];
};
void foo(struct name *np)
{
printf("%s\n", np->namestr);
}
void bar()
{
struct my_name {
int namelen;
char namestr[5]; /* 5で充分 */
} n = { 4, "hoge" };
foo(&n);
}
008570
NGNGこんな感じに宣言してたことがあった。(変数名は適当)
#define DATA_HEAD \
int id; \
void *next; \
void *prev; \
int size; \
typedef struct {
DATA_HEAD
data[DATASIZE1];
} DATA1;
typedef struct {
DATA_HEAD
data[DATASIZE2];
} DATA2;
今おもうとC言語で「継承」を実装しようと考えられた結果
なんだろうけど、ANSI的には保証外のコードということにな
りますね。
もちろんそのプロジェクトのプログラムは問題なく動いて
いましたが(^^;
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG| | _________. | |
| | | 故・糞壁を斬る! | | |
| |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | 1.マ板 ∧ ∧ .,, < 粘着にかけては世界一だった!
| | 2.ム板 (,, ゚Д゚)/ビシッ \__________________
| |. :__(__つ__ | |
| | | ギコ猫大助教授 | || オオー
|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | サスガ!
|_____________|
0090便乗
NGNG| | _________. | |
| | | 故・糞壁を斬る! | | |
| |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | 1.マ板 ∧ ∧ .,, < 粘着にかけては世界一だった!
| | 2.ム板 (,, ゚Д゚)/ビシッ \__________________
| |. :__(__つ__ | |
| | | ギコ猫大助教授 | || オオー
|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | サスガ!
|_____________|
0091デフォルトの名無しさん
NGNGhttp://cheese.2ch.net/cook/
0092Kusakabe Youichi
NGNG> クサカベがお料理板に住み着いてる・・・・・・
> http://cheese.2ch.net/cook/
ここで宣伝するともっと客がくるとでも思ったのですか? :)
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG0096Kusakabe Youichi
NGNG> ↑ コイツ何必死になってるの?
何か「必死になっている」ことにしたいらしい:)
0097Kusakabe Youichi
NGNG> 相変わらず薄っぺらい人だ
「ということにしたい」
0098デフォルトの名無しさん
NGNGこれがホンモノのデンパってやつ?
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG>In article >>93, デフォルトの名無しさん/sage/93 wrote:
>> ↑ コイツ何必死になってるの?
>何か「必死になっている」ことにしたいらしい:)
>97 名前:Kusakabe Youichi :01/12/30 07:30
>In article >>94, デフォルトの名無しさん/94 wrote:
>> 相変わらず薄っぺらい人だ
>「ということにしたい」
馬鹿?
0101Kusakabe Youichi
NGNG> 宣伝とか客とかわけわからん。
> これがホンモノの(I筑殃澆辰討笋ト?
ってことにすればごまかせるとも思ってるのかな? :)
■ このスレッドは過去ログ倉庫に格納されています