[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 15:17 / Filesize : 213 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131



1 名前:デフォルトの名無しさん [2007/02/01(木) 23:08:46 ]
このスレは標準Cのみの限定スレです。
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。

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

他の過去ログはここに
nssearch.hp.infoseek.co.jp/clang/
前スレ
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 130
pc10.2ch.net/test/read.cgi/tech/1159613789/


GUIなどの標準Cではできない事の質問,ソース丸投げ、宿題、書籍 は
専門の別スレッド↓があるのでそこへさようなら。

【初心者歓迎】C/C++室 Ver.34【環境依存OK】
pc10.2ch.net/test/read.cgi/tech/1169039760/
C/C++の宿題を片付けます 82代目
pc10.2ch.net/test/read.cgi/tech/1169575464/

736 名前:734 mailto:sage [2007/07/16(月) 23:10:44 ]
まちがったが訂正はしない
わかって
おねがい

737 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:15:49 ]
{
 int obj;
 while( obj = nextObj() ) {
 // something
 }
}

みたいにブロックで囲めばいいじゃん。

738 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:25:36 ]
つーか
for (int obj; obj = nextObj(); ) {
// something;
}
でおk

739 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 08:18:31 ]
はんのーした香具師らは負け組

740 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 10:40:12 ]
>>733
>それは処理の先頭にくるたびにiを宣言するという意味になるが
ブロック先頭での宣言と同様に扱えばいいわけですが
規格ではそうはしなかった、ってだけの話では?

741 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 15:04:07 ]
>>740
そもそもそんな話じゃない。
規格では while に書いたステートメントは値を返さないといけないが、
int i = ... のような変数の宣言は値を返さないので書けないだけの事。

742 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 15:10:43 ]
>>741
> while に書いたステートメント
> 変数の宣言は値を返さない

現行の規格の話するんなら正確にな。
文法的に while の条件に文は書けない。
式だけ。そして文には値とかないから。

743 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 16:31:46 ]
なんというマジレスの嵐

744 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 17:23:12 ]
for (;int i = hoge();)



745 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 17:32:03 ]
寿司食いたい

746 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 17:35:08 ]
>>745
ガリでも食ってろ

747 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 18:50:31 ]
C++でできるんだから、C99でできるようにすることも可能だったとは思う。
どういう経緯があったかは知らないが、結果として制定されたC99では、
できるようになっていないけど。

以下チラシの裏
これは、こういうコード
Tok* ct;
if (ct = gettok()) { /* ... */ }
に対して、条件式のところで変数を宣言できれば、未初期化の変数を減らせ、
ついでに条件文内に変数の有効範囲を閉じ込められるというアイデアだった。
if (Tok* ct = gettok())
{
  // ctはスコープ内
}
// ctはスコープ外
参考『C++の設計と進化』 3.11.5.2 条件文の中の宣言

C++では、C以上に初期化と代入が区別されるので、
>>737-738のような書き換えができないこともある。
それもあって、俺はたまに使うし、C++からは無くなれと思わない。

748 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 19:06:31 ]
この文でコンパイルできるんだが結果が正しくでません。
どこか誤りありますか?
#include<stdio.h>
void main()
{
int a, b,c;
printf("a = ");
scanf("%d",&a);
printf("b = ");
scanf("%d",&b);
printf("c = ");
scanf("%d",&c);


if( a == b == c ){
printf("%d\n",a);
}else if( a >= b >= c ){
printf("%d\n",a);
}else if( a >= c >= b ){
printf("%d\n",a);
}else if( b >= a >= c ){
printf("%d\n",b);
}else if( b >= c >= a ){
printf("%d\n",b);
}else if( c >= a >= b ){
printf("%d\n",c);
}else if( c >= b >= a ){
printf("%d\n",c);
}
}

749 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 19:14:43 ]
>>748
「何をやろうとしているのか、また何が正しいのかは
 コードから読みやがれ」ってか。大した奴だ。

…とか思ってたら、ひと目で変な記述が。

>if( a == b == c ){
>if( a >= b >= c ){
    :(略)

そんな書き方できない。
面倒でも

if (a == b && b == c) {
if (a >= b && b >= c) {
    :(略)

と書かないと。

750 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 19:16:46 ]
>>749
スマソ。そしてありがとう。
そうやったら、できました。

751 名前:c言語初心者 [2007/07/17(火) 19:38:16 ]
突然すいません!!学校の問題でc言語の問題が3つ出たのですがまったくわからないです。問題書き込むんで誰か解いてもらえませんか?
よろしくお願いします。


752 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 19:40:08 ]
OKとりあえず宿題スレ逝け。

753 名前:c言語初心者 [2007/07/17(火) 19:43:22 ]
宿題すれってあるんですか??


754 名前:デフォルトの名無しさん [2007/07/17(火) 19:45:11 ]
C言語なら俺に聞け(入門篇) Part 16
pc11.2ch.net/test/read.cgi/tech/1184003625/




755 名前:c言語初心者 [2007/07/17(火) 19:50:54 ]
ここならしていただけるんですか??

756 名前:デフォルトの名無しさん [2007/07/17(火) 19:53:03 ]
>>755
>>751
> 学校の問題

C/C++の宿題を片付けます 93代目
pc11.2ch.net/test/read.cgi/tech/1184506311/


757 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 19:55:22 ]
ただし回答者の気が向いたら
気に入られなければスルーされる

758 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 05:49:19 ]
スレ立てられなかった。誰かキボン。

スレタイ: 【初心者歓迎】C/C++室 Ver.40【環境依存OK】

エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。
age 推奨ですが、自己判断で。

◆ 前スレ: 【初心者歓迎】C/C++室 Ver.39【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1182740506/

◆ アップローダー (質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

759 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 11:05:17 ]
>>758
何故このスレで……

760 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:58:47 ]
もう立ってるね

761 名前:デフォルトの名無しさん [2007/07/19(木) 01:02:10 ]
cの入門書とポインタ攻略本を読んでほぼ理解できたんだけど次に何読めばいいかわからん

何かお勧めの参考書教えてください

762 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:05:40 ]
アルゴリズムとデータ構造

763 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:10:14 ]
30日でできる! OS自作入門

764 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:13:03 ]
K&R



765 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:41:38 ]
アルゴリズム辞典

766 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:10:47 ]
>>761
>読んでほぼ理解できたんだけど
本当なら大したもんだけど、
>cの
も少しケースセンシティブになろうね。

767 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:12:03 ]
ケースセンシティブにもう少しもないものだ

768 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 01:15:22 ]
たしかにw

まぁ、ポインタは理解したんだろう。
面倒なのはポインタよりも、ポインタの絡んだ型宣言の方だから。

769 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 01:38:29 ]
えーとintの配列へのポインタを受け取って関数へのポインタへのポインタを返す関数・・・

770 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 11:12:34 ]
typedef って便利だよな。

771 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:33:33 ]
俺は、typedef void (*func)(int)っていうのを見て
何をtypedefしてんだ?と思った時期もありました。

772 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 16:53:23 ]
void (*const *foo(const int (*p)[10]))(void (T::*)(int (U::*)()));

773 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:03:50 ]
typedef様様だな

774 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:16:19 ]
>>771
それ何をtypedefしてるの?
初めて見た



775 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:29:32 ]
>>774
intの引数が1つで値を返さない関数を func にtypedef
例えば、、、

void foo(int);
func f = foo;
とか

776 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:38:57 ]
なるほどー
自分に使う機会が来るかはわからんけど覚えておこう
thx

777 名前:デフォルトの名無しさん [2007/07/20(金) 18:12:25 ]
C言語をはじめたばかりであまりわからないのですが、
ビットシフトはなんの役に立つのでしょうか?

778 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 18:13:29 ]
typedef int (U::*FP1)();
typedef void (T::*FP2)(FP1);
typedef void (*FP3)(FP2);

const FP3* foo(const int p[][10]);

779 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:18:26 ]
>>777
ビットフラグのクリアとか?

780 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:45:24 ]
>>777
ビットの配列を作るときに使う

781 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:45:55 ]
「作る」じゃなくて「操作する」だな。すまん。

782 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:50:27 ]
>>779-781
ビットシフトはなんの役に立つのでしょうか?
でぐぐれ

783 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:56:19 ]
そういえばどうしてローテートはないんだろ

784 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:20:58 ]
>>777
コレ見るの、3回目か4回目くらいなんだけど、ギャグかなんかなの?



785 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:02:06 ]
不定期テンプレ

786 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:14:02 ]
ただの荒らし
あるいは風物詩
あるいは新参の受ける洗礼

787 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:56:47 ]
>>783
ローテートをサポートしない CPU も多いんじゃね?
知らんけど。

788 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 01:07:00 ]
>>784
少ないなw

789 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:04:14 ]
&a->bって&(a->b)か(&a)->bかどっち?

790 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:09:29 ]
「演算子 順位」とかでぐぐれ

791 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:19:04 ]
&(a->b)ですね。ありがとう。

792 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:25:36 ]
つか、やってみりゃ分かるだろ。

793 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:39:22 ]
その態度は良くない。
・規格を読んで正しい挙動を把握する
・実際に処理系で実験してみる
・結果が規格と異なった場合パッチを書いてしかるべき所に送りつける(オプション)

794 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:25:22 ]
規格読んで来て、理解して&(a->b)を常に&a->bとか書くように
なる人と仕事組んだら俺泣きそうw



795 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:28:59 ]
&a->b は普通に書くだろw

796 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:41:50 ]
>・規格を読んで正しい挙動を把握する
=「演算子 順位」とかでぐぐれ
>・実際に処理系で実験してみる
=つか、やってみりゃ分かるだろ。

797 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:45:12 ]
正しい挙動を把握してから実験で確認するのと、
実験して結果を見て予想するのは、大きな違いがある。


798 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 05:26:51 ]
その態度はよくない。
実験して結果を見て法則を導くスタイルが無いと。

799 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 05:30:11 ]
はいはい、そうですね

800 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 05:48:50 ]
実験した後に確かめた方がいい。

801 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 10:00:56 ]
演算子の優先順位は、処理系依存ってことはないだろうから、実験でいいんじゃね?

802 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 10:02:37 ]
規格読む→実験する→2chで煽りつつ確かめる

803 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 10:11:19 ]
規格読む前に実験した方が実感しやすいな。

804 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 10:36:58 ]
その通りだ。実験して、壁にぶち当たって、その壁をぶっ壊せ!
フラグメンテーションエラーで、メモリーもぶっ壊せ!
そして泣きながら規格読んで実感だ!



805 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 11:26:38 ]
>>804
>そして泣きながら規格読んで実感だ!
お疲れ様です。

806 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 11:51:31 ]
C++ だが、export は色んな意味で泣ける。

807 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 12:27:13 ]
俺の胸でなけ

808 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 13:02:06 ]
俺の下であがけ

809 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 14:42:57 ]
実験だけじゃ優先順位なのか結合の方向なのか解らない、と。
まぁ、&a->bくらいなら、どっちでもいいけど。

810 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:25:12 ]
&a->b が (&a)->b と見做されるんだとしたら
皆 a.b と書くと思うんだわ。

811 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:30:44 ]
&a.bじゃないか?

812 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:31:41 ]
終電まで仕事してて疲れてた。>>811はお願いだから忘れて

813 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 10:05:19 ]
CD-R に保存しました

814 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:59:19 ]
石版に刻みました



815 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 09:46:04 ]
DNAに移植しました

816 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:10:45 ]
アカシックレコードに刻まれました。

817 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:15:00 ]
C++ の STL に感動しました
C言語で STL に似たことをしたいと思ったらどうすれば良いですか?

818 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:16:19 ]
C++に乗り換える。

819 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:17:24 ]
やっぱりそれが確実ですよね

820 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:20:58 ]
マクロを使う。

821 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 02:11:51 ]
そういえば、templateが使えない時代にはgeneric.hってのがあったな

822 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 21:08:58 ]
>>817
こんなんあった。かなりSTLに近いんじゃないか?
マクロを使ってるからデバッグがむずかしそうだが


>sourceforge.jp/projects/cstl
>CSTLは、C言語で使えるC++のSTLライクなコンテナライブラリです。
>vector, deque, list, set, multiset, map, multimap, stringを提供します。

823 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 10:16:24 ]
FILE *t=tmpfile();
で作成したtを
fclose(t);
してもいいですか?
なんか危なくて、こわいです。


824 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 10:24:04 ]
なんで危ないんだよw
まあ、またその内容を使うことがあるなら閉じちゃだめだが。



825 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 10:44:31 ]
ええ!
fclose(t)ってやってよかったの?

826 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 10:56:00 ]
C言語辞典見てみたけど、やっていいみたい。

827 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 11:09:09 ]
用がなくなったら閉じないとダメだろ。常考。

828 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 11:52:56 ]
tmpfile()は、そのファイルがクローズされたか、またはプログラムが終了したときに
自動的に削除されるファイルを生成し、そのストリームへのポインタを返す。

何も問題はない。

829 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 06:35:21 ]
自分ならOOライクにたとえ1行で済んだとしても生成と破棄を対にして両方の関数を作る

830 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 07:59:09 ]
なら別にC使わないで他のOO使えばいいじゃん。頭かたいね。

831 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 08:38:00 ]
生成と破棄を対にすることがOOライクだと思うくらいならそれでもいいんじゃね?

832 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 09:21:23 ]
ぷっ

833 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:09:16 ]
>>830
固いんじゃなく、弱いんだろう。

834 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:43:24 ]
>>822
面白そうなものがあるんですね
GPLじゃないところもイイ!

ただ、著作表示だけはしないといけないようですね



835 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:29:40 ]
>>834
BSDライセンスらしいから緩いでしょ

836 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:34:52 ]
いや修正BSDって中のファイルに書いてるじゃん






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<213KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef