2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

char *c[43] = {"C言語のことは漏れに聞け!"};

1 :デフォルトの名無しさん:02/11/14 22:43
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しろ。
むしろ質問する前にWEBで検索するのが常識だ。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。
コンパイラを探しているなら >>2 を見よ。
また、このスレは論争スレへのポインタでもある。

上記を逸した場合の結果は激しく未定義とする。

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/

前スレ
c[42] = "http://pc3.2ch.net/test/read.cgi/tech/1037101156/";


2 :デフォルトの名無しさん:02/11/14 22:43
【コンパイラ】
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/

【ライセンスや機能などに問題あり】
Microsot 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


3 :デフォルトの名無しさん:02/11/14 22:44
死ねよてめー・・・

4 :デフォルトの名無しさん:02/11/14 22:44
c[41] = "http://pc3.2ch.net/test/read.cgi/tech/1036876790/";
c[40] = "http://pc3.2ch.net/test/read.cgi/tech/1036673739/"; // 待機中
c[39] = "http://pc3.2ch.net/test/read.cgi/tech/1036409391/"; // 待機中
c[38] = "http://pc3.2ch.net/test/read.cgi/tech/1035729526/"; // 待機中
c[37] = "http://pc3.2ch.net/test/read.cgi/tech/1035623265/"; // 待機中
c[36] = "http://pc3.2ch.net/test/read.cgi/tech/1035211039/"; // 待機中
c[35] = "http://pc3.2ch.net/test/read.cgi/tech/1034337064/"; // 待機中
c[34] = "http://pc3.2ch.net/test/read.cgi/tech/1033240509/"; // 待機中
c[33] = "http://pc3.2ch.net/test/read.cgi/tech/1032606064/"; // 待機中
c[32] = "http://pc3.2ch.net/test/read.cgi/tech/1031905402/"; // 待機中
c[31] = "http://pc3.2ch.net/test/read.cgi/tech/1031340950/"; // 待機中
c[30] = "http://pc3.2ch.net/test/read.cgi/tech/1030786546/"; // 待機中
c[29] = "http://pc3.2ch.net/test/read.cgi/tech/1029605182/"; // 待機中
c[28] = "http://pc3.2ch.net/test/read.cgi/tech/1028495798/"; // 待機中
c[27] = "http://pc3.2ch.net/test/read.cgi/tech/1027160374/"; // 待機中
c[26] = "http://pc.2ch.net/tech/kako/1026/10260/1026048820.html";
c[25] = "http://pc.2ch.net/tech/kako/1024/10249/1024918442.html";
c[24] = "http://pc.2ch.net/tech/kako/1024/10240/1024033400.html";
c[23] = "http://pc.2ch.net/tech/kako/1022/10224/1022402165.html";
c[22] = "http://pc.2ch.net/tech/kako/1022/10224/1022402165.html";
c[21] = "http://pc.2ch.net/tech/kako/1022/10220/1022045622.html";


5 :デフォルトの名無しさん:02/11/14 22:44
c[20] = "http://pc.2ch.net/tech/kako/1021/10214/1021459016.html";
c[19] = "http://pc.2ch.net/tech/kako/1020/10207/1020756993.html";
c[18] = "http://pc.2ch.net/tech/kako/1020/10202/1020260813.html";
c[17] = "http://pc.2ch.net/tech/kako/1019/10193/1019372139.html";
c[16] = "http://pc.2ch.net/tech/kako/1018/10184/1018453690.html";
c[15] = "http://pc.2ch.net/tech/kako/1016/10165/1016519243.html";
c[14] = "http://pc.2ch.net/tech/kako/1015/10152/1015286974.html";
c[13] = "http://pc.2ch.net/tech/kako/1013/10139/1013990673.html";
c[12] = "http://pc.2ch.net/tech/kako/1012/10123/1012348974.html";
c[11] = "http://pc.2ch.net/tech/kako/1009/10094/1009499565.html";
c[10] = "http://pc.2ch.net/tech/kako/1008/10083/1008300863.html";
c[9] = "http://pc.2ch.net/tech/kako/1007/10072/1007272267.html";
c[8] = "http://pc.2ch.net/tech/kako/1005/10058/1005811510.html";
c[7] = "http://pc.2ch.net/tech/kako/1005/10058/1005811510.html";
c[6] = "http://piza2.2ch.net/tech/kako/999/999617524.html";
c[5] = "http://piza2.2ch.net/tech/kako/994/994908590.html";
c[4] = "http://piza.2ch.net/tech/kako/992/992357382.html";
c[3] = "http://piza.2ch.net/tech/kako/989/989929288.html";
c[2] = "http://piza.2ch.net/tech/kako/979/979529893.html";
c[1] = "http://piza.2ch.net/tech/kako/967/967985026.html";
/* c[0]はタイトルで初期化済み */


6 :デフォルトの名無しさん:02/11/14 22:44
              ヽ \
             / \ \
       ∧_∧/
      (;´Д`)     i i i
      /    ヽ _   i i i--、
     ./| |   | |   ̄ ̄ ̄ |:::::|.
    / \ヽ/| |       ノ__ノ..
   /   \\| |
   / /⌒\ し(メ    .i i i . .
 / /    > ) \  ノノノ
/ /     / /    .\_  ザックザック
し'     (_つ   /:::::/::...   /ヽ
          ; "ノ・ ./∴: / )i iヽ-、_へ    ,ヘ
          '',, : :―― / / i i i iヽ . ̄ ゙― ノ /
    n_    _/;    i  .ノ / /ノ-' ̄ ゙ ― 、__ノ
  _ノ 二二二、_( _Д_ ;)-ヽ_ノ-'>>1
  ゙ー ''~      ∨ ̄∨

7 :デフォルトの名無しさん:02/11/14 22:45
キタ━━━━━━━(゚∀゚)━━━━━━━ !!!!!

>>1


8 :デフォルトの名無しさん:02/11/14 22:46
 ある日突然他人のPIDが見れるようになった。
 
                   PID 1192
     ∧_∧           ∧_∧
   Σ( ´∀`)          (´∀` )
     (    )           ( >>1 )
     |  |  |            | |  |
    (____)__)           (__(___)
 
 
    ドキドキ・・・         PID 1192
     ∧_∧           ∧_∧
    (; ´∀`)KILL 1192    (´∀` )
     (    つ          ( >>1 )
     |  |  |            | |  |
    (____)__)           (__(___)
 
 
     ヤター!
     ∧_∧
   Σ( ´∀`)           フッ・・・
    ⊂    つ           ...::::...
     |  |  |            :::::::::::::::
    (____)__)           (__(___::

9 :デフォルトの名無しさん:02/11/14 22:46
>>1
乙カレー。

10 :デフォルトの名無しさん:02/11/14 22:46
まもなくここは 乂1000取り合戦場乂 となります。
 
    \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!      ,,、,、,,,
    /三√ ゚Д゚) /   \______________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,,U (:::::::::::)  ,,、,、,,,         \ ぶーぶーぶー /
      //三/|三|\              タリー
      ∪  ∪     (\_/)タリー    タリー   
                (  ´Д)    タリー  タリー
                /   つ  (\_/)   (\_/)ノ⌒ヽ、
               (_(__つ⊂(´Д`⊂⌒`つ(´Д` )_人__) ))

11 :1:02/11/14 22:46
こっちが正統派だな。
C言語質問所 <43>はあきらかな荒らしだ

12 :デフォルトの名無しさん:02/11/14 22:48
1 に賛同。

13 :デフォルトの名無しさん:02/11/14 22:49
>>3 >>6 >>8 >>10
          ,. -───-: 、
          /::::::::::::::::::::::::::::::::\
          / '':::::::::::::::::::::::::::::::''''' ヽ
         !::::::::::ィ::ハ:::;::::::::::::::::::::::::::!
       i::|:::i::/l/  i;::ト、:、:::i:::::::::::::::i
       |::i/レ'-i''  'ヽi-ヾ,ヽ!:::::::::::::l
       |::ハ -‐-   -─- i::::::::::::::l
       |::::::l|  |     |  | |::::::::::::::!
       |::::::ヽ | r---、! l,.!::::::::::::::l
       l::::::::::::`;'-'=,‐,='r''i~!:::::::::::::::|
         !:::::::l、::r'"´'. ' l ' i::::::::iヽ:::l
       i:l、:::|./、_____,l::::;l:/‐'ヽ!
        '!ヽ;i'>l____,.//-‐'''"ヽ
            !/ |.VVVVVVVV.lV\!. i
         |  |        |    l

14 :デフォルトの名無しさん:02/11/14 22:50
#include <stdio.h>

int main(void)
{
  int i;
  for(i=0; i<43; i++)
    printf("%s\n", c[i]);

  return 0;
}

15 :デフォルトの名無しさん:02/11/14 22:50
>>14
1 を 100 回読んで出直してこい

16 :デフォルトの名無しさん:02/11/14 22:51
>>15
なんで?

17 :デフォルトの名無しさん:02/11/14 22:52
>>1に注目

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。
コンパイラを探しているなら >>2 を見よ。
また、このスレは論争スレへのポインタでもある。 ←キタ━(・∀・)━!


18 :デフォルトの名無しさん:02/11/14 22:56
>>4-5
の過去ログリスト、カンマ演算子で区切るってのはどうだろう?
その方がほんの少しすっきりする気がする。

19 :デフォルトの名無しさん:02/11/14 22:57
              ヽ \ 
             / \ \
       ∧_∧/
      (;´Д`)     i i i
      /    ヽ _   i i i--、
     ./| |   | |   ̄ ̄ ̄ |:::::|.
    / \ヽ/| |       ノ__ノ..
   /   \\| |
   / /⌒\ し(メ    .i i i . .
 / /    > ) \  ノノノ
/ /     / /    .\_  ザックザック
し'     (_つ   /:::::/::...   /ヽ
          ; "ノ・ ./∴: / )i iヽ-、_へ    ,ヘ
          '',, : :―― / / i i i iヽ . ̄ ゙― ノ /
    n_    _/;    i  .ノ / /ノ-' ̄ ゙ ― 、__ノ
  _ノ 二二二、_( _Д_ ;)-ヽ_ノ-'>>1
  ゙ー ''~      ∨ ̄∨

20 :デフォルトの名無しさん:02/11/14 22:57
>>18
どれがどの番号だか数えないと分からんから却下却下却下却下却下。

21 :デフォルトの名無しさん:02/11/14 22:59
コマンド引数ってキャラ型ですよね?
数字をソース中で使う時はatoiしないとだめですか?

22 :デフォルトの名無しさん:02/11/14 22:59
>>14=Cスレの歴史一覧プログラム


23 :18:02/11/14 23:00
>>20
行末のセミコロンをカンマに変えるだけ(それ以外は変更なし)
という意味で言ってるんだが。

24 :デフォルトの名無しさん:02/11/14 23:01
もう>>1は引っ込みがつかなくなっているな。
わざとネタふりしそうだ。

25 :デフォルトの名無しさん:02/11/14 23:02
引っ込む必要がどこにあるのかと問いたい

26 :デフォルトの名無しさん:02/11/14 23:00
>>21
その通り。
別に、自作した関数で変換しても構わないが。

27 :デフォルトの名無しさん:02/11/14 23:08
>>14
for(i=0; i<43; i++){
    if(i > 0)
        printf("%3d ", i);
    printf("%s\n", c[i]);
}
の方がよさげ

28 :デフォルトの名無しさん:02/11/14 23:09
糞スレは





























                                                              落ちろ

29 :デフォルトの名無しさん:02/11/14 23:13


C言語質問所 <43>
http://pc3.2ch.net/test/read.cgi/tech/1037134356/

char *c[43] = {"C言語のことは漏れに聞け!"};
http://pc3.2ch.net/test/read.cgi/tech/1037281411/


30 :デフォルトの名無しさん:02/11/14 23:11
み、みんな!
 お、落ち着け!

     /∧_/∧      /∧_/∧    オロオロ
   ((´´ДД``;;))    ((;;´´ДД``))    オロオロ
   //    \\     //   \\ オロオロ
  ⊂⊂((  ヽノヽノつつ ⊂⊂ヽ// )) つつ  オロオロ
   しし((_))       ((_))JJ

反応しちゃダメだ!

31 :デフォルトの名無しさん:02/11/14 23:14
唐揚げ

32 :デフォルトの名無しさん:02/11/14 23:14
>>30
落ち着けよ

33 :名無し言語:02/11/14 23:14
はじめて、使います。今Cを勉強しようと思ってるんですが、
言語が全然読めなくてふりがなが付いている本を探しているのですが無いですか
教えて下さい。お願いします。

34 :デフォルトの名無しさん:02/11/14 23:16
>>33
書籍スレに逝ってください。

35 :デフォルトの名無しさん:02/11/14 23:17
>>33
ネタは「スレ立てるまでもない〜」でやってください

36 :デフォルトの名無しさん:02/11/14 23:16
C言語を俺に聞け 第48回ぐらいか?
http://pc3.2ch.net/test/read.cgi/tech/1037279828/l50

37 :デフォルトの名無しさん:02/11/14 23:17
>>33
書籍スレとマルチネタだろ。消えろ。

38 :デフォルトの名無しさん:02/11/14 23:18
リンク貼っとこう。
お勉強ページ 勝手にリンク 第2版
http://pc3.2ch.net/test/read.cgi/tech/967778156/-100

39 :言語名無し:02/11/14 23:20
わかりました

40 :デフォルトの名無しさん:02/11/14 23:20
>>36
荒らし認定。

41 :デフォルトの名無しさん:02/11/14 23:20
           ☆ シャットダウン中・・・ ☆
┌──────────────────────―─┐
│                                    |
│                                    |
│                /■\                    |
│               (´∀`∩)                   |
│               (つ  丿                |
│                ( ヽノ                    |
│                し(_)                |
│                                    |
│             Now Onigiring. ...               |
│                                    |
│                                    |
│         スレッドを終了しています。.          |
│         しばらくおにぎりでお待ちください。        |
│                                    |
└───────────────────────―┘
    シャットダウンの途中でエラーが発生した場合は、
      「無視(I)」 を選択して続行してください。



      「無視(I)」 を選択して続行してください。

42 :デフォルトの名無しさん:02/11/14 23:21
           ☆ シャットダウン中・・・ ☆
┌──────────────────────―─┐
│                                    |
│                                    |
│                /■\                    |
│               (´∀`∩)                   |
│               (つ  丿                |
│                ( ヽノ                    |
│                し(_)                |
│                                    |
│             Now Onigiring. ...               |
│                                    |
│                                    |
│         スレッドを終了しています。.          |
│         しばらくおにぎりでお待ちください。        |
│                                    |
└───────────────────────―┘
    シャットダウンの途中でエラーが発生した場合は、
      「無視(I)」 を選択して続行してください。



      「無視(I)」 を選択して続行してください。

43 :デフォルトの名無しさん:02/11/14 23:21
41=36 頃せ

44 :デフォルトの名無しさん:02/11/14 23:22
>>27
> for(i=0; i<43; i++){
43が気持ち悪いので

#define CMAX ((int)(sizeof(c)/sizeof(c[0])))
for(i=0; i<CMAX; i++)

45 :43:02/11/14 23:23
           ☆ シャットダウン中・・・ ☆
┌──────────────────────―─┐
│                                    |
│                                    |
│                /■\                    |
│               (´∀`∩)                   |
│               (つ  丿                |
│                ( ヽノ                    |
│                し(_)                |
│                                    |
│             Now Onigiring. ...               |
│                                    |
│                                    |
│         スレッドを終了しています。.          |
│         しばらくおにぎりでお待ちください。        |
│                                    |
└───────────────────────―┘
    シャットダウンの途中でエラーが発生した場合は、
      「無視(I)」 を選択して続行してください。



      「無視(I)」 を選択して続行してください。

46 :43:02/11/14 23:26
      ∧_∧      ∧_∧
     _( ´∀`)    (´∀` )
  三(⌒),    ノ⊃    ( >>1 .)   おまいは
     ̄/ /)  )      | |  |
    . 〈_)\_)      (__(___)
         ∧_∧  .∧_∧
         (  ´∀) (´∀` )
       ≡≡三 三ニ⌒) >>1 .)    何考えて
        /  /)  )  ̄.| |  |
        〈__)__)  (__(___)
           ∧_∧  ,__ ∧_∧
          (    ´)ノ ):;:;)∀`)
          /    ̄,ノ'' >>1 . )   このスレ立てたんだよ
         C   /~ / /   /
         /   / 〉 (__(__./
         \__)\)
                      ヽ l //
            ∧_∧(⌒) ―― ☆ ―――
            (    ) /|l  // | ヽ   ヴォケがーー!
           (/     ノl|ll / / |  ヽ
            (O  ノ 彡''   /  .|
            /  ./ 〉
            \__)_)

47 :43:02/11/14 23:26
  ヽ、.三 ミニ、_ ___ _,. ‐'´//-─=====-、ヾ       /ヽ
        ,.‐'´ `''‐- 、._ヽ   /.i ∠,. -─;==:- 、ゝ‐;----// ヾ.、
       [ |、!  /' ̄r'bゝ}二. {`´ '´__ (_Y_),. |.r-'‐┬‐l l⌒ | }
        ゙l |`} ..:ヽ--゙‐´リ ̄ヽd、 ''''   ̄ ̄  |l   !ニ! !⌒ //
.         i.! l .:::::     ソ;;:..  ヽ、._     _,ノ'     ゞ)ノ./
         ` ー==--‐'´(__,.   ..、  ̄ ̄ ̄      i/‐'/
          i       .:::ト、  ̄ ´            l、_/::|
          !                           |:    |
             ヽ     ー‐==:ニニニ⊃          !::   ト、
おれたちはとんでもない思い違いをしていたようだ。これを見てみろ。
まず「クソスレ」を英字で表記する
『KUSOSURE』
これを逆にすると、
『ERUSOSUK』
そしてこれを更に日本語に直すと
『エルソサク』
スレを立てたのが>>1と言う事を考えれば末尾に『真性DQN』を加えるのが当然だ。
すると導き出される解は
『エルソサク真性DQN』
そして最後の仕上げに意味不明な文字『エルソサク』
これはノイズと考えられるので削除し残りの文字を取り出す。
するとできあがる言葉は・・・・・・『真性DQN』。

つまり!『真性DQN』とは『まさに>>1』を表す言葉だったのだ!!

48 :43:02/11/14 23:27
 \もうね、アボガド/   \ 馬 /     \ 鹿 かと/
                            ∩   ∩
                            | つ  ⊂|
                   ∧ノ~        ! ,'っ _c,!
      ヽ           ミ| ・  \     ⊂/  ・  \
     γ⌒^ヽ        ミ|  ... '_)     | __,,▼
     /:::::::::::::ヽ.       ミ|. (,,゚Д゚)        |・ (,,゚Д゚)
     /.::::::::(,,゚Д゚)         | (ノ  |)      | (ノ  |)
    i:::::(ノDole|)         |   馬 |         |・・ .鹿 |
     ゙、::::::::::::ノ         人.._,,,ノ      ι.・,,_,ノ
      U"U           U"U         U"U

49 :43:02/11/14 23:28
    /|| ミ
   / ::::|| ミ
 /:::::::::::||
 |:::::::::::::::|| ̄ ̄ ̄ ̄||
 |:::::::::::::::||│ /  ||
 |:::::::::::::::|| ̄\   ガチャッ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |:::::::::::::::||゚ ∀゚)─ ||  < クソスレ停止スイッチオン!をやっていいですか?
 |:::::::::::::::||_/    ||    \______________________
 |:::::::::::::::||│ \   ||
 |:::::::::::::::||∧ ∧∩ ||
 |:::::::::::::::|| ゚∀゚)/  .||
 |:::::::::::::::||∧ ∧∩ ||
 |:::::::::::::::|| ゚∀゚)/ .||
 |:::::::::::::::||    〈  .||
 |:::::::::::::::||,,/\」  .||
 \:::::::::::|| ̄ ̄ ̄ ̄
   \ ::::|| 彡
    \|| 彡        \ │ /
                 / ̄\  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< 停止スイッチ
                 \_/  \_______
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< オン!
. クソスレ〜〜〜! >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」
               ̄     / /
                    "

50 :デフォルトの名無しさん:02/11/14 23:28






























                                                                               


51 :デフォルトの名無しさん:02/11/14 23:29
Kitty が2匹ほどいるな

52 :デフォルトの名無しさん:02/11/14 23:29
もうええかげんにせえよ。

53 :デフォルトの名無しさん:02/11/14 23:30
アクセス禁止くらいたい奴が 1 人いるらしい

54 :デフォルトの名無しさん:02/11/14 23:30
>>1
もうええかげんに糞スレ乱立するのはやめろよ

55 :デフォルトの名無しさん:02/11/14 23:31
アクセス禁止くらいたい奴がいるらしいな

56 :デフォルトの名無しさん:02/11/14 23:30
>>52
そういいながらあげんなよ。

57 :デフォルトの名無しさん:02/11/14 23:32
あっちのスレの荒らしは正当化して、こっちを荒らしているやつには悪金か(ワラ

58 :デフォルトの名無しさん:02/11/14 23:32
>>53 >>55
やれるもんならやってみろよ(藁

59 :デフォルトの名無しさん:02/11/14 23:32
だれか望みを適えてやれよ。
削除理由は・・・

60 :デフォルトの名無しさん:02/11/14 23:32
あっちのスレは立てるタイミングからして糞だろ。

61 :デフォルトの名無しさん:02/11/14 23:34
既に次スレがあるのに新たに立てた>>1が糞

62 :デフォルトの名無しさん:02/11/14 23:33
「あっちのスレ」はそもそも板荒らし。

63 :デフォルトの名無しさん:02/11/14 23:36
>>1はよほど自分でスレッドを立ててみたかったんだろうか・・・

64 :デフォルトの名無しさん:02/11/14 23:35
main関数を他から呼ぶ場合ってあるんですか?

void hoge(void)
{
int n;
n = main();
}

みたく。

65 :デフォルトの名無しさん:02/11/14 23:38
>>61を言いたいがために早くスレを立てたあっちの>>1

66 :デフォルトの名無しさん:02/11/14 23:38
>>64
ない。
もし呼んだら何か手を打たないと終わらないかスタックがあふれるぞ。

67 :デフォルトの名無しさん:02/11/14 23:38
>>64
呼ぶことを許しているコンパイラは多いが、規格では禁止されている。

68 :デフォルトの名無しさん:02/11/14 23:38
           ☆ シャットダウン中・・・ ☆
┌──────────────────────―─┐
│                                    |
│                                    |
│                /■\                    |
│               (´∀`∩)                   |
│               (つ  丿                |
│                ( ヽノ                    |
│                し(_)                |
│                                    |
│             Now Onigiring. ...               |
│                                    |
│                                    |
│         スレッドを終了しています。.          |
│         しばらくおにぎりでお待ちください。        |
│                                    |
└───────────────────────―┘
    シャットダウンの途中でエラーが発生した場合は、
      「無視(I)」 を選択して続行してください。



      「無視(I)」 を選択して続行してください。

69 :デフォルトの名無しさん:02/11/14 23:39
>>67
禁止しているのはC++じゃない?

70 :デフォルトの名無しさん:02/11/14 23:39
>>67
たしか禁止してるのはC++だったような・・・

71 :デフォルトの名無しさん:02/11/14 23:41
だとしたらmainがint型を返す意味ってあるんでしょうか?
いつも0しか返したことないんですけど…

72 :デフォルトの名無しさん:02/11/14 23:41
>>71
エラーのときは 0 以外を返したほうがよいね

73 :デフォルトの名無しさん:02/11/14 23:43
>>71
OSが受け取るから、意味があるかどうかは環境によるんじゃないかな。よくわからんが。
でもmainの型はintと決まっているからintを返すべき。

74 :デフォルトの名無しさん:02/11/14 23:43
>>61
だからあっちは次スレじゃないって。
いつできてんのよ。みてみろヴぉけ

75 :デフォルトの名無しさん:02/11/14 23:43
>>72
int n = main();
とかできるんだったらエラーの種類によって違う値を返すのはわかるんですけど
そうじゃないのに値を返す意味があるのかなーと

76 :デフォルトの名無しさん:02/11/14 23:44
>>74
なんて気にしてるのはお前だけ。

77 :デフォルトの名無しさん:02/11/14 23:45
>>75
システムに返すから。

78 :デフォルトの名無しさん:02/11/14 23:46
>>75
規格で決まってるから。それが全てだ。
0は正常終了、1は異常終了を意味する。
これだけ覚えとけば十分。
void main()なんて書き方は絶対間違ってる

79 :デフォルトの名無しさん:02/11/14 23:47
似たような質問で、exit(0)の引数はエラーが重大になるほど大きな値を入れるように
聞いたんですけど、やっぱりこれも自分じゃその引数の値によって処理を変えられるわけじゃ
ないですよね。
だからexitの引数自体もあんまり必要性がわからないです。

80 :67:02/11/14 23:48
>>69-70
確認したらそうだった。スマソ。

・・・C++ 知ってる人は回答しない方がいいのかなあ。

81 :デフォルトの名無しさん:02/11/14 23:48
>>80
CとC++の違いを把握してる人は回答してもいいのでは

82 :デフォルトの名無しさん:02/11/14 23:49
>>79
だ・か・ら。
main() のリターンコードや exit() の引数は、そのプログラムが使うんじゃなくて、
そのプログラムを呼び出したシェルが使うんだよ。
プログラムが正常終了したのかどうかとか。

83 :デフォルトの名無しさん:02/11/14 23:50
>>79
バッチファイルとかシェルスクリプトとかメイクファイルとか書く人が値によって処理を
かえるの!

84 :デフォルトの名無しさん:02/11/14 23:51
オレも訊きたいけど、緊急脱出するとき
return(1);と
exit(1)だったらどっちがいい?

85 :デフォルトの名無しさん:02/11/14 23:51
>>82
てことはmainもexitも0かそれ以外を返せばいいだけで、エラーの重大度によって
exitの引数を変えても意味は無いんですか?

86 :デフォルトの名無しさん:02/11/14 23:52
>>84
exit

87 :デフォルトの名無しさん:02/11/14 23:52
>>84
とりあえずreturn 1;に括弧はいらないと思う。

88 :デフォルトの名無しさん:02/11/14 23:52
>>84
時と場合によるだろ。
main以外ではreturnとexitじゃ効果が変わるし。

89 :デフォルトの名無しさん:02/11/14 23:54
>>87
オレはつけるよ。癖でさ。
なんか見やすい。ってかかわんねーか

90 :デフォルトの名無しさん:02/11/14 23:54
>>88
どういうふうに?

91 :デフォルトの名無しさん:02/11/14 23:54
>>84
ただちにプログラムが終了するなら return でもいいけど、exit() が望ましい。

>>85
意味あるかどうか無いかはプログラムによる。
外側に、単に正常終了か異常終了かを伝えたいだけならそれでもいいし。
もっといろいろな場合分けをしたい場合はそれに応じたコードを返す必要がある。
普通に関数を作って、エラーコードを返すような場合と同じ。

92 :デフォルトの名無しさん:02/11/14 23:55
>>90
main以外でreturnしてもexitのようにプログラムが終了したりしないだろ。

93 :デフォルトの名無しさん:02/11/14 23:55
>>89
もれはむしろ見にくいなぁ
まあコーディングスタイルの話はやめとこ

94 :デフォルトの名無しさん:02/11/14 23:56
>>92
そりゃそうだw
逝ってきます

95 :デフォルトの名無しさん:02/11/14 23:57
return(1)ってやる奴ってint i=(1);って書いてるのか?

96 :デフォルトの名無しさん:02/11/14 23:57
>>93

俺的にはあとからソースをGrepかけるときとかに
正規表現で引っ掛けやすいからかっこ付ける派。

97 :デフォルトの名無しさん:02/11/14 23:57
>>89
漏れも、昔は付けてた。
でも一旦裸にしたら、それが快感になった。

98 :デフォルトの名無しさん:02/11/14 23:58
>>90
おいおいmain以外の関数書いたことないのか・・・


99 :デフォルトの名無しさん:02/11/14 23:59
>>95
=のあとの括弧は、オレは後で必要になったときつける。
でもreturnみたいに関数っぽいと、癖で()ってやっちゃって
消すのめんどいから「←」をポチッっとな

100 :デフォルトの名無しさん:02/11/15 00:00
>>98
そういう人もいる。
なんせ質問すれだから・・・

上級スレってないんかああ


101 :デフォルトの名無しさん:02/11/15 00:00
100

102 :デフォルトの名無しさん:02/11/15 00:00
return のどこが関数っぽいのやら。

103 :デフォルトの名無しさん:02/11/15 00:02
>>102
関数っぽいじゃん
文字数もprintfとかと同じくらいだし。
どんなソースでも使うから。変数っぽくはねーだろ

104 :デフォルトの名無しさん:02/11/15 00:03
>>103
あなたの辞書に、変数と関数の他にキーワードという単語を追加してください。

105 :デフォルトの名無しさん:02/11/15 00:03
>>91
その「場合分け」は自分がするのわけじゃないんですよね?

106 :デフォルトの名無しさん:02/11/15 00:04
そのうち、continueとかbreakにも()つけそうな予感。

107 :デフォルトの名無しさん:02/11/15 00:05
return(0);
return(hoge());
return(foo ? 0 : 1);

↑すべて無駄・アホ。どこが見やすいのやら。

108 :デフォルトの名無しさん:02/11/15 00:06
というか付けようが付けまいがたいしてかわんねーよ
いちいち突っ込んだりするからこんな事なるんだろ
お前ら大人になれよ

109 :デフォルトの名無しさん:02/11/15 00:08
>>108
そういう君は、
a=(b+c);とかを見ても何も言わないんだ。
偉いね。

110 :デフォルトの名無しさん:02/11/15 00:08
>>108
美意識を持て。

111 :デフォルトの名無しさん:02/11/15 00:07
>>105
「自分」 が 「プログラム」 という意味ならそれで正しい。
ただし、そのプログラムを呼び出すシェルスクリプトもあなたが書くなら
間違っている。
つまり、シェルスクリプトは (必要であれば) プログラムのエラーコードを
受け取り、解釈して動作を変えなければいけない。

112 :デフォルトの名無しさん:02/11/15 00:08
>>108
わざわざあげるなんてよっぽど必死なんですね(ワラ

113 :デフォルトの名無しさん:02/11/15 00:10
てめぇらC FAQ 17章 スタイルの1を読んでください。


114 :デフォルトの名無しさん:02/11/15 00:09
>>105
「自分」 が 「プログラム」 という意味ならそれで正しい。
ただし、そのプログラムを呼び出すシェルスクリプトもあなたが書くなら
間違っている。
つまり、シェルスクリプトは (必要であれば) プログラムのエラーコードを
受け取り、解釈して動作を変えなければいけない。


つーか、うまく書き込みできねーYO・・・

115 :デフォルトの名無しさん:02/11/15 00:11
>>108
自分の意見が通らないからって勝手に人を子供扱いして自分を保ったりしないで、
もっと大人になれよ。

116 :デフォルトの名無しさん:02/11/15 00:11
なんか今日おかしいね。>>111の時間がずれてる

117 :デフォルトの名無しさん:02/11/15 00:10
そろそろ関数適用の()と優先順位を変える()が一緒なのが悪い論争だろうか。

118 :デフォルトの名無しさん:02/11/15 00:13
>>117
キャストも加えてくれ。

119 :デフォルトの名無しさん:02/11/15 00:13
時が逆流してるな

120 :デフォルトの名無しさん:02/11/15 00:13
>>111
おー、なるほど。ありがとうございます。

121 :デフォルトの名無しさん:02/11/15 00:24
てこたぁ俺が今までexitの引数をいろいろ変えてたのは無意味だったわけか・・・

122 :デフォルトの名無しさん:02/11/15 00:25
>>121
受け側が全然無視してる場合はそうだね。
特に Windows でプログラムを書く場合においては、デバッグ時に終了理由を
確認する以外に用途が無い。

123 :デフォルトの名無しさん:02/11/15 00:27
シェルスクリプトやバッチ書いてみりゃありがたみがわかるってもんよ

124 :デフォルトの名無しさん:02/11/15 00:49
文字列の終端文字が\0であることは保証されていますか?

125 :デフォルトの名無しさん:02/11/15 00:53
終端文字が\0でないのってあったっけ?

126 :デフォルトの名無しさん:02/11/15 00:52
>>124
されてます。

127 :デフォルトの名無しさん:02/11/15 00:56
>>126
strncpy()

128 :デフォルトの名無しさん:02/11/15 00:57
>>127
そういう意味で言ってるんじゃないんだが...

129 :デフォルトの名無しさん:02/11/15 00:56
いや、保証するしないの話じゃないと思うが。

130 :デフォルトの名無しさん:02/11/15 00:57
保証はされてないだろ。

131 :デフォルトの名無しさん:02/11/15 00:58
>>130
されてるよ。

132 :デフォルトの名無しさん:02/11/15 00:58
定義の問題かな。\0終端されてないものは文字列とは言わない。

133 :デフォルトの名無しさん:02/11/15 01:00
文字列「定数」なら終端は'\0'だし、
文字列を扱うライブラリ関数は終端に'\0'を入れる慣習を前提としているが、
たんなる文字配列のどこかに'\0'が入っているという保証はない。

134 :デフォルトの名無しさん:02/11/15 01:03
文字列の管理方法によってどうしでも変わるだろ。
例えば先頭 2 bytes に長さを格納して、終端文字なんかつけないやり方だってある。
あとこれは稀だが、終端文字が全 bit On ってな場合もある。
そもそも、<string.h> のライブラリを使うにしたって、文字列の終端文字が '\0'
であることが保証されている、じゃなくて、使う側が保証しなくちゃいけない。

135 :デフォルトの名無しさん:02/11/15 01:04
124の質問があいまいだな。
>>133が正しい

136 :デフォルトの名無しさん:02/11/15 01:06
C言語には「文字列」はない。
charの配列を\0で区切ることで、
それっぽいことを実現しようと
している。

んじゃなかったですか?

137 :デフォルトの名無しさん:02/11/15 01:07
だから、文字列の終端を表す文字が '\0'であることが
規格で保証されているか? っていう話だろ。
だったら保証されてる。

138 :デフォルトの名無しさん:02/11/15 01:08
どこにそんな事が書いてある?

文字列リテラルの終端文字が\0であることは保証されている、なら正しいが。

139 :デフォルトの名無しさん:02/11/15 01:10
だから「文字列」という言葉の捉え方次第だろ。
一般的な意味合いにとるか、Cの標準文字列操作関数がサポートしている
データ形式に限定するか。

140 :デフォルトの名無しさん:02/11/15 01:13
>>137
文字列といえば文字列リテラルのことだと思ってる?

>>138
その通り。

141 :デフォルトの名無しさん:02/11/15 01:14
>>139
つまりこう言いたいのか?
「 '\0'で終端された文字の列を文字列と呼ぶ。
したがって、定義より文字列の終端は常に'\0'である。」

それを「保証されてる」と言ったら誤解しまくるだろー。


142 :デフォルトの名無しさん:02/11/15 01:14
>>139
>>134 の下 2 行を嫁さんにしろ。

143 :デフォルトの名無しさん:02/11/15 01:17
今後このスレでは「文字列」という言葉は使わずに、文字列リテラルか文字配列を使うこと。

144 :136:02/11/15 01:17
うーむ、やはりC言語は難しいですね。
137のような認識だと、バッファオーバーフローとか
頻発するかも。

>>141
>文字の列
ダサい表現ですね (w

145 :デフォルトの名無しさん:02/11/15 01:19
>>143
#include <string.h>
にプロトタイプが入ってるのは「文字列リテラルを扱う関数」ですか、
「文字配列を扱う関数」ですか?

俺は「文字列を扱う関数」だと思ってたよ。



146 :デフォルトの名無しさん:02/11/15 01:20
>>144
ハァ?
列(sequence)ってのは普通の計算機用語で、
ダサいも何もないが…

まあ、厨は見たことないかもな。

147 :デフォルトの名無しさん:02/11/15 01:20
>>141,142
そりゃどんなものでも保証する側は存在するでしょ。
でもそういうのを保証されてるというんじゃないのかな。
ま、水掛け論にしかならないのでもうやめるけど。

148 :デフォルトの名無しさん:02/11/15 01:21
>>145
文字列リテラルと文字配列を扱う関数

149 :デフォルトの名無しさん:02/11/15 01:21
>>145
文字ポインタを扱う関数

150 :デフォルトの名無しさん:02/11/15 01:22
>>144
VB厨は黙る!

151 :デフォルトの名無しさん:02/11/15 01:23
規格にはstrcpyやstrcmpは文字列(string)を受け取るとかいてあるよ。
もちろん文字列リテラルに限った話じゃない。

152 :144:02/11/15 01:27
えー、「文字の列」って言葉として不自然な
感じを受けませんか?
計算機用語としてどうかは知りませんけど。

153 :デフォルトの名無しさん:02/11/15 01:28
いや話がかみ合わなくなるから便宜的に明確に区別しようという話であって・・・
どっちでもいい話題なら区別しなくていい。

154 :デフォルトの名無しさん:02/11/15 01:29
つーか、'\0' で終端がつけられたデータ列を文字列と呼ぶなら、やっぱり
保証するしないの話じゃないと思われ。
ペンキで赤く塗ったものは赤い事が保証されていますかと訊ねるようなものだ。

155 :デフォルトの名無しさん:02/11/15 01:33
あー、つまりこういうので合意できるんでないか。

Cの標準では、文字列をあらわすとき、終端に'\0'を入れる約束になっている。
文字列リテラルは必ずそうなっているし、文字列を扱う関数は
入力がその約束を守っていることを前提としている。

しかし、もちろん文字列を扱っているつもりなのに'\0'で正しく終端されて
いない場合もありうる。
自分で文字列をいじるプログラマは、自分でその約束を守らなければならない。

したがって元々の質問 >>124 は曖昧だ。
「文字列を受け取る関数では、'\0'で終端されていると思ってよいですか?」なら答えはYes。
「文字列リテラルの終端は'\0'と保証されていますか?」もYes。
「文字列(ということになっている)配列は、必ず終端に'\0'が入っていますか」なら、
それを保証するのはプログラマの責任。

156 :デフォルトの名無しさん:02/11/15 01:34
さあ!集まった!集まったああ!
Cスレ名物の論争だよ!!
ほらそこの兄ちゃん!
黙ってみてるだけじゃなくて、あんたも参加していってよ!
さあ、さあ本日のメインイベント!
「文字列ってなんだ( ゚Д゚)ゴルァ!」
の始まりだよおおお

157 :デフォルトの名無しさん:02/11/15 01:35
>>152
計算機用語としてはまったく不自然でない。
計算機用語がそもそも不自然だというならそうかも知れんが、
ここで使うのはまったく問題ない。

158 :135:02/11/15 01:36
つまりオレが正しかったのか・・・

知ったかなオレ(・∀・)イイ!

159 :137:02/11/15 01:37
だから、文字列リテラルでもライブラリでもいいよ別に。

論点はそこじゃなくて、俺が言ったことを別の言い方で
表現すると、そのCの規格内で定義されている「ナル文字」
が '\0'以外の場合があり得るかって聞いてんだろ?
って言ってるんだよ。

お前ら意味を厳密に考えすぎなんだよ。
質問者の意図とレベルをちったあ考えて合わせてやれよ。

160 :デフォルトの名無しさん:02/11/15 01:37
>>154
あんたは変数を「既約分数」と名づけたら、
プログラマが何もしなくても誰かがずっと既約分数であることを
保証してくれるとでも思ってるのか?

161 :デフォルトの名無しさん:02/11/15 01:40
ハァ?

162 :デフォルトの名無しさん:02/11/15 01:40
160 の逝っている事をどう受けとっていいかわかんねー

163 :デフォルトの名無しさん:02/11/15 01:41
>>154
たとえが悪いな。ペンキにしろよ。

おまえが赤く塗った壁が風化して色が落ちていっても、お前は赤だといい続ける
他人が見ればどうみても黒いのに・・・


164 :デフォルトの名無しさん:02/11/15 01:39
>>137
曖昧な質問を君がそう解釈したのは分った。
なら、「こういう解釈だとすればこうだ」と答えればよい。
単に「保証されてる」じゃ誤解するに決まってるだろ。

165 :デフォルトの名無しさん:02/11/15 01:41
>>159
質問者は論争を呼ぶためにわざと曖昧な質問にしてるんだから、
乗ってやらなきゃ悪いだろ(藁

166 :154:02/11/15 01:42
   ||
 ∧||∧
(  ⌒ ヽ トゥトゥトゥマシェーリー
 ∪ 。ノ    トゥトゥトゥマシェーリー
  ∪∪

漏れそんなに変な事言ったかなあ・・・??

167 :デフォルトの名無しさん:02/11/15 01:43
お前らが目覚ますような名言があるんだよ。

なせばなる!

ナル文字がどうとかじゃねーんだよ。
気合でなんとかなるんだよ。
それが男気ってもんだよ。
オレはそう思うよ。


168 :137:02/11/15 01:43
>>164
確かにあんたのいう通りだな。

169 :152:02/11/15 01:42
>>157
そうですか。
「配列」なら違和感なく受け入れられるんですが・・・。
まあ、「配列」ってのも知らない人には変な言葉でしょうしね。
141さん、すいませんでした。


てか、ネタのつもりだったんですが。

170 :デフォルトの名無しさん:02/11/15 01:44
叩かれまくりたい 167 (COBOLer) の登場

171 :デフォルトの名無しさん:02/11/15 01:43
せっかく155でまとまったと思ったら、また話が拡散して
きましたか?

172 :デフォルトの名無しさん:02/11/15 01:44
>>162
char string[] = "foo";
今後、書き換えていっても、stringが常に'\0'で終端されていることが
「保証」されてるのか?

173 :デフォルトの名無しさん:02/11/15 01:45
結局誰が一番的をえてるの?

174 :デフォルトの名無しさん:02/11/15 01:45
vectorもsequenceもlistもstringも
「一列に並んだもの」という意味だね。
…いや、ただそれだけ。

175 :デフォルトの名無しさん:02/11/15 01:44
>>165
反論できないでその言い訳カコワルイ

176 :デフォルトの名無しさん:02/11/15 01:46
>>172
書きかえれないですが何か?

177 :デフォルトの名無しさん:02/11/15 01:47
>>176
ププ)
ネタ?

178 :デフォルトの名無しさん:02/11/15 01:47
>>173
俺は的は要らない。

179 :デフォルトの名無しさん:02/11/15 01:48
>>176
え?constついていないよ?

180 :デフォルトの名無しさん:02/11/15 01:48
>>171
いや、あとは論争好きのやつらが楽しんでるだけ。
まあ、俺は >>155 で特に不満はないよ。みんなそうじゃない?

181 :デフォルトの名無しさん:02/11/15 01:48
>>176
・・・・・・えぇ?!

182 :デフォルトの名無しさん:02/11/15 01:48
>>176 へ怒涛の突っ込み

183 :デフォルトの名無しさん:02/11/15 01:49
>>176
ポインタじゃないから書き換えられる。
stringがポインタの場合は未定義

184 :デフォルトの名無しさん:02/11/15 01:49
データa,bをファイルから入力し、
四則演算の結果s,d,p,qをa,bと共にファイルに出力する
のって・・どうするの?

185 :デフォルトの名無しさん:02/11/15 01:49
>>176
え?

186 :デフォルトの名無しさん:02/11/15 01:49
文字列の終わりは$だろ。

187 :デフォルトの名無しさん:02/11/15 01:50
わざわざ「何か?」などと書かなくてもつっこみ放題

188 :デフォルトの名無しさん:02/11/15 01:50
なんだよ、収束しちまうよ。
もっと煽ろうぜ(w

189 :デフォルトの名無しさん:02/11/15 01:51
質問 キターーー!!

190 :デフォルトの名無しさん:02/11/15 01:51
>>184
読み込んだものをsscanfやstrto*系関数を使って数値にしたら?

191 :デフォルトの名無しさん:02/11/15 01:49
char *string = "foo";

192 :デフォルトの名無しさん:02/11/15 01:51
>>184
どうするのってどこからわかんねーのよ。
ファイル操作か?四則演算か!?
ファイル操作がなきゃできるのか?

193 :デフォルトの名無しさん:02/11/15 01:51
   ||
 ∧||∧
(  ⌒ ヽ トゥトゥトゥマシェーリー
 ∪ 。ノ    トゥトゥトゥマシェーリー
  ∪∪

>>172
「'\0' で終端がつけられたデータ列を文字列と呼ぶ」 という前提がある限り、
それを壊すような操作をしたらそれは 「文字列ではなくなる」 という事だと
思うんだけど・・・。
そういう話じゃないなら、いいです。

194 :デフォルトの名無しさん:02/11/15 01:52
宿題丸投げの予感

195 :デフォルトの名無しさん:02/11/15 01:52
>>192
ぜんぶデス
すみません

196 :デフォルトの名無しさん:02/11/15 01:52
おいみんな!>>184が質問だってよ!
本領はっきだぜ!

197 :デフォルトの名無しさん:02/11/15 01:51
>>184
カコイイ

198 :デフォルトの名無しさん:02/11/15 01:52
また曖昧な質問だな…
誰かちゃんと仕様をお客さんにインタビューしてくれ(w

199 :デフォルトの名無しさん:02/11/15 01:52
>>195
もしかしてファイル入出力の方法がわからない?
それは自分で勉強して・・・

200 :デフォルトの名無しさん:02/11/15 01:53
>>192はネタだという事が判明しますた。


201 :デフォルトの名無しさん:02/11/15 01:52
また曖昧な質問がきた。
これで飯3杯は食える。

202 :200:02/11/15 01:54
間違った>>184

203 :デフォルトの名無しさん:02/11/15 01:54
面白いように釣れる(w

204 :デフォルトの名無しさん:02/11/15 01:55
つまんないなー。やっぱ論争にかぎるぜ!
っていうかたぶん質問系は宿題スレにいってるYO!

205 :デフォルトの名無しさん:02/11/15 01:55
本質の議論が終わって、水掛け論になってもう進まなくなったときには、
次の話題を振るのが一番だね。

206 :デフォルトの名無しさん:02/11/15 01:55
>>203
そうですか。面白いようにですか。

207 :デフォルトの名無しさん:02/11/15 01:55
>>203
ハァ?釣れる?バカかおまえ。漏れたちはいつでも何事にも全力投球だ。

208 :デフォルトの名無しさん:02/11/15 01:56
宿題丸投げOKにしようぜ。

209 :デフォルトの名無しさん:02/11/15 01:56
>>176えぇっと…、バカ?

210 :デフォルトの名無しさん:02/11/15 01:57
>>203
よーし、じゃあまずファイルに入っているデータの
フォーマットを詳細に教えれ。

211 :デフォルトの名無しさん:02/11/15 01:57
>>208
( ゚д゚) ポカーン

212 :デフォルトの名無しさん:02/11/15 01:58
>>178
ニホンゴガンバテクダサイ。


213 :デフォルトの名無しさん:02/11/15 01:58
>>210
俺はもう寝るから勝手にやってくれよ(w

214 :デフォルトの名無しさん:02/11/15 01:59
>>182
バカ2号ハケーン!


215 :デフォルトの名無しさん:02/11/15 01:59
     ___
    /     \
   /   ∧ ∧ \  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |     ・ ・   | < おまいら ひま だな
  |     )●(  |  \__________
  \     ー   ノ
    \____/

216 :デフォルトの名無しさん:02/11/15 02:01
  >>215
     ___
    /     \
   /   ∧ ∧ \  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |     ・ ・   | < おまえも ひま だな
  |     )●(  |  \__________
  \     ー   ノ
    \____/

217 :デフォルトの名無しさん:02/11/15 02:01
論争厨を黙らせるには怒濤の質問が一番

218 :デフォルトの名無しさん:02/11/15 02:00
じゃあCスレのキャッチコピーは

  「漏れたちはいつでも何事にも全力投球!
                    論争もありまっせ!」

219 :デフォルトの名無しさん:02/11/15 02:02
  >>216
     ___
    /     \
   /   ∧ ∧ \  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |     ・ ・   | < おれも ひま だぞ
  |     )●(  |  \__________
  \     ー   ノ
    \____/

220 :デフォルトの名無しさん:02/11/15 02:01
>>215
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエモナー
  (    )  \_____
  | | |
  (__)_)

221 :デフォルトの名無しさん:02/11/15 02:02
>>216 
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエモナー
  (    )  \_____
  | | |
  (__)_)

222 :デフォルトの名無しさん:02/11/15 02:03
>>183
ネタはもう結構。


223 :182:02/11/15 02:03
データa,bをファイルから入力し、
四則演算の結果s,d,p,qをa,bと共にファイルに出力する
のって・・どうするの?

マジネタです!教えてください。おながいします!

224 :デフォルトの名無しさん:02/11/15 02:03
>>217
そうやって論争に負けたからって論争自体を潰そうとしてるの見え見え。

225 :デフォルトの名無しさん:02/11/15 02:02

     ___
    /     \
   /   ∧ ∧ \  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |     ・ ・   | < 来週またロボトミー手術をうけるんだ
  |     )●(  |  \__________
  \     ー   ノ
    \____/




226 :デフォルトの名無しさん:02/11/15 02:04
お前ら!そんなヒマあったら感動しろ!

#include <stdio.h>
int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};void k(){if(m[p]==0)
for(i=0;i<8;i++){for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;if(c&&m[v]==t){a+=c;v=
p;if(d)do m[v]=t,v+=r[i];while(m[v]!=t);}}}char*h="・○●\n";int main(){for(i=
1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;for(;;a=d=0){for(p=9;p<82;++
p)k(),printf("%.2s",&h[m[p]*2]);if(a)for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d"
,&p,&i),p+=i*9):++p;else if(s)s=0,printf("pass");else break;t=3-t;}return 0;}



227 :デフォルトの名無しさん:02/11/15 02:04
>>223
よくわからんのじゃ・・・

228 :デフォルトの名無しさん:02/11/15 02:05
ダミーすれのレス数超えたYO!
みんなおめでどー

229 :182:02/11/15 02:05
>>227
ネタはほっとけよ

230 :デフォルトの名無しさん:02/11/15 02:04
  ∧_∧   
 ( ´∀`)< ぬるぽ

231 :227:02/11/15 02:05
何がわからんのかわからん。

232 :デフォルトの名無しさん:02/11/15 02:06
>>223
答えは >>1 に書いてある。

233 :デフォルトの名無しさん:02/11/15 02:06
>>224勝ち負けでしか判断できないのは少年漫画の読み過ぎです。厨房板に行って下さい。

234 :デフォルトの名無しさん:02/11/15 02:07
>>226
うげ。すごいでつね

235 :デフォルトの名無しさん:02/11/15 02:08
流れ的には、
1,ファイルに保存された数値a,bを文字列として読む
2,文字列を数値に変換してa,bに代入
3,変数s,d,p,qに演算して代入
4,ファイルに出力
でいいよな?

236 :デフォルトの名無しさん:02/11/15 02:09
>>235
ファイルのフォーマットがわからないとダメなんだよな。

237 :デフォルトの名無しさん:02/11/15 02:09
>>223
…ほんとにネタじゃないんだろうな。
じゃ聞くが、
・入力ファイルと出力ファイルは別のファイルでよいんだな?
・ファイル名は決まっているのか、実行時に与えられるのか?
与えられるとしたらどうやって?
・入力ファイルに入っている数値は整数か、実数か?
文字列として入っているのか、バイナリで入っているのか?
・出力の形式も同じか?

238 :デフォルトの名無しさん:02/11/15 02:09
>>233
ただの煽りはほっとけよ。さっきの論争では別に勝ちも負けもなかったし。

239 :デフォルトの名無しさん:02/11/15 02:09
おじちゃんもう待ちきれないよ。
#include <stdio.h>
int main(void)
{
int a,b,s,d,p,q;
FILE *fp = fopen("釣り","rb");
a = fgetc(fp); b = fgetc(fp);
fclose(fp);
s=a+b; d=a-b; p=a*b; q=a/b;
fp = fopen("釣られ","wb");
fputc(fp,a); fputc(fp,b);
fputc(fp,s); fputc(fp,d); fputc(fp,p); fputc(fp,q);
fclose(fp);
return 0;
}
バイナリ符号無し1バイト単位。エラーチェックなし。
これで上等だろ。

240 :デフォルトの名無しさん:02/11/15 02:09
細かいことにこだわるのは、
プログラマーに必要なことでしょう。
みなさん頑張って下さい。

241 :デフォルトの名無しさん:02/11/15 02:09
>>233
論争に勝ち負けというのは存在します。少年漫画とは関係ありません。
少年漫画という例えが出るほうがガキです。厨房板に逝って下さい。

242 :デフォルトの名無しさん:02/11/15 02:11
>>235
fscanfじゃだめなの?

243 :デフォルトの名無しさん:02/11/15 02:11
アフォ煽り放置

244 :デフォルトの名無しさん:02/11/15 02:11
>>241
>>233
どっちもガキ。こだわりすぎ。さっさと寝ろハゲ

245 :デフォルトの名無しさん:02/11/15 02:12
漏れが風呂入ってる間に100レスですか

246 :デフォルトの名無しさん:02/11/15 02:12
>>226
今試しましたが、漏れが勝ちますた。

247 :デフォルトの名無しさん:02/11/15 02:12
>ファイルに保存された数値a,bを文字列として読む
これもちょっと微妙な表現・・・。


248 :デフォルトの名無しさん:02/11/15 02:13
#include <stdio.h>
int main(void)
{
int a,b,s,d,p,q;
scanf("%d %d", &a, &b);
s=a+b; d=a-b; p=a*b; q=a/b;
printf("%d %d %d %d %d %d", a, b, c, d, e, f);
return 0;
}

249 :デフォルトの名無しさん:02/11/15 02:13
お前等いいからコードで話せ。

250 :デフォルトの名無しさん:02/11/15 02:12
>>244
ああそうだよ。14歳のガキだよ。
まだ禿てねーよ馬鹿

251 :デフォルトの名無しさん:02/11/15 02:14
>>248
それをシェルでリダイレクトしろってか?

252 :デフォルトの名無しさん:02/11/15 02:14
>>250
いや、寝ろって。

253 :デフォルトの名無しさん:02/11/15 02:15
>>250
俺が14のころはちんぽズル剥けだったが。

254 :デフォルトの名無しさん:02/11/15 02:15
どうでもいいけど、ネタでageんな
age

255 :デフォルトの名無しさん:02/11/15 02:15
249 名前:デフォルトの名無しさん :02/11/15 02:13 ←ここ
お前等いいからコードで話せ。

250 名前:デフォルトの名無しさん :02/11/15 02:12 ←ここ


重いもんな

256 :デフォルトの名無しさん:02/11/15 02:17
>>248
コンパイルエラーが出ますた!

257 :184:02/11/15 02:17
>>248
直接入力ですよね、、それ。ファイル入出力です。

>>237
整数でその飯は言っているファイルが存在していてプログラム中に
ファイル名指定してあるものでOKです


258 :デフォルトの名無しさん:02/11/15 02:17
おまえら一番使うソートってなんですか?

259 :デフォルトの名無しさん:02/11/15 02:18
>>258
qsort使うからしらん(どう実装されているかなんてわからん)

260 :デフォルトの名無しさん:02/11/15 02:18
>>250
まだ剥けてねーよの間違いだろ。

261 :デフォルトの名無しさん:02/11/15 02:17
>>248
それじゃファイル入出力がない


262 :デフォルトの名無しさん:02/11/15 02:19
>>257
お前、見ただけで直接入力ってわかってんじゃねーか!
ホントは自分で書けるんだろが。

263 :184:02/11/15 02:20
>>239
ありがとうございますた。参考にさせていただきます。

264 :デフォルトの名無しさん:02/11/15 02:22
qsortってどうなってんの?
ソースきぼんぬ

265 :184:02/11/15 02:21
>>239
ありがとうございますた。参考にさせていただきます。

266 :デフォルトの名無しさん:02/11/15 02:22
>>262
scanf()が標準入力から位は
初心者でもわかるのかも。

267 :デフォルトの名無しさん:02/11/15 02:23
>>264
確かVC++6.0だと最初はクイックソートでやって、要素数が少なくなると他の方法に変えていたと思う。

268 :デフォルトの名無しさん:02/11/15 02:26
標準出力と標準エラーってどう違うんですか?
fprintfでstdoutとstderrを使ってもどちらも単にDOS窓に表示されるだけなんですけど。

269 :デフォルトの名無しさん:02/11/15 02:28
マジレス。
ヘッダファイルってどうやってみんの?
stdio.hとか開いてみても、
関数の中身がぜんぜんないよ!

270 :デフォルトの名無しさん:02/11/15 02:28
>>268
/* test.c */
#include <stdio.h>
int main()
{
printf("stdout\n");
fprintf(stderr,"stterr\n");
return 0;
}

これをコンパイルしてtest >test.txtとやってみな。

271 :デフォルトの名無しさん:02/11/15 02:28
hoge > foo


272 :デフォルトの名無しさん:02/11/15 02:29
>>268
実行結果をリダイレクトすればわかるかもね。

273 :デフォルトの名無しさん:02/11/15 02:30
>>264
サーチすればわらわら出てくる。

274 :デフォルトの名無しさん:02/11/15 02:30
>>269
ヘッダーファイルに関数は普通かかないから・・・
ライブラリのソースをもっているならそれを見て。

275 :デフォルトの名無しさん:02/11/15 02:30
>>241論争に勝ち負けが存在すると考える方がガキです。少年漫画に例えられてわざわざ反論する方がガキです。厨房板に行って下さい。

276 :デフォルトの名無しさん:02/11/15 02:31
>>269
関数の中身はライブラリにあるのでは?

277 :269:02/11/15 02:31
じゃあコンパイラはどうやって関数を認識してんの!?

278 :デフォルトの名無しさん:02/11/15 02:32
>>275
早く寝なさい。

279 :デフォルトの名無しさん:02/11/15 02:32
>>277
どうって?
ライブラリなら.oとか.objとか.libいうファイルでどこかにおいてあると思うけど。
あとはリンクするだけ。いちいちコンパイルしていたら効率が悪いからね。

280 :269:02/11/15 02:33
ライブラリ・・・
BCCだとある!?

281 :デフォルトの名無しさん:02/11/15 02:34
>>277
関数の「何」を認識するときの話?


282 :デフォルトの名無しさん:02/11/15 02:34
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>230
 (_フ彡        /


283 :デフォルトの名無しさん:02/11/15 02:34
>>280
もちろんある。

284 :デフォルトの名無しさん:02/11/15 02:35
>>270-272
268じゃないけど、勉強になりますた!

ここに厚く御礼申し上げます。

285 :デフォルトの名無しさん:02/11/15 02:35
>>280
おいおい
せめて>>279で挙げられてる拡張子のファイルを検索してみろよ

286 :デフォルトの名無しさん:02/11/15 02:35
>>280
BCCってフリーの奴?
もちろんあるけど、ソースはないと思う。

287 :269:02/11/15 02:35
見つからない・・・
あきらめますた

288 :デフォルトの名無しさん:02/11/15 02:35
誰か269に「コンパイル」「リンク」について
説明してあげてね。

289 :デフォルトの名無しさん:02/11/15 02:35
オブジェクトファイル。


290 :269:02/11/15 02:36
いや、なんかいろいろあったんですがね。
stdioとかの名前がついたものがないもんでね。
ちょっと怖くなってやまました

291 :デフォルトの名無しさん:02/11/15 02:37
>>278
眠れないので添い寝して下ちい。


292 :269:02/11/15 02:37
コンパイルとリンクはわかるYO!
コンパイルってソースを機械語に代えるもんでしょ?
リンクはコンパイルしたソースを集めて一つにするんでしょ?
何割あってる?

293 :デフォルトの名無しさん:02/11/15 02:38
>>290
libc.objかな?
VC++なら確かそうだったから。

294 :デフォルトの名無しさん:02/11/15 02:38
>>292
それがわかってて、どうして 277 のような疑問が出てくる?

295 :デフォルトの名無しさん:02/11/15 02:37
>>290
stdio.hはあるだロー
stdio.libなんてのは普通ないよ。


296 :デフォルトの名無しさん:02/11/15 02:38
>>287
bccならbccをインストールしたフォルダの下にLibフォルダがあると思うが

297 :デフォルトの名無しさん:02/11/15 02:39
>>292
イチローの出塁率よりは高い

298 :デフォルトの名無しさん:02/11/15 02:40
glibcでも見ろ。

299 :300:02/11/15 02:40
300げっと!

300 :デフォルトの名無しさん:02/11/15 02:40
>>292
おまえJPSだろ。

301 :デフォルトの名無しさん:02/11/15 02:40
>>292
んとね、漏れは直接ヘッダを参照してると思ったの。
実際はリンクする時に見てるってこと?よくわかんないけど。

>>295
stdio.hはあったけど、ソースなっしんぐ

302 :デフォルトの名無しさん:02/11/15 02:40
>>294
いや、詳細はわかってないんでしょう。

303 :293:02/11/15 02:40
BCC32にはねーな・・・
まあどのオブジェクトファイルにあるか分からなくてもあまり問題ない気もするけど。

見てもコンパイル済みじゃ俺にはわからん・・・

304 :JPS ◆M0LaMzf5rY :02/11/15 02:41
>>300
( ̄□ ̄;)!!
ばれてる・・・
でもマジレスです。

305 :デフォルトの名無しさん:02/11/15 02:41
>>301
だから、
***なぜソースが入ってると思ったんだ?***

306 :デフォルトの名無しさん:02/11/15 02:42
>>301
ヘッダファイルは多くのファイルで共有する部分(関数のプロトタイプとかマクロとか構造体定義とか)を集めたもの。


307 :デフォルトの名無しさん:02/11/15 02:42
>>304
やっぱりそうか…
そのDQNぶり、まちがいないとオモタYO!

308 :デフォルトの名無しさん:02/11/15 02:42
ソースの味がしたから

309 :JPS ◆M0LaMzf5rY :02/11/15 02:43
ちなみにこのスレの1もオレです。
ていうかね、qsortがあるんだったら、自分で実装するよりも
絶対効率いいよね!?それを考えるとアルゴリズム勉強する気がなくなる・・・

310 :デフォルトの名無しさん:02/11/15 02:42
>>305
いちいちソース参照してコンパイルしてリンクしてると思ったんじゃねーの。

311 :デフォルトの名無しさん:02/11/15 02:43
>>307
ワラタ

312 :デフォルトの名無しさん:02/11/15 02:44
>ちなみにこのスレの1もオレです。

…なんだか複雑な気分だ。
DQNの手下になったみたいな。

313 :デフォルトの名無しさん:02/11/15 02:44
>>1
>また、このスレは論争スレへのポインタでもある。
こんなくだらんコメント追加してあるからJPSだと思った。

314 :デフォルトの名無しさん:02/11/15 02:44
>>309
だからライブラリなんてものが存在するんだろうが。
それを自分で書こうとすることは勉強としてはよいことだと思う。

315 :デフォルトの名無しさん:02/11/15 02:45
>>309
ソートの効率は、必ずしも良くないことがある。
プログラム作る効率はいいんでしょうが・・・。

316 :デフォルトの名無しさん:02/11/15 02:45
>>314
うん。そうだ。えらいぞJPS。


317 :JPS ◆M0LaMzf5rY :02/11/15 02:45
オレはまだ始めて2ヶ月くらいでさー
ひたすらプログラム書いてきたけど
中身がどうなってるとかわかんないんだYO!

>>306
ヘッダファイルには関数のソースはないの?
たぶんドキュンな質問だろうけど、ヘッダファイルから直接includeしたほうが
効率いいきがする・・・

318 :デフォルトの名無しさん:02/11/15 02:45
>>290
$ locate stdio.hかファイル検索
コンパイルの過程でヘッダがインクルードされ関数のプロトタイプを参照できる様に
なる。
関数の実体は別のオブジェクトファイルに存在。
リンク時に個々のオブジェクトファイルのアドレスの解決が行なわれる。
ロードは実行ファイルをメモリに移して実行する。


319 :デフォルトの名無しさん:02/11/15 02:46
なるほど。
>>17 もこいつの仕業か。

320 :デフォルトの名無しさん:02/11/15 02:46
このスレは「厨房JPSを一人前のCプログラマに育てるスレ」になりますた。

321 :デフォルトの名無しさん:02/11/15 02:47
>>317
>279

322 :JPS ◆M0LaMzf5rY :02/11/15 02:47
>>318
むずかしくてわからんけど、リンクする時にはじめて
関数の中身がわかるってこと?

323 :デフォルトの名無しさん:02/11/15 02:48
>>317
だから、いちいちコンパイルしていたら効率が悪いでしょ。
それに、関数そのものをincludeしたらひとつのプロジェクト内に複数の同じ関数(の実体)が現れる可能性がでてくるでしょ。それって大丈夫なのか?

324 :デフォルトの名無しさん:02/11/15 02:48
http://pc3.2ch.net/test/read.cgi/tech/1037134356/218
これもおまえか?

325 :デフォルトの名無しさん:02/11/15 02:50
JPS氏はCOBOLやってました?
COBOLのINCLUDEって、そんな感じだったような。

326 :JPS ◆M0LaMzf5rY :02/11/15 02:50
>>324
それはちがうw

>>323
またよくわからんけど、コンパイルするのは大変なのか!?
リンクの方が高速なのか!?

327 :デフォルトの名無しさん:02/11/15 02:51
>>322
Cは関数単位でコンパイルすることは知っているよね?
同じ関数は一度コンパイルすれば修正したり環境を変えないかぎりはコンパイルし直さなくていいの。

328 :JPS ◆M0LaMzf5rY :02/11/15 02:51
>>325
オレは中学校くらいにおやじのBASICをちょっとやって、
それから5年間、プログラムから離れていました。
現在19さいでつ。

329 :デフォルトの名無しさん:02/11/15 02:51
>>326
リンクはどのみちやらなきゃならないだろ。

330 :デフォルトの名無しさん:02/11/15 02:52
>>327
関数単位?ソースファイル単位じゃなくて?

331 :デフォルトの名無しさん:02/11/15 02:52
>>326
コンパイル→リンク

リンク
じゃどう考えてもコンパイルの分前者が効率悪いだろ。

332 :デフォルトの名無しさん:02/11/15 02:52
>>330
ああそうだ。ごめん。
最小単位が関数だ。

333 :JPS ◆M0LaMzf5rY :02/11/15 02:53
>>327
うんと、その一度のコンパイルは、オブジェクトファイルの方でするの?
で、あとはまとめてリンク?

334 :デフォルトの名無しさん:02/11/15 02:54
>>333
コンパイルしてオブジェクトファイルを作成するの。


335 :デフォルトの名無しさん:02/11/15 02:54
つーかこの話、Cと直接関係あるのかね

336 :デフォルトの名無しさん:02/11/15 02:54
>>330
最小単位?


337 :デフォルトの名無しさん:02/11/15 02:54
JPSのスレになってしまったようなのでJPSが成長したころにまた来ます。

338 :デフォルトの名無しさん:02/11/15 02:55
>>336
ひとつの関数は複数のファイルに渡って書けないから。

表現が悪いかな・・・

339 :JPS ◆M0LaMzf5rY :02/11/15 02:55
>>334
(゚Д゚;)ハッ!
そういやtest.objとかできてるよね。
あれを他のprintfとか入ってるobjとリンクしてtest.exeをつくってるの!?

340 :デフォルトの名無しさん:02/11/15 02:56
JPS氏には
「エキスパートCプログラミング - 知られざるCの深層」
アスキー出版社
をお勧めします。


341 :デフォルトの名無しさん:02/11/15 02:56
>>339
そう。


342 :デフォルトの名無しさん:02/11/15 02:59
>>340
つーかここの住人はみんなそれ読むべき。
ほとんどの話題はその本の内容で解決するし。

343 :JPS ◆M0LaMzf5rY :02/11/15 02:59
キタ━(・∀・)━!!!!!
ちょっと分かった気がする。なるほどね。
そりゃ確かにいちいちコンパイルするはずないよねー。
なるほどー。
一応訊くけど、stdio.hってヘッダをあらかじめコンパイルしてxxx.objを作って
リンクの時に合わせるだけって感じ?

344 :デフォルトの名無しさん:02/11/15 03:00
>>340
その本を参照して来る奴を最近よく見かけるが同一人物?


345 :デフォルトの名無しさん:02/11/15 03:01
>>337
つまり二度と来るかボケ!ってこと?

346 :デフォルトの名無しさん:02/11/15 03:01
>>343
ヘッダーはコンパイルしないよ。
関数ごとにソースファイルをつくってコンパイルして、できあがった多数のオブジェクトファイルをアーカイブにしているものもある。

347 :JPS ◆M0LaMzf5rY :02/11/15 03:02
>>340
アマゾンいったけど、取り扱いしてないYO!
しかも確かそれは上級者むけじゃ・・・
オレはまだ前橋の「C言語ポインタ完全性は」も半分くらいだよ・・・


348 :340:02/11/15 03:03
>>344
いや、150にVB厨認定されたものですが・・・。

349 :JPS ◆M0LaMzf5rY :02/11/15 03:03
>>346
ん・・・。
じゃさ、xxx.objに関数の実態があるの?
そうだとしたらそれはどうやってつくったの?

350 :デフォルトの名無しさん:02/11/15 03:04
>>340
奴なら「プログラムはなぜ動くのか」程度でいいかも

351 :デフォルトの名無しさん:02/11/15 03:04
ヘッダファイル(インクルードファイル)に書いてあるものはいろいろあるが、
関数だけに話を絞るとだな、

たとえばmainから何かライブラリ関数を呼ぶとするだろ?
コンパイラは、関数の引数の型や返り値がわからないと
エラーチェックが出来ない。

それに、引数や返り値の型によって、どうやって受け渡すかが
違うこともある。(メモリに入れて渡すか、レジスタか、レジスタ
の種類など。)

それをコンパイラに教えるための宣言(プロトタイプ宣言)が
ヘッダに書いてある。

352 :デフォルトの名無しさん:02/11/15 03:02
>>343
微妙に違う。
ソースをコンパイルする時、コンパイラはどの関数が使えるのかを知らない。
それをコンパイラに教えるのがヘッダファイル。

353 :デフォルトの名無しさん:02/11/15 03:05
>>349
コンパイルだっつーの。
ソースで配られているものなら自分でインストール時にコンパイルするし、
VC++やBCCなら出荷前にコンパイルしてある。

354 :デフォルトの名無しさん:02/11/15 03:06
>>349
その質問の答えは>>346に書いてある

355 :デフォルトの名無しさん:02/11/15 03:07
>>349
stdio.hには関数の情報を書いて、stdio.c(ってファイル名じゃないだろうけど仮名)には
関数の実体を書いてコンパイルしてstdio.objみたいなファイルを作っておく。
リンクするときはstdio.hの関数情報を元にstdio.objをリンクする。

356 :デフォルトの名無しさん:02/11/15 03:08
なんかJPS氏を見てると、昔の自分を思い出すね。
自習派の人は、結構最初はこんな感じじゃなかった?

あと、ポインタは
「秘伝C言語問答 - ポインタ編」
SOFTBANK BOOKS
がわかりやすいかも。


357 :デフォルトの名無しさん:02/11/15 03:08
コンパイラがデフォルトで知らないライブラリはリンク時に指定する必要があるね。
gccはなぜか標準の数学関連の関数をリンクしようとしない・・・

358 :デフォルトの名無しさん:02/11/15 03:09
>>356
ずううっと昔にこのスレで似たような質問をして馬鹿にされたことがあります。

359 :デフォルトの名無しさん:02/11/15 03:09
>>355に追記。
だからユーザーはstdio.hとstdio.objがあればリンクできる。
stdio.cはいらない。コンパイラによっては親切にstdio.cも添付してくれてるだけ。


360 :デフォルトの名無しさん:02/11/15 03:10
>>359
VC++の場合、ソースもインストールすればデバッグ時に使ってくれるね。

361 :デフォルトの名無しさん:02/11/15 03:10
>>357
たいていのUnixのコンパイラの伝統。
浮動小数点ライブラリをめったに使わなかった
(システムプログラムばっかり書いてた)
16ビットミニコン時代のなごり。

362 :デフォルトの名無しさん:02/11/15 03:11
>>360
そうそう。
実は俺も以前、ソースが添付されてる意味を履き違えてたのよ。
コンパイルするときにソースを参照してるんだろうと思ってた。
実際はデバッグ時に使うだけなんだよな。

363 :デフォルトの名無しさん:02/11/15 03:12
>>361
そういうことなのか・・・

364 :JPS ◆M0LaMzf5rY :02/11/15 03:12
>>351
コンパイルしてる時は、プロトタイプ宣言だけを見てるの?
で、とりあえず形だけ作って、xxx.objにして
リンクする?その時はじめてどんな関数かわかる?

365 :JPS ◆M0LaMzf5rY :02/11/15 03:13
>>359
なるほど!それ分かりやすい!!さんくす!

366 :デフォルトの名無しさん:02/11/15 03:15
>>356
こんなあれこれ人に聞いたりしないだろ、普通。
考える力が無くなる。

アマゾンのレビュー見る限りではエキスパートCプログラミングは良さそうだ。
これを除くと中上級者Cプログラマ向けの本と言うのは皆無らしい。


367 :デフォルトの名無しさん:02/11/15 03:16
プロトタイプって言葉は知ってたのか。
なるべく用語使わないで簡単に説明しようとして「関数の情報」とか書いちゃったよ。

368 :デフォルトの名無しさん:02/11/15 03:17
>>365
そうだ、自分でやってみなよ。
main.cにはmain関数を、sub.cにはmain関数から呼び出される関数を、sub.hにはsub.cにある関数のプロトタイプを書く。
まずはsub.cをコンパイルして、sub.cをどこかに移す(削除してもいい)
次にmain.cを書いて(sub.hをインクルード、sub.cにある関数を呼ぶ)bcc32 main.c sub.objとしてコンパイル&リンクする。
これでなんとなく分かると思うよ。

369 :デフォルトの名無しさん:02/11/15 03:18
おまえら今日はやけに親切だな

370 :368:02/11/15 03:19
ちなみに分割コンパイルという手法
VC++だとリビルドしないかぎりビルドし直しても修正していないファイルはコンパイルしなおさないね。

371 :デフォルトの名無しさん:02/11/15 03:19
ひまだからな!

372 :356:02/11/15 03:19
>>366
いや、理解できない部分が、ということで・・・。

>中上級者Cプログラマ向けの本
K&Rはどうですか (w

373 :デフォルトの名無しさん:02/11/15 03:19
論争みたいに殺伐としていないからな!

374 :デフォルトの名無しさん:02/11/15 03:24
>>372
K&Rは最後の付録を除けば特に初心者でも問題無いと思うけど、どうだろう。


375 :デフォルトの名無しさん:02/11/15 03:24
bcc32も-cオプションでコンパイルのみをやってくれるのか。
その辺は統一しているのかな。

376 :デフォルトの名無しさん:02/11/15 03:25
K&Rはなんといってもあの大きさがイイ!!
C++とかPerlの作者が書いた本といったら・・・

377 :デフォルトの名無しさん:02/11/15 03:25
いや、ま、なんつーか書籍はスレ違いってことでひとつ。

378 :372:02/11/15 03:26
>>374
C言語初心者には問題ないかもしれませんが、
プログラムも初心者だときついような・・・。

JPS氏の疑問も解決したみたいなので、
もう寝ます。


379 :デフォルトの名無しさん:02/11/15 03:27
スレ分割の効果か

380 :デフォルトの名無しさん:02/11/15 03:28
>>376
それは単に学ぶ事の多さの違いでは?


381 :JPS ◆M0LaMzf5rY :02/11/15 03:29
>>368
やってみる!今日は寝ます。みんなさんくす!
とりあえず明日は10時ころおきて、やってみます。

382 :デフォルトの名無しさん:02/11/15 03:29
>>381
sub.cをコンパイルするときは-cをつけろよ。

383 :デフォルトの名無しさん:02/11/15 03:29
文字列論争あり、初心者質問に普通に答えるもあり、つまりいつものCスレだ。

384 :デフォルトの名無しさん:02/11/15 03:29
>>378
俺は2冊目によんだCの本がK&Rだった

K&R読んだとき初めにこの本を読めばよかったと思ったよ
技術評論社のすぐわかるC/C++じゃぁさっぱりだった

385 :デフォルトの名無しさん:02/11/15 03:34
なんか、JPSでもってる感じになってきたな。

また無駄、いや有意義な時間を過ごさせてもらいました。


386 :デフォルトの名無しさん:02/11/15 03:37
>>385
他人に説明するってのは自分の理解度を確認する良い指標になる

387 :デフォルトの名無しさん:02/11/15 03:42
同じようなことを何度も説明しても意味は無い。

388 :デフォルトの名無しさん:02/11/15 03:46
>>387
ワラタ

389 :デフォルトの名無しさん:02/11/15 07:57
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)
(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)(*^o^*)

390 :デフォルトの名無しさん:02/11/15 08:25
(゚Д゚)ハァ?

391 :名無しさん@カラアゲうまうま:02/11/15 10:01
お前ら、5時間で388レスでつか…。

392 :ポインタ房&rlo;ポインタ房:02/11/15 10:14
式の中での添え字は、ポインタとは無関係。
このことは、ポインタ配列についても同じことが言えるんでしょうか?

393 :デフォルトの名無しさん:02/11/15 10:30
>>392どう言った点で同じ事が言えるかどうかを聞いているのかが曖昧。だが恐らく答えは「yes」

394 :房タインポ:02/11/15 10:58
房タインポってどうやってやるの?

395 :デフォルトの名無しさん:02/11/15 10:58
No43スレが2つある中で、一発でこちら側を引き当てました。
そんなオレは心理テストで言うとどのように判断すればよいでつか?
1・真のプログラマ
2・偽のプログラマ

boolでおながい。

396 :デフォルトの名無しさん:02/11/15 11:02
>>395
> 1・真のプログラマ
あと以下のスレッドをデフォルトでフィルタリングしているのもポイントが高い。

C言語を俺に聞け 第48回ぐらいか?
http://pc3.2ch.net/test/read.cgi/tech/1037279828/

397 :デフォルトの名無しさん:02/11/15 11:33
for文を使って最大値最小値を求めて

398 :名無しさん@カラアゲうまうま:02/11/15 11:53
for (;;) {
puts("最大値最小値");
break;
}


399 :デフォルトの名無しさん:02/11/15 11:58
for文を使って最大値最小値を求めてさまよい歩く羊たちの沈黙。

400 :デフォルトの名無しさん:02/11/15 12:12
今度から 1 のテンプレで 「依頼」 も原則禁止にして欲しいな。
自助努力しなさそうな人には教える気になれん。

401 :デフォルトの名無しさん:02/11/15 12:37
>>400
> 今度から 1 のテンプレで 「依頼」 も原則禁止にして欲しいな。
え?このスレはCと同じで禁止事項なんてないよ。
未定義の動作を規定しているだけだよ。
で俺の解釈は>>397は未定義動作と思ってるけど?

402 :デフォルトの名無しさん:02/11/15 12:48
なんかさ、スレッド一覧でこのスレのタイトル見たら逆向いてるだけど、オレのブラウザが変なのか?

(004) ;}"!け聞にれ漏はとこの語言C"{ = ]34[c* rahc :21

なんでなんで!?

403 :400:02/11/15 12:50
>>401
そうか。了解。納得した。

404 :デフォルトの名無しさん:02/11/15 12:53
>>402
ビクーリした。
調べたら、http://pc3.2ch.net/test/read.cgi/tech/1037327839/l50 のスレタイのせいだった。
これ、荒らしていいかい?
つーか削除依頼出してこよう。

405 :デフォルトの名無しさん:02/11/15 13:02
削除依頼完了
でもしくじった・・・

406 :デフォルトの名無しさん:02/11/15 13:02
ageればいい

407 :デフォルトの名無しさん:02/11/15 13:10
データファイルが

A B C D
E F G H
・・・・

とあって、1行目を飛ばして、2行目のEから読み込みたいときは
どうすればいいですか?

408 :デフォルトの名無しさん:02/11/15 13:14
>>407fseek,fgetposかfgetsを2回,後は自分で調べて下さい。

409 :デフォルトの名無しさん:02/11/15 13:16
>>407
fgets() で 1 行づつ読める。
だから、fgets() で 1 回空読みすれば次は 2 行目を読み込む事になる。

410 :名無しさん@カラアゲうまうま:02/11/15 13:16
char buf[BUFSIZ];
fgets(buf, BUFSIZ, fp); /* 1行目読み飛ばし */
fgets(buf, BUFSIZ, fp); /* 2行目読み込み */

あるいは
int c;
while ((c = getc(fp)) != EOF && c != '\n'); /* 1行目読み飛ばし */


411 :デフォルトの名無しさん:02/11/15 13:17
>>408
「何バイト目」 じゃなくて 「何行目」 の時は fseek() + fgetpos() は
不適じゃないか

412 :デフォルトの名無しさん:02/11/15 13:21
では、n行目を読み込みたいときは
n-1回空読みしないとダメですか?

413 :デフォルトの名無しさん:02/11/15 13:25
>>412
そうでつ。
読み出すべきバイト位置がわかっていない場合は、カセットテープと同じように
扱うしかない。

414 :デフォルトの名無しさん:02/11/15 13:26
>>410
BUFSIZはやめておけ
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/setvbuf.3.html

415 :名無しさん@カラアゲうまうま:02/11/15 13:33
>>414
本当は'\n'が読まれるまで繰り返すべきだがサンプルだから手抜き。
それにそれなら二番目のほうがシンプルだし。

# setvbuf()とは関係なかろう。


416 :デフォルトの名無しさん:02/11/15 13:34
>>415
BUFSIZはstdio.hで定義されている

417 :名無しさん@カラアゲうまうま:02/11/15 13:39
>>416
stdio.hでは、getc()も定義されててfgets()も宣言されてますがなにか?

418 :デフォルトの名無しさん:02/11/15 13:41
>>417
もしかしてstdio.hで定義されている値を使うつもりか?(^_^;)
てっきり上の方で自分で定義するのかと・・・

419 :デフォルトの名無しさん:02/11/15 13:44
まあ、410 は、BUFSIZ が正しく #define されているなら何ら問題は無い。
あるとすれば、時々 「2 重定義だ」 と怒るプリプロセッサがいるから、
#ifdef 〜 #undef 〜 #endif を使わなければいけない事があるかも知れない
事ぐらいだ。

420 :名無しさん@カラアゲうまうま:02/11/15 13:44
「サンプルだから手抜き」だと小一時間。

421 :デフォルトの名無しさん:02/11/15 13:45
手抜きといえどもまさかそれを使うとはおもわんかった。

422 :デフォルトの名無しさん:02/11/15 13:45
つーか 417 が何を訴えたいのかわからん。

423 :デフォルトの名無しさん:02/11/15 13:49
普通手抜きなら数字を直に書くよな。

424 :デフォルトの名無しさん:02/11/15 13:54
そりゃそうだ。
ついでに言えば、fgets() では可能な限り、定数マクロじゃなくて sizeof 使うよな。

425 :デフォルトの名無しさん:02/11/15 13:54
age

426 :名無しさん@カラアゲうまうま:02/11/15 13:54
>>422
>415が何を訴えたいのかわからんかったので。

>>423
fgets(buf, sizeof(buf), fp);ってのも長いじゃん。


427 :デフォルトの名無しさん:02/11/15 14:01
>>426
> fgets(buf, sizeof(buf), fp);ってのも長いじゃん。
将来bufがbuf[SUFSIZ * 2]などに変更されたときに
全ての箇所を変更しなくてはならなくなるよりもまし。

 そ れ で は 定 数 の 意 味 が な い だ ろ

428 :デフォルトの名無しさん:02/11/15 14:03
>>426
ハァ?
直にと言っているんだからfgets(buf,256,fp)のように書くということにきまってんだろ。

429 :デフォルトの名無しさん:02/11/15 14:05
一体誰が長い短いの話をしてるんだ・・・

430 :デフォルトの名無しさん:02/11/15 14:07
>>426
わからなかったら当てずっぽうの適当逝ってないで質問しろよ。
まあ、415 の 2 行目の意味がはっきりしない事には同意する。

431 :名無しさん@カラアゲうまうま:02/11/15 14:20
>>430
> まあ、415 の 2 行目の意味がはっきりしない事には同意する。
415じゃなくて416ダターヨ。416の2行目をいってると思っていい?

432 :デフォルトの名無しさん:02/11/15 14:25
>>431
あ、納得。
415 を指して言っているのかと思った。
でも結局、
> わからなかったら当てずっぽうの適当逝ってないで質問しろよ。

433 :432:02/11/15 14:30
あ、いや。
つまり 415 は、BUFSIZ は stdio.h で定義されているから、バッティングするぞ
と言いたかったわけか。
的外れだけど。

434 :名無しさん@カラアゲうまうま:02/11/15 14:34
うーん、stdio関連の関数を使ってる場合にBUFSIZを自分で定義すると取られ
るとは、ちょっと意外だったな。気をつけることにしよう。


435 :デフォルトの名無しさん:02/11/15 14:41
まあ、規格にないマクロに頼るのは止めた方がいいよ。
#define BUFSIZ sizeof(int)
とかやられている可能性も無きにしもあらず。
いくらサンプルでもバッファサイズくらい責任持とう。

436 :デフォルトの名無しさん:02/11/15 14:53
>>435
> 規格にないマクロに頼るのは止めた方がいいよ。
ダウト
JIS X3010-1993 7.9.1
 BUFSIZはsetbuf関数によって使われるバッファの大きさを表す汎整数定数式に展開する。
と規格で定められている。
# まぁsetbuf関数によって使われるマクロをsetbuf関数以外の場所で
# 勝手に使用するのはあまりお勧めできないのには同意。

437 :435:02/11/15 14:57
失礼。436 フォローありがと。

438 :デフォルトの名無しさん:02/11/15 15:35
>>427
> 将来bufがbuf[SUFSIZ * 2]などに変更されたときに
> 全ての箇所を変更しなくてはならなくなるよりもまし。

将来bufが
char *buf = malloc(BUFSIZ); などに変更されたときに
全ての箇所を変更しなくてはならなくなるよりもまし。

と言ってみる。

439 :デフォルトの名無しさん:02/11/15 15:49
>>438
> 将来bufが
> char *buf = malloc(BUFSIZ); などに変更されたとき
配列とポインタは別物です。
たまたまCでは同一視できる箇所が多いので誤解を生みやすいけど
別物にしたら、それ相応のリファクタリングをするべき。

> と言ってみる。
なんて自信なさげに逃げ道作る労力をかける暇があったら、
素直にsizeofの方が良かったって認める労力に使っとけよ。

440 :438:02/11/15 15:59
プ。 1匹だけか。

441 :デフォルトの名無しさん:02/11/15 16:00
見苦しい罠。

442 :JPS ◆M0LaMzf5rY :02/11/15 16:30
関数の内部での*hoge[5]と(*hoge)[5]の違いは分かっYO!
可変長配列とか使う時、使い分けるんだよね?
でさ、関数のプロトタイプ宣言で「配列の配列」を渡したいときに
int kansu(int (*data)[5])みたくするよね?
この仮引数を、int *data[5]ってしても
関数の仮引数の宣言の時は、配列の宣言はポインタに読みかえられるんだから、
結局同じことのような機がするけど・・・

443 :438!=440:02/11/15 16:35
>>439
> 別物にしたら、それ相応のリファクタリングをするべき。
別物に変更してもリファクタリングしなくてよい手段が
あるのに、それすらせずに「リファクタリングすべき」
とか言われても説得力ゼロですな。

とは言っても 410のようなケースならsizeofで十分だと思うが。

> 素直にsizeofの方が良かったって認める労力に使っとけよ。
はあ?素直にって...誰かと間違えてんの?
もっと視野を広く持つようにしようね。

444 :デフォルトの名無しさん:02/11/15 16:43
> 別物に変更してもリファクタリングしなくてよい
(゚Д゚)ハァ?

一長一短という方向に話を持っていくなら分かるが・・・。

445 :デフォルトの名無しさん:02/11/15 16:47
>>443
> 別物に変更してもリファクタリングしなくてよい手段が
> あるのに、
> とは言っても 410のようなケースならsizeofで十分だと思うが。
具体的な手段も出せずに逃げ回るのだけは得意ですね、説得力ゼロです。

> はあ?素直にって...誰かと間違えてんの?
間違ってないよ。ちゃんとあなたは逃げ回るのが得意で
暗いとこが好きなゴキブリ君だと思ってます。
# まぁインスタンスは違うだろうがクラスは一緒

446 :デフォルトの名無しさん:02/11/15 16:51
JPS がナチュラルに流されてるのが笑えるな。

>>442
*hoge[5] は int*[]、つまり int** 型。
(*hoge)[5] は int(*)[5] 型。

447 :438:02/11/15 16:53
>>445
はあ?じゃ勝手にそう思ってろ。
ここまでアホとは...

以後放置ね。

448 :JPS ◆M0LaMzf5rY :02/11/15 16:56
>>446
(*hoge)[5] はint**型でないんだ・・・。
えーと、ホゲはintの配列へのポインタだよね?
どうして      ↑
    この部分がポインタに読み返られないの?

449 :JPS ◆M0LaMzf5rY :02/11/15 17:00
あ!そういえばさ、配列は最外周の要素以外省略できないんだよね?
それって>>446のとかん計ある?

450 :デフォルトの名無しさん:02/11/15 17:07
>>448
言われてみれば、どういう方式でそう認識されるのか考えた事無いな。
こう書くとこうなる、と丸暗記しかしていない。
ところで、int** と int(*)[5] では、メモリの確保のされ方が違うのはわかってるね?

>>449
配列は最外周の要素以外省略できない、ってどないな意味?

451 :デフォルトの名無しさん:02/11/15 17:08
438は自分がゴキブリではないことを否定しませんでした。

452 :デフォルトの名無しさん:02/11/15 17:14
>>448
C-FAQ 6.18:を読め。一部引用
  配列がポインターに成り下がるという規則は(質問6.3参照)、
  再帰的 には成り立たない。配列の配列(例えばC言語における
  2次元配列)は、 配列へのポインターに成り下がるのであって、
  ポインターへのポイン ターに成り下がるわけではない。

453 :デフォルトの名無しさん:02/11/15 17:15
>>449
> 配列は最外周の要素以外省略できない

ああ、配列を仮引数に指定した時に、一番左の添字しか省略できない、って意味ね。
もうちょっと分かりやすく書いてくれ。
関係あると言えば関係あるかも知れない。
もともと仮引数を配列のように書けるのはシンタックスシュガーで、ポインタと同じ
意味。
だから中身の数字は指定してもしなくてもどうせ無視されると言う話。

>>451
もうそれはいいよ

>>452
今してるのはその話じゃない。

454 :453:02/11/15 17:18
>>452
ああ、2 次元配列をどう渡すんだ、という意味でなら、関係無くも無いね。すまそ。

455 :デフォルトの名無しさん:02/11/15 17:19
>>450
> ところで、int** と int(*)[5] では、メモリの確保のされ方が違うのはわかってるね?
わからん。インクリメントやデクリメントされたときの
ポインタの移動量は違うと思うが、確保のされ方に変わりはあるのか?

456 :JPS ◆M0LaMzf5rY :02/11/15 17:19
>>450
たとえばint data[][2]={{1,2},{1,2}}っておkでしょ?
でもint data[][]={{1,2},{1,2}}はだめでない?
これは宣言で初期化する場合の話だけど、関数の仮引数でも同じだとしたら

*hoge[5] は int*[]、つまり int** 型。
(*hoge)[5] は int(*)[5] 型。

っていう>>446のは
*hoge[5] は int*[]、つまりint [][]となって
最外周の要素が省略されているため、配列からポインタによみかえられる。
(*hoge)[5] は int(*)[5]つまりint [][5]となって、最外周の要素が省略された
配列となる。
みたいに考えられないかなって。

457 :デフォルトの名無しさん:02/11/15 17:24
>>455
見ての通りだよ。
片や int **pp、ポインタ変数へのポインタ。
片や int (*pa)[5]、配列へのポインタ。

pa[0] と pa[1] は、必ず連続している。
pp[0] と pp[1] は、必ず連続しているとは限らないし、多くの場合は連続していない。

・・・っての書いてたら、どうも 456 見る限り JPS の方が理解があるみたいだな。

458 :デフォルトの名無しさん:02/11/15 17:26
>>456
多分、その解釈で困る事無いと思うよ。

459 :JPS ◆M0LaMzf5rY :02/11/15 17:27
>>450
メモリの確保のされかた・・・
int**は正真正銘ポインタのポインタだから、たとえば可変長配列を使う時とか
mallocしたり、アドレスを渡さない限り、どうにもなんない・・・あら。
int(*)[5] は配列へのポインタだから、配列の要素数5は確実に確保されてる
って感じでつか?

460 :457:02/11/15 17:28
すまん、訂正。

*pa[0] と *pa[1] は、必ず連続している。
*pp[0] と *pp[1] は、必ず連続しているとは限らないし、そもそも指す先が
領域確保されているかどうかも分からない。

461 :デフォルトの名無しさん:02/11/15 17:29
>>459
大当たり。

462 :JPS ◆M0LaMzf5rY :02/11/15 17:30
おおお!!!すげーぞオレ!!
これもあれも2chのみんなのおかげだYO!サンクス!
とりあえずやっとC FAQが読めるようになってきたから
配列とポインタのあたり呼んで見ます。
まじさんくす!!

463 :デフォルトの名無しさん:02/11/15 17:30
正確には、pa[0][0] 〜 pa[0][4] は必ず確保されている。
pa[1][0] が確保されているかどうかは分からない。

464 :デフォルトの名無しさん:02/11/15 17:33
なんかlevel高いね.うちの会社がlevel低すぎるだけか?(W

465 :デフォルトの名無しさん:02/11/15 17:34
ちょっと語弊があるな。
「必ず確保されている、と見なしていい」 だ。
一方 int** は、pp[0] だけは確保されていると見なしていいが、pp[0][0] だとか
があるかどうかは極めてグレー。

まだ何か穴があるかも知れないけどその時は誰かフォローよろしく。
漏れは眠くなったので寝ます。

466 :デフォルトの名無しさん:02/11/15 17:36
と言いつつ訂正。
int** は、pp[0][0] だけは確保されていると見なしていいが、pp[0][1] だとか
pp[1][0] があるかどうかは極めてグレー。

467 :デフォルトの名無しさん:02/11/15 17:45
int*は何も確保しないし、
int**も何も確保しませんが、何か?

468 :JPS ◆M0LaMzf5rY :02/11/15 18:10
>>467
int*が何も確保しないって事はどこを指しているの?
466とかは、すくなくとも一点だけは指していて
その後がどの位連続して確保されているかはわからない
ってことを言ってるんじゃないの?

469 :デフォルトの名無しさん:02/11/15 18:19
int (*)[5] だって何も確保しない

470 :デフォルトの名無しさん:02/11/15 18:23
>>469
マジで!?メモリ上のどこにあるかはしらんって意味?
それともどこにもまったくないの?
んなこたーないよね

471 :デフォルトの名無しさん:02/11/15 18:27
 本人刚刚学习VC++,对于“#pragma once”语句不太理解,哪位能说明一下。

  先谢了!

472 :デフォルトの名無しさん:02/11/15 18:28
>>470
int (*a)[5];
とやって確保されるのは(int [5] を差す)ポインタの領域だけ
ポインタの先までは確保しない
よって >>463 みたいなことを言うのはナンセンスでしかない

473 :JPS ◆M0LaMzf5rY :02/11/15 19:02
>>472
ポインタの領域は確保されるの分かるけど、
int5個分は確保されないってこと?
でも初期化できるしょ?その宣言だと。
初期化してるとしたら、初期化子はどこに確保されてんの?

474 :デフォルトの名無しさん:02/11/15 19:08
>>473
なんで初期化されると思ったの?
「電話番号100人分書けるメモ用意しといて」といわれて
「友達役を100人雇っておきました」というくらい余計なお世話じゃないか?

475 :デフォルトの名無しさん:02/11/15 19:09
a[0]□→未定義
a[1]□→未定義
a[2]□→未定義
a[3]□→未定義
a[4]□→未定義


476 :デフォルトの名無しさん:02/11/15 19:15
よく読んでなくて恐縮ですが

ポインタ配列->行固定列可変
ダブルポインタ->行可変列可変
*可変=アロック汁*

って認識は間違ってる?

477 :JPS ◆M0LaMzf5rY :02/11/15 19:19
>>474
仮の話。初期化したとしたらさ、5このポインタ変数は
メモリ上のどこにあるの?

478 :476:02/11/15 19:25
ポインタ配列を初期化するってことはポインタにアドレスを入れるって事でしょ
int a,b,c,d,e;
int *p[5]={&a,&b,&c,&d,&e};
じゃないの?

479 :デフォルトの名無しさん:02/11/15 19:28
>>478
int a[5], b[5], c[5], d[5];
int (*p)[5] = { a, b, c, d };
じゃないのか?

480 :JPS ◆M0LaMzf5rY :02/11/15 19:29
>>478
そりゃそうだね。勘違いしてた。
でも469は間違いだよね。つまり確保しる領域のサイズは
(sizeof(int*))*5ってこと?

481 :JPS ◆M0LaMzf5rY :02/11/15 19:30
>>479
478でもいいんでないの?

482 :476:02/11/15 19:30
>>479
e抜けてるのは?

5*5の2次元配列ならね>>478の場合5*1の2次元配列

483 :476:02/11/15 19:34
ポインタ配列を使う利点は列が可変になるって事
int *a[5];
for(int i=0;i<5;i++) a[i]=malloc(i);
って事ができるのよ
ダブルポインタのばやい行も可変


484 :476:02/11/15 19:35
malloc(i+1);だ


485 :デフォルトの名無しさん:02/11/15 19:37
ふ〜ん。みんな頑張ってるね〜。

486 :476:02/11/15 19:41
>>480
「実体」は何も確保しませんが

487 :JPS ◆M0LaMzf5rY :02/11/15 19:42
>>484
malloc(sizeof(int))でないの?

488 :JPS ◆M0LaMzf5rY :02/11/15 19:44
>>486
実態ってポインタの本体の事?
ポインタ変数を5こ格納する領域は?

489 :476:02/11/15 19:46
そうだね
malloc(sizeof(int)*(i+1));だね
*a[0]はint1個
*a[1]はint2個
*a[2]はint3個
...
と確保されるよ

490 :JPS ◆M0LaMzf5rY :02/11/15 19:46
やばい。勘違いしまくりだった。
ポインタ一個分だけ確保するのか?

491 :476:02/11/15 19:48
>>488
実体=確保された(安全に使用できる)メモリ領域

492 :JPS ◆M0LaMzf5rY :02/11/15 19:49
>>489
あ、可変だよってことを言ってくれてたんだね。
単純に整数いれてるだけかと思ったら違った。
malloc(sizeof(int)*(i+1));

a[0][0]
a[1][0] a[1][1]
a[2][0] a[2][1] a[2][3]
確保されるんだよね。

493 :JPS ◆M0LaMzf5rY :02/11/15 19:50
>>491
??どういう意味?
「実体」は何も確保しませんが は
「確保された(安全に使用できる)メモリ領域 」は何も確保しませんが
ってことではないべ?


494 :476:02/11/15 19:50
int *a[5];
ならint型ポインタ5個確保するよ
実体は未定義

495 :デフォルトの名無しさん:02/11/15 19:53
ここはC言語初心者スレですか?

496 :476:02/11/15 19:53
>「確保された(安全に使用できる)メモリ領域 」は何も確保しませんが
そのとうり
int *p;
ポインタ1個宣言して「実体」を確保したといえますか?

497 :JPS ◆M0LaMzf5rY :02/11/15 20:00
>>496
(安全に使用できる)メモリ領域は確保しませんがって事?
それならわかった。ていうか今まで長いレス、勘違いしてたから。
476の言うとおりだし、俺もわかったんで。

>>495
そのとおりですが何か?

498 :476:02/11/15 20:04
>>497
mallocってメモリ確保でしょそれで
「確保された(安全に使用できる)メモリ領域 」って言ったのだが
日本ゴムずい

499 :デフォルトの名無しさん:02/11/15 20:08
>>497
初心者スレなら上級者の俺は書くのがためらうなあと思っただけ。
気に触ったらごめん。上級者スレでも立てるか。

500 :JPS ◆M0LaMzf5rY :02/11/15 20:14
>>498
なるほど。そういう言い方知らないもので。覚えておきます。

>>499
まあ、ちょっとムカってきたけど、「〜ですが何か?」って言いたかった。
476が言ってたから。てか上級者スレならこれ使ってYO!

お前ら!Cの論争はここでしてください。
http://pc3.2ch.net/test/read.cgi/tech/1037105440/l50
廃れまくってる・・・


501 :デフォルトの名無しさん:02/11/15 20:21
>>500
あっムカってきちゃったの? そりゃそりゃ、俺のねらいどおりでヤッタって感じ。

502 :JPS ◆M0LaMzf5rY :02/11/15 20:24
>>501
( ̄□ ̄;)!!

まあ、オレは怒ったりしないよ。良かったでつね。

503 :デフォルトの名無しさん:02/11/15 20:27
>>502
釣られんなよ。アフォはほっとけ。

504 :デフォルトの名無しさん:02/11/15 20:45
Cだけで書かれたブロック崩しのソースがほしいんでURLしっているかた
教えてください。お願いします

505 :デフォルトの名無しさん:02/11/15 20:51
>>504
いくら出す?

506 :デフォルトの名無しさん:02/11/15 20:55
>>505
マネーかよ!!

しってる方お願いします。google検索しても出てくるのはポケコンばっかりで…

507 :デフォルトの名無しさん:02/11/15 21:01
>>506
移植すればいいだろ。

508 :デフォルトの名無しさん:02/11/15 21:03
>>506
マネーじゃありませんいくらです。

509 :デフォルトの名無しさん:02/11/15 21:56
>>508
そっちの「いくら」かよ!!!

510 :デフォルトの名無しさん:02/11/15 23:11
回転寿司屋で呑むか?

511 :デフォルトの名無しさん:02/11/15 23:41
int i, a1[10], a2[10][5];

int へのポインター
*(&i) = 1;
*(&a1[0]) = 1;
*(&a2[0][0]) = 1;

int[] へのポインター
*(&a1) = 1; → NG:配列に整数は代入できない
*(&a2[0]) = 1; → NG:配列に整数は代入できない

int[][5] へのポインター
*(&a2) = 1; → NG:5つの要素を持つ配列の配列に整数は代入できない

関数呼び出しの引数に現れた場合
a2 == &a2[0][0] 
a1 == &a1[0]


512 :デフォルトの名無しさん:02/11/16 00:59
atoiってなんて読むの?

513 :デフォルトの名無しさん:02/11/16 01:06
あすきぃとぅいんてじゃ

514 :デフォルトの名無しさん:02/11/16 01:10
>>512
阿藤(ヵ)イ

515 :デフォルトの名無しさん:02/11/16 01:12
>>513
ああ、インテってintでしょ?
じゃあ「えーとぅーあい」くらい?

516 :デフォルトの名無しさん:02/11/16 01:14
>>515
>>ああ、インテってintでしょ?
ガ━━(゚Д゚;)━━ソ!

517 :デフォルトの名無しさん:02/11/16 01:19
「あとい」

518 :デフォルトの名無しさん:02/11/16 01:21
あと一歩、あと一歩なんだ!

519 :デフォルトの名無しさん:02/11/16 01:22
あとーいだな

520 :JPS ◆M0LaMzf5rY :02/11/16 01:26
>>516
atoiって ASCI to Integer でないの?

521 :デフォルトの名無しさん:02/11/16 01:26
えーてぃーおい

522 :デフォルトの名無しさん:02/11/16 01:28
>>520
ASCII

523 :>>511:02/11/16 01:33
さて、どこから突っ込もうか。

524 :JPS ◆M0LaMzf5rY :02/11/16 01:35
>>511
意味がわかんない・・・

525 :デフォルトの名無しさん:02/11/16 01:57
” null ”は "ヌル"ですか?それとも”ナル”ですか?

526 :デフォルトの名無しさん:02/11/16 01:59
あなる

527 :JPS ◆M0LaMzf5rY :02/11/16 02:06
>>525
オレはヌルっていうけど、ナルでもいいらしい。
言語によって言い方が違うんだって!

528 :デフォルトの名無しさん:02/11/16 02:07
「ニル」って変な発音で話してる人がいた。

529 :デフォルトの名無しさん:02/11/16 02:12
ヌルヌル・・・・・ハァハァ

530 :デフォルトの名無しさん:02/11/16 02:12
俺の周囲だと、NULLを表すときはヌル、
'\0'を表すときはナルと言う奴が多く俺も伝染した。

531 :デフォルトの名無しさん:02/11/16 02:15
NULLはヌルポインタ、'\0'はヌル文字って言っちゃ・・・ダメ?

532 :デフォルトの名無しさん:02/11/16 02:16
ヌルと呼びなれてたときに転職したら、
その職場ではナル派が圧倒的に多かった。

別にどう呼んでも構わないと思うんですけど、
昔モービルと呼んでいた物がモバイルに変わった位に違和感がありました。

533 :デフォルトの名無しさん:02/11/16 02:16
>>528
その人はLisp信者かも。nil。

534 :デフォルトの名無しさん:02/11/16 02:19
nilって?

535 :デフォルトの名無しさん:02/11/16 02:32
>>534
LispでFALSEを表すアトムだよ。

536 :デフォルトの名無しさん:02/11/16 02:35
>>527
ああ。
でも言語と言ってもプログラミング言語じゃないぞ。
確かドイツ語がヌルで英語がナルだったかな。英語ではノーに聞こえるけど・・・

537 :JPS ◆M0LaMzf5rY :02/11/16 02:36
>>536
そうだ!「ヌル」はドイツ語だったYO!
英語だと「ノル」に近い「ナル」だと思う。

538 :デフォルトの名無しさん:02/11/16 02:38
int i,j;int** pp;int** qq;
pp=(int**)malloc(sizeof(int)*3);
for(i=0;i<3;i++){
 pp[i]=(int*)malloc(sizeof(int)*5);
 for(j=0;j<5;j++) pp[i][j]=i*5+j;
}
memcpy(qq,pp,sizeof(int)*3*5);
for(i=0;i<3;i++){
 for(j=0;j<5;j++) printf("%d ",qq[i][j]);
 printf("\n");
}
メモリエラー出ちゃいます???

539 :デフォルトの名無しさん:02/11/16 02:40
>>sizeof(int)
ハァ?


540 :デフォルトの名無しさん:02/11/16 02:41
>pp=(int**)malloc(sizeof(int)*3);
pp=(int**)malloc(sizeof(int*)*3);
間違え


541 :デフォルトの名無しさん:02/11/16 02:44
プ。


542 :デフォルトの名無しさん:02/11/16 03:01
カキコのテスト

543 :デフォルトの名無しさん:02/11/16 03:02
mallocに頼るなよ。

544 :デフォルトの名無しさん:02/11/16 03:17
マジックナンバーをコードの中に書いてmallocとはそいつのレベルが分かるな。たとえネタだとしても。

545 :デフォルトの名無しさん:02/11/16 03:36
ネタと簡単な例はマジックナンバー可。

546 :デフォルトの名無しさん:02/11/16 05:09
10行サンプルにマジックナンバー云々言う奴のレベルはそれ以下。

547 :デフォルトの名無しさん:02/11/16 06:09
>>538=546頑張れよ、糞コーダー(w

548 :デフォルトの名無しさん:02/11/16 07:56
>>545-546
じゃあ何行ならいいんですか?ってw。複数人の目に触れるんだから、
読みやすいコードに越したことはないだろ。 #define ぐらい使ってもいいと思うがな。


549 :デフォルトの名無しさん:02/11/16 08:22
スマン void main(void) とか言う時の、void ってなんっすか?
色々読んでるけど、なんかイマイチしっくり来ない。。。。

550 :デフォルトの名無しさん:02/11/16 08:32
キター?

551 :デフォルトの名無しさん:02/11/16 08:41
>>549
/* エキスパートCプログラマーが書くコードの例 */
#define Kusakabe_Youichi void

Kusakabe_Youichi main(Kusakabe_Youichi){
 return 0;
}
これならシックリきますね :)


552 :デフォルトの名無しさん:02/11/16 08:59
しっぽりこない。。。

553 :デフォルトの名無しさん:02/11/16 09:32
いいから int を返せよ・・・。

554 :デフォルトの名無しさん:02/11/16 09:33
つーか、void 型の関数内で return 0; とか書くなよ・・・。

555 :デフォルトの名無しさん:02/11/16 09:45
#define 整数型インテジャー int

整数型インテジャー main(){
 return 0;
}

556 :デフォルトの名無しさん:02/11/16 09:49
>>整数型インテジャー
狂ったか?

557 :デフォルトの名無しさん:02/11/16 12:04
整数型でないインテジャーが存在するのか。
目から鱗が落ちたよ。
555 ありがとう!!

558 :デフォルトの名無しさん:02/11/16 13:12
>>555

http://eiwa.excite.co.jp/view.jsp?block=39179&offset=986&id=NEW_EJJE

559 :デフォルトの名無しさん:02/11/16 13:27
typedef long int 長整数型インテジャー;

560 :デフォルトの名無しさん:02/11/16 14:05
>>559
C:\Work\Test.c(12) : error C2018: 文字 '0x92' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0xb7' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x90' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0xae' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x90' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x94' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x8c' は認識できません。
C:\Work\Test.c(12) : warning C4091: 空白の宣言が見つかりました。
C:\Work\Test.c(12) : error C2143: 構文エラー : ';' が '^' の前に必要です。
C:\Work\Test.c(12) : error C2143: 構文エラー : ';' が '^' の前に必要です。
C:\Work\Test.c(12) : error C2018: 文字 '0x83' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x83' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x93' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x83' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x83' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x83' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x83' は認識できません。
C:\Work\Test.c(12) : error C2018: 文字 '0x81' は認識できません。
C:\Work\Test.c(12) : error C9999: つーかネタはもういいよ。

561 :デフォルトの名無しさん:02/11/16 14:09
>>560
複数行でネタにレスウザイ。

562 :デフォルトの名無しさん:02/11/16 14:20
561=559=555

563 :デフォルトの名無しさん:02/11/16 14:24
つーか誰も答えてないな。

>>549
void はが無効な (値が無い) 型であること、無指定である事を表す。以上。

564 :デフォルトの名無しさん:02/11/16 15:34
int *p;
p = malloc(sizeof(*p));

初期化してないポインタを使ってますが
これってありなんですか?


565 :デフォルトの名無しさん:02/11/16 15:59
>>564
> 初期化してないポインタを使ってますが

そのように見えるが、実際は使っていない。
sizeof(*p) はコンパイル時に評価されて、数値に置き換えられる。

566 :565:02/11/16 16:02
ただし、564 のコードが何をやりたいのかは分からない。
この場合、sizeof(*p) は sizeof(int) と一緒だ。

567 :デフォルトの名無しさん:02/11/16 16:02
>>564
sizeof 演算子は引数を評価せず結果の静的型だけを見るので問題ない。

568 :デフォルトの名無しさん:02/11/16 16:45
>>564
変な書き方をするやつがいるものだな・・・

569 :デフォルトの名無しさん:02/11/16 17:24
こういうのはありか?って例なんだからいいじゃん。

570 :デフォルトの名無しさん:02/11/16 17:35
>>569
例にしたって、564 が質問してきたからには書いた香具師がいるんだろう。
564 が書いたわけじゃないよな。

571 :デフォルトの名無しさん:02/11/16 18:23
すみません、ひとつ質問させてください。
構造体のディープコピーをしたい場合、
memste(元構造体ポインタ,先構造体ポインタ,構造体サイズ)
で可能でしょうか?
それとも、やっぱり一つ一つのフィールドごとコピーするのでしょうか?
教えてください、お願いします。


572 :571:02/11/16 18:24
上はmemsteではなくmemcpyです。すみません。

573 :デフォルトの名無しさん:02/11/16 18:29
構造体は普通の代入でコピーできる。

574 :デフォルトの名無しさん:02/11/16 18:47
構造体代入の実体は大抵 memcpy() だったりして。

>>571
memcpy() でできます。
572 の通り、普通に = 演算子でも代入できます。
ただし、単に構造体の内容がコピーされるだけで、その中のポインタが指す先
までは複製されません。
malloc() 等でメモリの動的割り当てをしている時は気をつけてください。

575 :571:02/11/16 18:47
>>573

やってみました。たしかに動作しました。
論外君で申し訳ありませんでした。

ところで連続質問になってしまうのですが、
構造体同士を普通の代入でコピーした場合って、

1.memcpyでサイズ分全部コピーする
2.各フィールドをそれぞれ自動でコピーする

のどちらの動作になるのでしょうか?
それとも処理系依存でしょうか?
連続で申し訳ありませんが、教えてください。お願いします。

576 :574:02/11/16 18:48
573 の通り、でした。

577 :デフォルトの名無しさん:02/11/16 18:50
>>575
処理系依存です。

なお、大抵のコンパイラの実装は memcpy() です。
ただし最適化されなくても転送処理がインライン展開されるので、コード上で
memcpy() を呼ぶよりも速いはずです。

578 :571:02/11/16 18:53
>>577
なるほど、そうなのですか。

皆さん、自分のような論外君に優しく教えていただきまして、
皆さんありがとうございました。
これからも精進します。


579 :デフォルトの名無しさん:02/11/16 19:27
>>578
むしろ気が萎えるから、論外君とか教えてクンとか、自分からそう名乗るのは止めてくれ。

580 :デフォルトの名無しさん:02/11/16 21:02
VC++とCbuilderってどっちがいいですか?
どっちも1万くらいなんで、詳しい事はわからず決めかねてるんですが。
アマゾンいってみたら、ボーランドの方が売れてるみたいなんですよね。

581 :デフォルトの名無しさん:02/11/16 21:04
>>580
VC++.NET>C++Builder>VC++6.0

582 :デフォルトの名無しさん:02/11/16 21:08
>>580
VCよりBuilderのほうがいいんですか?

583 :デフォルトの名無しさん:02/11/16 21:14
作りやすさはBuilderだろうけど、ちょっとマイナーかな。

584 :デフォルトの名無しさん:02/11/16 21:17
C++Builderは多重継承が出来んからクソ

585 :デフォルトの名無しさん:02/11/16 21:23
.NETってなんなの?初心者用の.NETスレたててYO!

586 :デフォルトの名無しさん:02/11/16 21:25
Javaつぶし。

587 :デフォルトの名無しさん:02/11/16 21:26
VC++6.0の後継がVC++.NET?

588 :デフォルトの名無しさん:02/11/16 21:28
そう。

589 :デフォルトの名無しさん:02/11/16 21:29
VC++は6.0まではVisual Studioの中心的存在だったはずなんだが・・・


590 :デフォルトの名無しさん:02/11/16 21:32
>>589
今は中心はなんなの?
C#?


591 :デフォルトの名無しさん:02/11/16 21:33
>>588
じゃあVC++.NETはVC++7.0って考えていいのかな?

592 :デフォルトの名無しさん:02/11/16 21:33
>>590
そんな気がする。

593 :デフォルトの名無しさん:02/11/16 21:34
>>591
うん。
IEも次はIE.NETにするらしいし、、、

594 :デフォルトの名無しさん:02/11/16 21:37
.NETについて勉強してこよう!

595 :デフォルトの名無しさん:02/11/16 21:39
ふと思ったんだけどさ、今C言語はじめたばっかで
C++とかC#の役に絶つかな?

596 :デフォルトの名無しさん:02/11/16 21:50
>>595
プログラミングについての感覚は、他の言語でも役に立つ。
言語固有のテクニック等で言えば、C++ にはある程度役に立つが
C# にはほとんど役に立たないし逆に害になる事もある。
C++ は C のスーパーセットだが、C# は全く別の言語だ。

597 :デフォルトの名無しさん:02/11/16 21:51
>>596
なんでC#なんかつくったんだYO!ビルゲイツのあふぉが。
じゃあ学校で教える言語もC#にしろYO!
ところでね、実際、PGの人とかはC言語とか使ってるの?
それとももうC#?

598 :デフォルトの名無しさん:02/11/16 21:56
>>597

俺んところはC#の仕事なんて絶対無いどころかC++さえない。
バッチ処理とかはいまだCで書いてるし、
WebアプリはJavaばかり。
結構そんなもんだと思う。


599 :デフォルトの名無しさん:02/11/16 22:00
>>597
> じゃあ学校で教える言語もC#にしろYO!
もちろん、ビルゲイツ様はしっかりそのつもりですぞ。
http://www.hotwired.co.jp/news/news/culture/story/20020822204.html

600 :デフォルトの名無しさん:02/11/16 22:11
>>597
板違い。マ板に逝け。

601 :デフォルトの名無しさん:02/11/16 22:30
>>599
さすがゲイツ。すまそ。
でも日本でそうなるには何万年もかかりそう

602 :デフォルトの名無しさん:02/11/16 22:48
ところで質問が無いから雑談タイムだけどw

やっと日本にも[脱Windows]の波がやってきたね。
でも、役人に[改造linux]が使えるかどうか。
そもそもちゃんと ソースをいじれるのかw?

603 :デフォルトの名無しさん:02/11/16 22:52
ソースハ?

604 :デフォルトの名無しさん:02/11/16 23:05
>>602
べつに役人がいじる必要はないべ。

605 :デフォルトの名無しさん:02/11/16 23:06
>>603
http://slashdot.jp/article.pl?sid=02/11/15/2337225&mode=thread

ニュース板とマ板でもスレが立ってたよ。

606 :デフォルトの名無しさん:02/11/16 23:08
ゲイツがなんだYO
手に馴染んだ道具が一番だろ

607 :デフォルトの名無しさん:02/11/16 23:25
Macが(・∀・)イイ!

608 :デフォルトの名無しさん:02/11/16 23:26
>>602
どういう事でつか?

609 :デフォルトの名無しさん:02/11/16 23:28
>>602-606
すれ違い。ネタがないなら書かなくていいよ。
なんか最近、ここのレベルが下がってきたな。

610 :デフォルトの名無しさん:02/11/17 00:17
コピー先バッファのサイズよりも大きく書き込んだら
メモリ壊すとはよく言うけど、
コピー元バッファのサイズよりも大きく読み込んでも
絶対大丈夫なもんなの?


611 :デフォルトの名無しさん:02/11/17 00:32
>>609
ここは初心者スレです。
レベルの高い話がしたいなら上級者スレでもたててください。

>>610
絶対とはいえないが、たぶんうまくいくでしょう。
でも絶対とは言えない限り、やるべきではありません。

612 :デフォルトの名無しさん:02/11/17 00:43
>>610 そうでもない。オーバーしたアドレスによっては
リードアクセスだけでもページフォルト起こす可能性があるよ。


613 :610:02/11/17 00:47
>611 >612

レスThx!!
さて、この目の前にある現行ソースをどーするか……
こっからはマ板の領域だな、ではさらば。

614 :デフォルトの名無しさん:02/11/17 00:50
>>611
いつからレベルの高い低いに、純度の高い低いをごっちゃにしていい事になったの?

あとバッファの話、やっちゃいけないのはアクセスできるできないの問題じゃ
ないでしょう。

615 :デフォルトの名無しさん:02/11/17 00:54
>>612
Windows2000でいえば「メモリーが"read"になることはできませんでした。」ってやつでしょ?
結構おきるよね。

scanfの%uにchar *を与えていたためにこのエラーが出て、最初はどうしてもわからなかった・・・・

616 :611:02/11/17 00:58
>>614
609については前半は同意しますが
後半は余計だと思われたんですが。
ここにいるのは初心者のかたも多いと思うので
失礼では?

617 :Not 614:02/11/17 01:00
>>616
ん?余計なのは前半じゃない?
確保したバッファ外にアクセスするのは絶対に許されないと思うんだけど・・・


618 :デフォルトの名無しさん:02/11/17 01:01
>>615
(゚Д゚)フアァ?

619 :デフォルトの名無しさん:02/11/17 01:02
>>618
なんかプログラムの終了時にそういうエラーが出て、理由がさっぱりわからなかったの・・・・
まさかscanfが原因だったとはね・・・

620 :614:02/11/17 01:02
ああ、精神レベルの高い低いか。納得。

621 :デフォルトの名無しさん:02/11/17 01:03
>>609の前半と後半、と言いたいんだろうな。

622 :619:02/11/17 01:03
scanfじゃなくてsscanfだ。

623 :デフォルトの名無しさん:02/11/17 01:04
>>622
やっと意味が分かった

624 :デフォルトの名無しさん:02/11/17 01:12
ん?やっぱり分からん。どういうこと?

625 :619:02/11/17 01:16
>>624
私?
int *を与えるべきところchar *を与えていたら、その時は問題ないんだけど、mainからreturnするとそういうエラーが出たの。
なぜかexitで抜けると出ないし、linux+gccでは最適化オプションをつけないとセグメンテーション違反にならなかった(つけてもexitで抜けるとならなかった)。

これにはまいった・・・もちろんきちんとsscanfの仕組みを理解していなかった私が悪いんだけど。


626 :619:02/11/17 01:21
ちなみにドット区切りのIPアドレスを4つの数値に変換してcharの配列にいれるというプログラムです。
原因が分かったあとはsscanfでintの配列にいれて、そのあとにcharの配列にコピーするようにしました。

627 :デフォルトの名無しさん:02/11/17 01:20
それはようするに
コピー先バッファのサイズよりも大きく書き込んだら
にあたるのではなくって?

628 :619:02/11/17 01:23
>>627
でもそれなら書き込んだときにエラーが出るはず(もちろんバッファを越えて書き込んだんですが)。
それに確かWin2000ではreadに・・・と出たはず・・・

629 :609:02/11/17 01:25
609だがたしかに、言い方が悪かった。
レベルの高い低いは、つまらない煽りやあまりにもスレとかけ離れたレスが
見受けられるという意味で書いた。多少なら、息抜きになっていいんだけどね。

Cの技術レベルは関係ない。俺も技術があるわけでもない。
毛嫌いする人がいるがスタイル論争も俺は好きだし、意見の交換になっていいと思う。
ただ、それがエスカレートしてきて全くたわいのないレスが続くとね。

630 :デフォルトの名無しさん:02/11/17 01:27
>>628
別に範囲外に書き込んだからって即座にエラーになるとは限らないよ
リターンアドレスでも書き換えちゃったんじゃないの?

631 :デフォルトの名無しさん:02/11/17 01:27
>>626
inet_addr() 使えよ・・・。

632 :619:02/11/17 01:30
>>630
> リターンアドレスでも書き換えちゃったんじゃないの?

なるほど! そういうことでしたか・・・

>>631
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/inet_addr.3.html

こんな関数があったんですね・・・・
勉強になりました。ありがとうございます。

633 :デフォルトの名無しさん:02/11/17 01:37
memory cannot be read
「メモリーはreadになれませんでした」か。
すごい訳だな(w

634 :デフォルトの名無しさん:02/11/17 01:43
「メモリーは読まれる事ができません」、だよなあ。
これでも日本語的にはまだアレだけど、意味はずっと通じやすい。

誰も Microsoft に 「バグ」 として報告してないのか。
・・・「仕様です」 とか返されたらどうしよう (;´Д`)

635 :デフォルトの名無しさん:02/11/17 01:44
>>633
たぶん
"memory cannot be %s" (←ここに"read"とか"write"とかが入る)
こんな感じのを無理矢理訳して
"メモリーは%sになれませんでした"
にしたのではないか
と推測してみる

636 :635:02/11/17 01:45
write じゃなくて written か

637 :デフォルトの名無しさん:02/11/17 02:08
>>636
ずっとreadをリードと読んでいたけど、レッドが正解か。

638 :デフォルトの名無しさん:02/11/17 02:12
char キャーって呼べ。チャーっていったらブッコろス。

639 :デフォルトの名無しさん:02/11/17 02:17
チャルがかわいくていいと思うのですがいかがでしょうか?

640 :デフォルトの名無しさん:02/11/17 02:21
チャーだろ。

641 :デフォルトの名無しさん:02/11/17 02:22
シャー

642 :デフォルトの名無しさん:02/11/17 02:26
チャースレに(・∀・)カエレ!
http://pc.2ch.net/test/read.cgi/prog/1027164278/l50

643 :デフォルトの名無しさん:02/11/17 02:36
char キャーって呼べ。チャーっていったらブッコろス。

644 :デフォルトの名無しさん:02/11/17 02:41
char:t∫a:r
と、書いてある。
正確に書けない。鬱

645 :デフォルトの名無しさん:02/11/17 02:47
大学講師がチャーっていいやがってよ。加藤チャーかよ。ぶっころそうかとおもったぜ。

646 :デフォルトの名無しさん:02/11/17 02:48
enumはイニュム?

647 :デフォルトの名無しさん:02/11/17 02:48
チャーでいいよ。

648 :デフォルトの名無しさん:02/11/17 02:49
エナム

649 :デフォルトの名無しさん:02/11/17 02:49
イーナム
エニュムが正しいんだろうけど・・

650 :デフォルトの名無しさん:02/11/17 02:52
enumがそんななら、charがチャーでも問題ないね。

651 :デフォルトの名無しさん:02/11/17 02:57
LPCSTR
エルピーシーストロァー

652 :デフォルトの名無しさん:02/11/17 02:58
stdioは?

653 :デフォルトの名無しさん:02/11/17 03:00
intは「インテ」ですよね!


654 :デフォルトの名無しさん:02/11/17 03:00
ストゥドゥアイオー

655 :デフォルトの名無しさん:02/11/17 03:00
>>653
イントもあるよ。

656 :デフォルトの名無しさん:02/11/17 03:49
>>653
そして、インテグラTypeR だとかほざく奴が




すんません 僕です。
回線斬ってクビくくってきます。

657 :JPS ◆M0LaMzf5rY :02/11/17 04:04
>>649
イニュームだYO!
enumeration列挙
オレはイーナムって言う。
てかあんま使わない・・・

658 :デフォルトの名無しさん:02/11/17 04:26
まだ起きてんのかJPS。
早く寝ないと夜型プログラマになっちゃうぞ。


659 :お願い:02/11/17 05:47
皆さんおはようございます。 イマ中学校一年生で、C言語に興味を持ち始めて
いろいろやろうとしています。でも borland C++ compiler 5.5でコンパイル
しようとすると( インクルードファイル ’stdio.h'をオープンできない )という
エラーが一つ出ます。WIN2000(サービスパック入れてない)の環境変数設定はしました。
先輩たちの助けが必要です。お願い申し上げます。

660 :デフォルトの名無しさん:02/11/17 05:51
bcc32のあるディレクトリに設定用ファイルがあるんで、
bcc32.cfgに
-I"c:\bcc55\include"
とかいれる。

661 :デフォルトの名無しさん:02/11/17 05:54
C:\Program Files\bcc55\bin 以下に bcc32.cfg と ilink32.cfg 置いた?
C:\Program Files\bcc55\readme.txt 参照

662 :お願い:02/11/17 06:05
朝から本当に申し訳ありません。イマC:\borland\bcc55\Binのなか
を覗いたらbcc32.cfg ファイルはないようです。あとilink32.cfg
ファイルもないようです。この二つは自分で作らなければならない
でしょうか?(メモ帳でしょうか?)

663 :デフォルトの名無しさん:02/11/17 06:09
>>662
メモ帳でいいよ。

664 :お願い:02/11/17 06:19
できました!! 先輩のみなさん朝から優しく教えていただいて
本当にこころから感謝します。これからもがんばりますので、お願いします。


665 :デフォルトの名無しさん:02/11/17 06:25
>>664
ガンガレ(・∀・)!

666 :デフォルトの名無しさん:02/11/17 08:06
>>657
http://dictionary2.goo.ne.jp/ej/voice/E/01011190.wav
イじゃなくてエに聞こえるけど。

667 :デフォルトの名無しさん:02/11/17 08:16
>>666
カタカナでは正確に表せない。イとエの中間。
中学で習っただろ?


668 :デフォルトの名無しさん:02/11/17 08:29
666 はリア消

669 :デフォルトの名無しさん:02/11/17 08:34
ちなみに give の i と同じ発音
日本人は give をギヴと発音する多いがそれだと通じにくい
どっちかというとゲヴに近い発音

670 :デフォルトの名無しさん:02/11/17 08:43
>>667
だったらつっこんできた>>657にもいってやれよ。

671 :デフォルトの名無しさん:02/11/17 09:08
waterた

672 :549:02/11/17 09:24
563よ有難う!voidとは型式無指定だったのね。。。。

アメリカに行った時、書き間違えた個人小切手の上に銀行窓口の
おばちゃんが「VOID」ってでっかく手書きしたから、?っておもてた。。

673 :デフォルトの名無しさん:02/11/17 09:47
>>672
void = 無効の

674 :デフォルトの名無しさん:02/11/17 10:02
引数の数がわからない関数を呼び出すにはどうしたらよいでしょう?

int call(int (*func)(), int num_args, void *args[])
{
// return func(args[0], ..., args[num_args-1]); としたい!
}

675 :デフォルトの名無しさん:02/11/17 10:02
VOIDDD

676 :デフォルトの名無しさん:02/11/17 10:03
stdarg.h

677 :デフォルトの名無しさん:02/11/17 10:05
int (*func)(...)
でできるんかいな。

678 :デフォルトの名無しさん:02/11/17 10:35
>>674
int apply( int (*fun)(), int argc, void **argv ) {
switch( argc ) {
case 0:
return fun();
case 1:
return fun( argv[0] );
case 2:
return fun( argv[0], argv[1] );
...

679 :デフォルトの名無しさん:02/11/17 11:26
Java、VBをやっているものです。
一応C/C++の文法覚えまして、ポインタもなんとなく理解できました。

そこで質問なんですけど、ポインタを使わずにStaticで宣言した
変数を使っても同じことだなぁと思うんですがいかがでしょうか?
どう考えてもポインタって意味がないような気がするんですが。。。

680 :デフォルトの名無しさん:02/11/17 11:30
>>679
Java ではクラス変数だけしか使わなかったのか?
DOS時代のヒープ恐怖症のプログラマじゃあるまいし…

681 :デフォルトの名無しさん:02/11/17 11:30
たとえば、sprintfをstatic変数でどう代替するん?

682 :デフォルトの名無しさん:02/11/17 11:31
>>679
Java をやってる割には global 変数なんか使うのか
どーせ VB しかまともにやったことないんだろ?

683 :デフォルトの名無しさん:02/11/17 12:13
>>682
ああ、グローバル変数のことか・・・
>>679のポインタを使わずにstaticってのがわからんかった。

684 :デフォルトの名無しさん:02/11/17 12:20
ポインタをどう使うかが腕の見せ所なんだが…。

685 :デフォルトの名無しさん:02/11/17 12:35
>>683
staticも知らんのに答えてるのってなんだか・・・・(ゲフゲフッ

686 :デフォルトの名無しさん:02/11/17 12:36
>>685
staticってグローバルにするものじゃないんだが・・・

687 :デフォルトの名無しさん:02/11/17 12:38
>>679
どう考えてもポインタって意味がないような気がするんですが。。。
(゚Д゚)ハァ?
ポインタがないとメモリを動的に確保することはできませんが何か?


688 :晒しあげ:02/11/17 12:40
>>685

689 :デフォルトの名無しさん:02/11/17 12:42
686=688
必死だな(藁

690 :デフォルトの名無しさん:02/11/17 12:42
>>686
今はスコープの話よりも、記憶域の話でしょ?
ポインタなんていらないっていうばかな考えは
staticをつければメモリ上同一アドレスにいるってことで
値渡しが行われないから、思ってるんでないか。
日本語へんだな

691 :デフォルトの名無しさん:02/11/17 12:44
>>690
グローバル変数を使えばアドレス渡さなくても(ポインタを使わなくても)変数に値をセットできるってことじゃないの?

692 :デフォルトの名無しさん:02/11/17 12:45
このすれレベル低すぎだ

693 :691:02/11/17 12:45
他の関数で変数に・・・という意味ね

694 :JPS ◆M0LaMzf5rY :02/11/17 12:47
>>691
それはグローバル変数だからじゃなくて
静的記憶域をもつからでない?
オレも確実には言えないけど・・・
グローバル変数と、ファイル内static変数と、staticついたローカル変数は
たとえば関数内でオブジェクトそのものを操作して、関数を抜けたあとでも
ちゃんと値が保持されてるってことでないか?

695 :デフォルトの名無しさん:02/11/17 12:49
>>692
そんなレスしか書けないレベルの低いお前(藁
晒しage

696 :デフォルトの名無しさん:02/11/17 12:49
>>694
値が保持されていてもローカルじゃ他の関数から変数は見えないぞ。
それにアクセスするにはやっぱりポインタ使うしかないだろ。

697 :デフォルトの名無しさん:02/11/17 12:50
>>696
値が保持されていてもローカルじゃ他の関数から変数は見えないぞ。
あ、そうか。
しかしポインタが必要ないってのはすごい考えでつね。

698 :691:02/11/17 12:50
>>694
scanfみたいなものを言っているんだが・・・

699 :デフォルトの名無しさん:02/11/17 12:50
んじゃstaticでかつクラス変数と言うことで話を進めてください。

700 :デフォルトの名無しさん:02/11/17 12:51
クラスって何?

701 :デフォルトの名無しさん:02/11/17 12:52
>>700
バカ???

702 :デフォルトの名無しさん:02/11/17 12:52
>>699
クラスってなんだ?C++?

703 :デフォルトの名無しさん:02/11/17 12:53
>>701
スレタイ見ろ

704 :JPS ◆M0LaMzf5rY :02/11/17 12:53
>>698
すまそ。調子にのりました

705 :デフォルトの名無しさん:02/11/17 12:54
いつからCでクラスを使えるようになったんだろ。

706 :デフォルトの名無しさん:02/11/17 12:55
なんだ、ここはクラスの概念がないスレか・・・・・

707 :JPS ◆M0LaMzf5rY :02/11/17 12:56
ポインタが必要なのはわかるし、グローバル変数も必要だよね。
分割コンパイルとかするとき。
でもファイル内のstatic変数と、staticついたローカル変数は
どんなとき使うの?

708 :デフォルトの名無しさん:02/11/17 12:57
>>706
チョソですか?スレタイ読めよ
ここはクラスの概念がないCのスレです
リアル厨房はC++スレに行ってください

709 :デフォルトの名無しさん:02/11/17 12:57
>>707
> ファイル内のstatic変数
staticのついたグローバル変数?
そのファイルでしか使わないグローバル変数を定義するとき

> staticついたローカル変数
strtokみたいなものを作るとき。

710 :デフォルトの名無しさん:02/11/17 12:58
>>ポインタが必要なのはわかるし、グローバル変数も必要だよね。
>>分割コンパイルとかするとき。

この時点で意味不明で理解できてないことがよくわかる。入門書からやり直すことを進めます。

711 :デフォルトの名無しさん:02/11/17 12:59
すいません。今殺伐モードですか?

712 :JPS ◆M0LaMzf5rY :02/11/17 12:59
>>709
strtokはよくわからんけど・・・

>そのファイルでしか使わないグローバル変数を定義するとき
そのままだけど、よく考えたらさ、ポインタ使っても変わらないよね?
ただ、ソース全体に共通するような変数で、他のファイルに既に名前がある場合とか
使うってこと?

713 :JPS ◆M0LaMzf5rY :02/11/17 13:00
>>710
今入門書よんでますが?
どこが違うの?

714 :デフォルトの名無しさん:02/11/17 13:00
>>712
お前の言うポインタは何を指すんだ?


715 :デフォルトの名無しさん:02/11/17 13:01
>>713
一行目はうなづけるけど、二行目がどうしてその理由になるのかわからない。

716 :デフォルトの名無しさん:02/11/17 13:03
ハッシュつくるときはそれに関する関数をひとつのファイルにまとめて、
ハッシュテーブルはstaticなグローバル変数(配列というべきか)にした方がよくない?

717 :JPS ◆M0LaMzf5rY :02/11/17 13:03
>>714
ポインタにある一定のアドレスをずっと保持させておけば

ファイル内のstatic変数と同じような事になるんでない?

718 :JPS ◆M0LaMzf5rY :02/11/17 13:04
>>715
だからどこが違うのか教えてYO!

719 :デフォルトの名無しさん:02/11/17 13:06
>>717
おまえの言うファイル内のstatic変数はなにをさすんだ?

720 :デフォルトの名無しさん:02/11/17 13:06
>>717
そのポインタ変数は消えないでずっと残っているの?

721 :デフォルトの名無しさん:02/11/17 13:07
>>718
どこって・・・全然理由になっていないから・・・・・

722 :JPS ◆M0LaMzf5rY :02/11/17 13:08
>>717
そのファイルからしか見えないグローバル変数

>>720
もち、関数に渡す

723 :JPS ◆M0LaMzf5rY :02/11/17 13:09
>>721
理由になってない?
グローバル変数があるのは、分割コンパイルのときに必要だからでしょ?
これが理由になってないの?

724 :デフォルトの名無しさん:02/11/17 13:10
>>723
そのグローバル変数はextern?static?

> グローバル変数があるのは、分割コンパイルのときに必要だからでしょ?
でもどうしてこう思うんだろう・・・

725 :デフォルトの名無しさん:02/11/17 13:11
ペインタとポインタって違うものなのでしょうか?

726 :デフォルトの名無しさん:02/11/17 13:12
エラー番号設定したり。

727 :JPS ◆M0LaMzf5rY :02/11/17 13:13
>>724
は?なにも付けないよ。記憶域クラス指定子はつけないで宣言すんの。
だって他のソースファイルでも同じ変数使いたい時に
グローバル変数がないと不可能ジャン。

728 :デフォルトの名無しさん:02/11/17 13:15
>>727
その通りだが、分割コンパイルのためなのか?(^_^;)

729 :JPS ◆M0LaMzf5rY :02/11/17 13:15
>>728
そうでしょ?じゃあ何のためにグローバル変数があんの?

730 :デフォルトの名無しさん:02/11/17 13:17
>>729
「様々な関数で同じ変数使いたい時」だよ。


731 :JPS ◆M0LaMzf5rY :02/11/17 13:18
>>730
じゃあ複数のソースファイルにわけて分割コンパイルするときは?
グローバル変数じゃん

732 :デフォルトの名無しさん:02/11/17 13:22
おいおいお前らJPSに負けんなよ

733 :デフォルトの名無しさん:02/11/17 13:22
>>731
意味がとおってないぞ。グローバル変数が無くても分割コンパイルはできる。
理由にぜんぜんなっていない。
むしろグローバル変数を出来る限り使わなくするの方がいい、ってのが最近の傾向なのに。

734 :デフォルトの名無しさん:02/11/17 13:22
>>731
> 様々な

735 :デフォルトの名無しさん:02/11/17 13:23
>>733
そんな傾向があるの?

736 :デフォルトの名無しさん:02/11/17 13:24
>>731
( ̄□ ̄;)!!
オレの持ってる本にはグローバル変数は分割コンパイルするときに必要って
書いてあるぞ!
でもグローバル変数なしで、他のソースファイルの変数を参照できんの?
それともただ単に、分けるなって話?

737 :733:02/11/17 13:24
>>735
ここは10年前で時間が止まっているスレですか?

738 :JPS ◆M0LaMzf5rY :02/11/17 13:25
>>734
つまりオレと一緒ってことでしょ?
様々なって他のソースファイルのもって事だべ?

739 :デフォルトの名無しさん:02/11/17 13:26
srand,randはグローバル変数を使っているのかな。

740 :JPS ◆M0LaMzf5rY :02/11/17 13:26
>>737
そういう事どこに書いてあんの?

741 :デフォルトの名無しさん:02/11/17 13:27
最近の言語やってたらそりゃポインタが必要ないかもと思うだろ
C言語でもはじめのうちはライブラリの都合で使うことになるが
基本的には無くても困らないからな

まぁ後で必要になるから少なくともそこまでは勉学に励め

742 :デフォルトの名無しさん:02/11/17 13:27
>>738
わけようがわけまいが関係ないから分割コンパイルのためということにはならないと思う。

743 :733:02/11/17 13:27
>>736
グローバル変数でなきゃ参照できないようなPGを作る時点で問題だろーが。
何のために引数と戻り値があるんだ?

そういえば昔関数の引数と戻り値を一切使わずに全てグローバル変数で受け渡しを行っていたPGがあってぞっとした。
自分がメンテ担当じゃなくて本当にうれしかった。


744 :JPS ◆M0LaMzf5rY :02/11/17 13:28
>>742
そりゃそうだね。すまそ。

745 :デフォルトの名無しさん:02/11/17 13:29
>>743
グローバル変数を使った方がうまくかけることもあるだろう。
externなグローバル変数はなるべく使わない方がいいとは思うが。

746 :デフォルトの名無しさん:02/11/17 13:30
>>744
むしろstaticの方が分割コンパイルで効果を発揮するだろう。
できるだけ通用範囲を狭められるんだから。

747 :JPS ◆M0LaMzf5rY :02/11/17 13:30
>>743
でもさ、俺の持ってる本には
実際のプログラムは何人もの人が集まってやるので、
グローバル変数を使って、他人の書いたソースファイルとの関連性を持つ
みたいに書いてあるYO!

748 :デフォルトの名無しさん:02/11/17 13:30
グローバル変数を使ったほうが良い場合なんてあるのか?
制御とかゲームなどの容量が制限される環境ならわかるが

749 :デフォルトの名無しさん:02/11/17 13:31
>>748
>>716みたいな時は?ダメ?
classがあればそんな必要はないんだけど。

750 :JPS ◆M0LaMzf5rY :02/11/17 13:31
>>746
staticついたファイル内変数はよく使う?
グローバル変数は使うなって事?
まあ、使うことはないけどさ・・・

751 :デフォルトの名無しさん:02/11/17 13:33
構造体を戻り値にすれば良いだろ。

752 :デフォルトの名無しさん:02/11/17 13:35
>>751
呼び出し元で指定(ヘッダーファイルで定義しておく)の構造体をつくって、そのアドレスを関数に渡すということ?

753 :デフォルトの名無しさん:02/11/17 13:39
>>749
元データを引数に、ハッシュを戻り値にすればいいのでは

754 :752:02/11/17 13:42
>>753
うーんと、、よくわからない。
構造体の中にハッシュテーブルを持って、その構造体のアドレスをハッシュ追加やサーチを行う関数に渡したらいいんじゃないかなと思ったんだけど、どう?

755 :デフォルトの名無しさん:02/11/17 13:48
>>754
OK

756 :デフォルトの名無しさん:02/11/17 13:55
>>750
Cプログラミング診断室を一回よんだ方がいい。
http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html

757 :デフォルトの名無しさん:02/11/17 13:59
いまどきグローバル変数を勧めてる本って何なのか気になる
しかもグループ作業に必要ってどういった状況を想定してんだろ

758 :デフォルトの名無しさん:02/11/17 14:06
分散作業かな?
プログラムの部分部分を手分けして作る時。を想定?


759 :デフォルトの名無しさん:02/11/17 14:09
別にグローバル変数使ってもいいと思うけどな。


760 :デフォルトの名無しさん:02/11/17 14:10
>>758
んなこたーない。部分部分を作るときこそ機能単位で処理を分けて必要なものは構造体あたりで渡すはず。
作者がなんちゃってプログラマーなだけだろ。

761 :デフォルトの名無しさん:02/11/17 14:10
双方向リストの交換について悩んでいます。

struct node {
int key;
struct node *prev;
struct node *next;
};

という構造で、双方向リストを記述しているのですが、問題は、ノード同士の
交換です。

ノードが隣り合っている時に交換すると、ポインタの付け替えでつじつまが
合わなくなってしまうのです。具体的には、node->next->prevとかnode->prev->next
が自分自身を指しているので、それを変更するとおかしくなるのです。隣合って
いなければ大丈夫なのですが。

スマートな交換方法はないものでしょうか?

762 :デフォルトの名無しさん:02/11/17 14:13
>>761
swap(x,y){
x=y;y=x;
}
と、しているようなもんだろ。

763 :デフォルトの名無しさん:02/11/17 14:16
>>761
std::list 使え

764 :デフォルトの名無しさん:02/11/17 14:16
>>762
そうだったのですか。ということは、Node tmpとか用意して、
tmp = x; x = y; y = tmp;
とする必要があるのでしょうか?

765 :デフォルトの名無しさん:02/11/17 14:17
>>763
STLは敢えて使わずに、Cだけで記述してみたいのです。

766 :デフォルトの名無しさん:02/11/17 14:17
>>764
それって、常識・・・

767 : :02/11/17 14:17
>>761
スワップ時に一時退避するnodeを用意してやればよいのでは。

768 :デフォルトの名無しさん:02/11/17 14:21
>>766
そうなのですが、リンクリストで隣り合っていなければ、一時変数を用意
しなくてもうまくいくので悩んでいたのです。

>>767
やはりそうしないとだめなようですね。

769 :デフォルトの名無しさん:02/11/17 14:32
便所でいろいろ考えてみたのですが、こんな案はどうでしょう?

A-Bとなっている時にAとBを交換する時

1.A−C−Bという風にダミーノードを挟む
2.B−C−A、交換する
3.B−A、つまりダミーノードを削除する

なんかすっきりしない方法ですが、これしかないのかなあ。

770 :デフォルトの名無しさん:02/11/17 14:35
>>769
すなおに tmp node 使ったほうが速いんでないの?

771 :デフォルトの名無しさん:02/11/17 14:42
>>770
そうしてみます。ありがとうございます。

772 :デフォルトの名無しさん:02/11/17 16:23
外部変数ってのがよくわからないんですけど
わざわざ使う意味っていうのはあるんですか?

773 :デフォルトの名無しさん:02/11/17 16:42
>>772
使わないとかけないかというと、不可能ではない。
参照する可能性のあるすべてのデータを引数として持ってまわればよい。
でも、そうすると引数がやたら増えて面倒なこともある。あまり極端だと
効率も落ちる。たとえば、I/Oエラーのときにlongjmpする場所とか、メモリ
が足りないときにlongjmpする場所とかのjmpbufがあるとき、それら
をすべて引数で渡すこともできるが、io_error_handlerとかmemory_error_handler
とかの外部変数にしとくほうが良いだろう。

あとはerrnoとか。(これも最近は変数と限らないけど、変数で済むなら
そのほうが効率が良い。)

極端なことを言えば、ファイルに1つ外部名を持つ関数さえあれば、あとは
外部名がいらないとも言えるわけだが(呼び出すと、データや関数へのポインタが
たくさん入った構造体を返す)。

774 :デフォルトの名無しさん:02/11/17 16:55
>>773
ありがとうございます。
えーと、つまり引数が減らせるというメリットがあるわけですか?

なにやら、知り合いのPGさんがいうには組み込み系(?よくわかりませんが)
のプログラミングだと外部変数を多用することが多いということだったんですが
これはどういう意味なんでしょうか?

775 :デフォルトの名無しさん:02/11/17 17:11
ココみたいに、
ttp://www5e.biglobe.ne.jp/~liquor/raytrace/
BASICからC言語に変換するには
どうやればいいのですか?


776 :デフォルトの名無しさん:02/11/17 17:12
% bs2c.exe filename -o a.out

777 :デフォルトの名無しさん:02/11/17 17:23
>>774
モジュール間の独立性を高くするには外部変数を使わないほうが良いが、
あまり大きくないプログラムで効率を重視する場合には、外部変数で
データを受け渡したほうがよいこともある。

引数を積むコードが不要になるから。

778 :デフォルトの名無しさん:02/11/17 17:29
>>777
あと、スタック領域の節約にもなるね。組み込みだと重要。

779 :デフォルトの名無しさん:02/11/17 17:46
#include <stdio.h>

typedef int (* fc)();
fc func(int);

int main(){
fc myfunc;
myfunc = func(3);

printf("%d\n", (* myfunc)(20));
return 0;
}

fc func(int n){
int fff(int a){
return n + a;
}

return fff;
}

23を表示して欲しいのですが、40と表示されます。教えて下さい。

780 :デフォルトの名無しさん:02/11/17 17:49
>>779
closure かw
その前にコンパイルできるの?

781 :デフォルトの名無しさん:02/11/17 17:49
>>774
速さやコード効率を追求すると外部変数の使用にぶがある。
ただ、そればっかだとコードの管理が面倒。

782 :デフォルトの名無しさん:02/11/17 17:54
>>774
動的に確保するとフラグメンテーションが起きる

783 :779:02/11/17 17:55
>>780
できますよ。でもaもnもmyfuncの引数になってしまうみたいです。

784 :デフォルトの名無しさん:02/11/17 17:59
>>783
うん。うちの gcc でもコンパイルできた
でも関数内で関数定義するのは規格外じゃなかった?

うちの環境では結果は
-1995389801
最適化コンパイルすると Segmentation fault で落ちる

とりあえず、あなたのやろうとしてることは 779 のコードではできない

785 :779:02/11/17 18:05
>>784
関数内で関数定義できないんですか。ありがとうございました。

786 :デフォルトの名無しさん:02/11/17 18:13
関数内で関数定義できるといい事あったっけ?スコープとか、関数ポインタとか?
Pascalならできるけど・・・・

787 :デフォルトの名無しさん:02/11/17 18:15
>>785
#include <stdio.h>
int f(int n) {
  int ff(int a) {
    return n + a;
  }
  return ff(3);
}
int main(){
  printf("%d\n", (*f)(20));
  return 0;
}
こうなら23と表示された。

788 :779:02/11/17 18:18
>>787
なるほど。でもそれだとクロージャじゃないですよね。


789 :774:02/11/17 18:22
>>777
>>778
>>781
>>782
なるほど。参考になりました、ありがとうございます。

790 :787:02/11/17 18:31
>>788
クロージャについてはよくは知らん。

gcc -ansi -pedantic test.c
test.c: In function `f':
test.c:3: warning: ANSI C forbids nested functions

オプションをいじったらwarningがでた。
ANSI Cの規格外らしい。

791 :デフォルトの名無しさん:02/11/17 19:10
クロージャが作れると、たとえばqsortに渡す比較関数を
その場で作れたりして便利だが、Cにはないね。
C++の局所クラスを使えば似たことは出来る。

Cで、さらにclosureを関数から返したいなんて時はtrampoline使うんだな。
http://web.mit.edu/afs/sipb/project/clisp/new/clisp-1999-01-08/ffcall/trampoline/

792 :デフォルトの名無しさん:02/11/17 23:37
ヒープソートを実装するときに、アップヒープって使いますか?

793 :デフォルトの名無しさん:02/11/17 23:40
ヒップアップは使いません

794 :デフォルトの名無しさん:02/11/17 23:44
>>792
使わないね

795 :デフォルトの名無しさん:02/11/17 23:44
>>793
使わないね


796 :デフォルトの名無しさん:02/11/17 23:48
?:って使う事ある?
絶対ifの方が見やすいと思うんだけど

797 :デフォルトの名無しさん:02/11/17 23:50
k=k+(n%2?n:n+1);

798 :デフォルトの名無しさん:02/11/17 23:50
>>796
max = a > b ? a: b;

if ( a > b )
max = a;
else
max = b;
なら、もれは前者の方が見やすいと思う

799 :デフォルトの名無しさん:02/11/17 23:50
if(n) veryverylongfunc(a,b,c,d,e);
else veryverylongfunc(a,b,c,d,f);
みたいな時には使うよ

800 :デフォルトの名無しさん:02/11/17 23:53
>>798
まじか。オレはif使っちゃう。?:を使うようにしよっと。コソコソ

801 :デフォルトの名無しさん:02/11/17 23:53
ガーン、ぼくのアニーがキスしちゃったよー

802 :デフォルトの名無しさん:02/11/17 23:57
enum
{
 enum_a,
 enum_b,
 enum_c,
}

// デバッグ用。いちいち関数用意しなくても使えるのが利点
#define enum2str(e) (\
 (e)==enum_a?"enum_a": \
 (e)==enum_b?"enum_b": \
 (e)==enum_c?"enum_c": \
 "enum_unknown" )


803 :デフォルトの名無しさん:02/11/18 00:02
>>802
残念だがそりゃ if 使った方が見やすい(てか分かりやすい)と思う

804 :802:02/11/18 00:11
>>803
別に見やすいとはいってないよ。
enumの宣言の真下に書けてメンテしやすくて
テーブルと違って値が範囲外でもちゃんと動作して
リリース時にはリンクされないので
デバッグ時にこう使うこともあるってだけ。

805 :デフォルトの名無しさん:02/11/18 00:13
voidを返す関数は、intを返してreturnしたほうがいいと思うのは
オレだけでつか?

806 :デフォルトの名無しさん:02/11/18 00:14
>>805
それって1ステップくらい遅くなるんじゃない?

807 :デフォルトの名無しさん:02/11/18 00:15
>>805
戻り値は何を意味するんだ?
なにも意味しないんなら無意味どころか害になるよ。

808 :デフォルトの名無しさん:02/11/18 00:15
>>804
796 へのレスじゃなかったの?

>>805
言ってることがよく分からんけど、君だけだと思う

809 :804:02/11/18 00:22
>>808
見易さ以外にも三項演算子を使うケースがあることを示しちゃまずかったかな?

810 :デフォルトの名無しさん:02/11/18 00:37
戻り値ありの関数でreturnしないってのはどうよ。

811 :デフォルトの名無しさん:02/11/18 01:25
クロージャーってのが良く分かんから調べてみたらこんな言葉があった。オブジェクトとは、処理が付加されたデータの事です。クロージャーとは、データが付加された処理の事です。

812 :デフォルトの名無しさん:02/11/18 01:51
クロージャって要するにデリゲートのことだよ。

813 :デフォルトの名無しさん:02/11/18 02:01
デリゲートってなんですか?

814 :デフォルトの名無しさん:02/11/18 02:12
こんな感じか?
オブジェクト:クロージャ
メンバ関数:関数
メンバ変数:環境

cはクロージャとの方が親和性が高い気がするがどうだろう。


815 :デフォルトの名無しさん:02/11/18 09:17
(゚Д゚)ハァ?親和性が高い?

816 :デフォルトの名無しさん:02/11/18 10:51
>>810
それはただのアフォ

>>813
簡単に言えば関数のように使えるオブジェクトの事。
C しかやらないなら知らなくていい。

>>814
C で使えないものを 「親和性が高い」 と言って満足ですか?

817 :デフォルトの名無しさん:02/11/18 11:05
>>816
> 簡単に言えば関数のように使えるオブジェクトの事。
え?delegateって「委譲」だと思ってますが何か?
Cでの関数へのポインタ、C++で言う関数オブジェクトを
C#ではdelegateという用語を使ってると思ってますが何か?

818 :デフォルトの名無しさん:02/11/18 12:42
ネタスレより下がっているのは納得できないage

819 :デフォルトの名無しさん:02/11/18 12:50
C#なんて知らないのでsage

820 :デフォルトの名無しさん:02/11/18 12:54
ここはネタスレだったと思うが

821 :デフォルトの名無しさん:02/11/18 12:55
Cってprintfできたら終わりでしょ?

822 :デフォルトの名無しさん:02/11/18 13:19
>821
( ´д)ヒソ(´д`)ヒソ(д` )

823 :デフォルトの名無しさん:02/11/18 13:21
delegate っていうのは関数ポインタを複数個格納して、
まとめてガリガリって呼び出すだけのモンです。
もちろん一個格納するときにも使えます。
あと、メンバ関数に関しては、呼び出し元オブジェクトへの
ポインタ(C#では参照という)セットで格納できるため、
メンバも呼び出せるように拡張された、関数ポインタです。

つーか、ここにいるC#キチガイ全員死ね。
おれC#好きだけどこいつら嫌い。

824 :デフォルトの名無しさん:02/11/18 14:03
Cしかできないやつ

825 :デフォルトの名無しさん:02/11/18 14:08
whileの中にカンマがついて条件が二個書いてあるの初めて見ました
これってどういう事ですか?

while(printf("]"),(c=getchar())!=EOF)
{
処理部
}


826 :名無しさん@カラアゲうまうま:02/11/18 14:15
プロンプトを表示して入力町ってつもりと思われ。

827 :デフォルトの名無しさん:02/11/18 14:18
>>825
カンマ演算子は、左右のステートメントを 1 つのステートメントとして扱う
以外は ; と一緒です。
なお、カンマ演算子は左側の評価値を捨てます。

828 :825:02/11/18 14:22
>>826
>>827
ありがとう
理解できました

829 :デフォルトの名無しさん:02/11/18 14:38
Bまでしか経験ないんですけど。


830 :デフォルトの名無しさん:02/11/18 14:57
>>829
何事も経験です。
まずはやってみなさい。

831 :デフォルトの名無しさん:02/11/18 16:36
スレのタイトルをみて吐き気を催し、スレを一通り読んで
実際に吐いたのは私だけですか?

832 :デフォルトの名無しさん:02/11/18 16:45
>>831
病院へ逝ってください。

833 :デフォルトの名無しさん:02/11/18 17:05
>>832
おめでたでつた。

834 :デフォルトの名無しさん:02/11/18 17:18
>>833
おめでとうございまつ。

835 :デフォルトの名無しさん:02/11/19 04:34
標準ライブラリのヘッダを見ていて思ったのですが
memmoveの第2パラメータは何でconstなんでしょうか?
知ってる方は教えて下さい。

836 :デフォルトの名無しさん:02/11/19 04:47
>>835
渡したデータを勝手に書き換えたりしない
ってことを明示するため

837 :835:02/11/19 05:07
>>836
memmoveで書き換えされなかったら意味無いんですけど…

838 :デフォルトの名無しさん:02/11/19 05:12
第一パラメータは書き換えされるけど
第二パラメータは書き換えされんでしょが。

839 :835:02/11/19 05:22
それだったらmemcpyで十分でしょう?
memmoveは領域が重なっててもコピー出来るので
第2パラメータの中身も書き換えられる可能性もあるんだから
constでは無いと思ったのですが、間違ってますか?

840 :デフォルトの名無しさん:02/11/19 05:27
>>839
たとえ重なっていたとしても、第二引数が指すものは(ソース上では)書き換えないから。

841 :デフォルトの名無しさん:02/11/19 05:30
標準的な関数でsrc,dst引数がある関数はほぼsrcはconstだな。
インターフェースの統一と言った方が良いかもしれない。
それにsrc=dest=sだとしても書き換えられるのはsrcとしてのsではなくて
destとしてのs。


842 :835:02/11/19 05:36
constって、そう言う意味なの?

843 :デフォルトの名無しさん:02/11/19 05:38
それ言ったら
char *strchr(const char *s, int c);
の戻値はどうしてchar*なんだ

844 :835:02/11/19 05:40
そう言う意味
 ↓
書き換わる事があっても、直接は書き換えない事を明示する事

845 :デフォルトの名無しさん:02/11/19 05:43
   ∧_∧    / ̄ ̄ ̄ ̄ ̄
    (ω・ )ゝ < なんだって?>>843
.  ノ/  /     \_____
  ノ ̄ゝ


846 :デフォルトの名無しさん:02/11/19 05:45
const char *strchr(const char *s, int c);
にしろってこと?

847 :デフォルトの名無しさん:02/11/19 05:51
hoge(char *s, char *t);と
hoge(char *s, const char *ct);で中身が同じだったら
アセンブラ出力は変わらないと思う。
単に *ct = 0; とかあったらコンパイル時にエラーだすだけで。
実行時にチェックするコードは吐かない。

848 :デフォルトの名無しさん:02/11/19 05:54
>>847
変わらないよ。だからどうしたんだ?ん?

849 :デフォルトの名無しさん:02/11/19 05:55
変えないことを保証するようなインテリジェントなコードは吐かないってだけ。

850 :1:02/11/19 06:40
INPUT FORMAT:
* 1行目:2つのスペースに分離された整数NおよびL
* 2行 N+1:NのNラインは数字をスペース分離しました。
SAMPLE INPUT (file palpath.in):
3 3
1 2 3
1 2 3
1 2 3
OUTPUT FORMAT:
単一の整数:回文のパスの総数。
この問題のテスト・データのための答えはすべて署名された32ビットの実体に入ります。
SAMPLE OUTPUT (file palpath.out):
86


851 :1:02/11/19 06:43
>>850
Palindromic Tax Paths = 回文税パス

回文は同じことを前方へ後ろに読んだ数です、例えば1234321(しかし1231ではない).
回文は、長さで1つの数字と同じくらい短くなりえます。

852 :デフォルトの名無しさん:02/11/19 07:10
(゚Д゚)ハァ?何言ってんの?こいつ

853 :デフォルトの名無しさん:02/11/19 12:34
age

854 :ポンキッキだっけ?:02/11/19 13:00
たけやぶやけた
いかたべたかい
たしかにかした
なつまでまつな

回文二十一面相

855 :デフォルトの名無しさん:02/11/19 19:43
いよいよこのスレも焉わりか・・・。

856 :デフォルトの名無しさん:02/11/19 19:51
あのさ、初期化されていない配列の要素が0である保障ってあるの?

857 :デフォルトの名無しさん:02/11/19 19:54
>>856
staticがついているものやグローバルなら。

858 :デフォルトの名無しさん:02/11/19 20:01
>>857
じゃあさ、配列の内容を0で初期化したいためだけに、
staticつけるのって定石?

859 :デフォルトの名無しさん:02/11/19 20:03
全然ちがう。

860 :デフォルトの名無しさん:02/11/19 20:04
違うよねー。やっぱうちの教授まちがってるよー
あのハゲになんとか言ってクレー

861 :デフォルトの名無しさん:02/11/19 20:07
ansiだとstaticなくても0になるんじゃなかったっけ?

862 :デフォルトの名無しさん:02/11/19 20:11
autoなら、ならない。

char t[10] = {'c'};
の後半部分が0になるのと混同しているものと思われる

863 :デフォルトの名無しさん:02/11/19 20:12
char t[10] = {'\0'}; とするとか。

864 :デフォルトの名無しさん:02/11/19 20:31
/* ランダムな配列(効率の悪い方法) */

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define NUMBER 20
int main(void)
{
int i,j,flag=0,data[NUMBER];
srand((unsigned)time(NULL));
for(i=0;i <= NUMBER;i++)
{
do
{
data[i] = (rand()%(NUMBER))+1;
for(j=0;j<i;j++)
if(data[i] == data[j])
{
flag = 1;
break;
}
}while(flag == 1);
flag = 0;
}
for(i=0;i<NUMBER;i++)
printf("%d ",data[i]);
return 0;
}

865 :863:02/11/19 20:32
これってどこ間違ってる?

866 :デフォルトの名無しさん:02/11/19 20:39
>>865
flag = 0l;を入れる場所が違ってた。

int main(void)
{
int i,j,flag=0,data[NUMBER] = {0};

srand((unsigned)time(NULL));
for(i=0;i <= NUMBER;i++) {
do {
data[i] = (rand()%(NUMBER))+1;
for(j=0;j<i;j++)
if(data[i] == data[j]) {
flag = 1;
break;
}
flag = 0;
} while (flag == 1);
}
for(i=0;i<NUMBER;i++)
printf("%d ",data[i]);
return 0;
}

867 :デフォルトの名無しさん:02/11/19 20:44
i <= NUMBERということは、 i == NUMBERな時に
data[i] =... が実行されるので、buffer overrun.

そもそも、1〜Nの順列を、乱数で交換していくほうがいいとおもう

868 :デフォルトの名無しさん:02/11/19 20:45
スマソ。バグってたので直した。goto文はマナー違反だが
動くことは動く。

int main(void)
{
int i,j,flag=0,data[NUMBER] = {0};

srand((unsigned)time(NULL));
for(i=0;i < NUMBER;i++) {
do {
data[i] = (rand()%(NUMBER))+1;
for(j=0;j<i;j++)
if(data[i] == data[j]) {
flag = 1;
goto label;
}
flag = 0;
label:;
} while (flag == 1);
}
for(i=0;i<NUMBER;i++)
printf("%d ",data[i]);
return 0;
}

869 :863:02/11/19 20:46
>>866
禿蟻
はげしくありがとう

870 :863:02/11/19 20:48
ん?
最初のソースのflag=0を場所変えるだけじゃだめ?

871 :デフォルトの名無しさん:02/11/19 21:06
>>870
だめですた。同じ値が2回以上出てしまいます。

872 :デフォルトの名無しさん:02/11/19 21:08
>>870
goto文を取り去ってみたよ。

int main(void)
{
int i,j,flag=0,data[NUMBER] = {0};

srand((unsigned)time(NULL));
for(i=0;i < NUMBER;i++) {
do {
data[i] = (rand()%(NUMBER))+1;
for(j=0;j<i;j++)
if(data[i] == data[j]) {
flag = 1;
break;
} else
flag = 0;
} while (flag == 1);
}
for(i=0;i<NUMBER;i++)
printf("%d ",data[i]);
return 0;
}

873 :デフォルトの名無しさん:02/11/19 21:14
goto見たの初めてだからちょっと感動した

874 :デフォルトの名無しさん:02/11/19 21:20
Cはいくつかのループを一度に抜ける構文がないので、gotoを使った
方がすっきりする場合がある。もしくはループを別関数にしてreturn
するとか。

875 :863:02/11/19 21:59
ちなみにこれは最悪のアルゴリズムなんだってね。
オレにはよくわからんけど。


876 :デフォルトの名無しさん:02/11/19 22:01
int (*fns[])(struct gmstat*) = {gmmain, gmrank, gment, };
これってどういう意味ですか?

877 :デフォルトの名無しさん:02/11/19 22:18
>>876
fnsはstruct gmstatへのポインタを引数に取りint型を返す関数の配列
へのポインタです。

878 :デフォルトの名無しさん:02/11/19 22:18
じゃなかった、
fnsはstruct gmstatへのポインタを引数に取りint型を返す関数への
ポインタ配列です。

879 :デフォルトの名無しさん:02/11/19 22:23
>>877-878
ありがとうございます。
たぶん理解できそうな気がします。

880 :デフォルトの名無しさん:02/11/19 22:29
char (*next)[10]

char *next[10]
はなにが違うのでせうか?

881 :bloom:02/11/19 22:30

http://www.agemasukudasai.com/bloom/

882 :デフォルトの名無しさん:02/11/19 22:33
>>880
括弧の有無。
つーか優先順位で調べろ

883 :880:02/11/19 22:41
>>881
ありがとうございます。

>>882
本気ですか?

884 :bloom :02/11/19 22:43
>>883
どういたしまして。

885 :880:02/11/19 22:44
>>882
ありがとうございます。

886 :デフォルトの名無しさん:02/11/19 22:58
>>885
どういたしまして。

887 :880:02/11/19 23:05
やっぱりCのスレのレベルが下がってきている。
こんなのにもスカッと答えられる奴がいないのか。

888 :JPS ◆M0LaMzf5rY :02/11/19 23:09
オレがいるYO!

char (*next)[10]は
char型の配列(要素数10)へのポインタで

char *next[10]は
charへのポインタの配列(要素数10)だYO!


889 :デフォルトの名無しさん:02/11/19 23:11
演算子の結合規則と優先順位の表を見ると解る、はずなんだが・・・

890 :880:02/11/19 23:13
>>888
すばらしい。ついでに教えてください。

int * const (*next[10])(char **pStr)

これはなんでしょうか。

891 :JPS ◆M0LaMzf5rY :02/11/19 23:13
>>889
結合規則は関係ないでつ

892 :JPS ◆M0LaMzf5rY :02/11/19 23:16
>>890
えーとね
neztはcharへのポインタのポインタを引数として、intへの変更不可のポインタを
返す関数へのポインタの配列?
なんか違う気がするが?

893 :デフォルトの名無しさん:02/11/19 23:18
>>890
すいません。それってどういうときに使われるものなんですか?

894 :880:02/11/19 23:23
>>892
すばらしい

>>893
はい、文字列のポインタへのポインタを引数に持ち、ポインタの先の値を変更禁止のint型のポインタを返す関数へのポインタを配列に10個ほど入れておきたいときに使います。

895 :デフォルトの名無しさん:02/11/19 23:24
880は新手の荒らしなのか・・・

896 :JPS ◆M0LaMzf5rY :02/11/19 23:27
>>894
文字列のポインタじゃないと思われ。
あと変更禁止なのは、ポインタ自体だと思われ。

897 :デフォルトの名無しさん:02/11/20 00:30
うーん、なんかJPSが成長してる気がする。
皆、みたか。俺たちの息子はこんなに立派になったよ!

898 :デフォルトの名無しさん:02/11/20 01:02
>>897
そうか?何だか頓珍漢なことを言っているような気がするが。

899 :JPS ◆M0LaMzf5rY :02/11/20 01:04
>>898
間違ってまつか?

900 :JPS ◆M0LaMzf5rY :02/11/20 01:05
>>890のは自信がないでつ・・・

901 :デフォルトの名無しさん:02/11/20 01:07
>>899-900
そういうレスでスレ消費すんな。ウザイよ。

902 :デフォルトの名無しさん:02/11/20 01:13
>>891
nextが[]に先にくっついたとして、*の結合規則によってcharに先に
くっつくか、nextにくっつくかが変わるから、関係あるよ。

903 :JPS ◆M0LaMzf5rY :02/11/20 01:14
>>902
そうでつね。すまそ

904 :デフォルトの名無しさん:02/11/20 01:16
>>901
そういうレスでスレ消費すんな。ウザイよ。

以下このスレは煽りのみで1000を目指すスレになりました。

905 :デフォルトの名無しさん:02/11/20 01:52
次スレどうすんの?
一応age

906 :デフォルトの名無しさん:02/11/20 01:56
foo.h
extern int ( *r[2] ) ( int, int ) ;

foo.c
#include "foo.h"
int ( *r[2] ) ( int, int ) ;

hoge.h
static int r ( int, int ) ;

hoge1.c
#include "foo.h"
#include "hoge.h"
int r ( int x, int y ) {
return x + y ;
}

hoge2.c
#include "foo.h"
#include "hoge.h"
int r ( int x, int y ) {
return x - y ;
}

上のようなファイルを分割コンパイルする時に
関数の名前や修飾子を変えずに*r[2]の初期値を
r[0]=r(hoge1.c),r[1]=r(hoge2.c);
にする方法はありますか

907 :デフォルトの名無しさん:02/11/20 03:04
>>906 gccでいいのなら、

==> foo.c <==
#include "foo.h"
extern int r1(int,int);
extern int r2(int,int);
int ( *r[2] ) ( int, int ) = { r1,r2 };

==> foo.h <==
extern int ( *r[2] ) ( int, int ) ;

==> hoge.h <==
static int r ( int, int ) ;

==> hoge1.c <==
#include "hoge.h"
int r ( int x, int y ) {
return x + y ;
}
int r1(int,int) __attribute__ ((weak, alias ("r")));

==> hoge2.c <==
#include "hoge.h"
int r ( int x, int y ) {
return x - y ;
}
int r2(int,int) __attribute__ ((weak, alias ("r")));


908 :デフォルトの名無しさん:02/11/20 03:57
ありがとうございます。
でも、やっぱり通常の方法では無理のようなので、
staticをexternに変えマクロで対応する事にします。

909 :デフォルトの名無しさん:02/11/20 14:58
DOS窓に♥を表示する方法を教えてください

910 :デフォルトの名無しさん:02/11/20 15:05
DWORD written;
WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE),
&L"&heart;", 1, &written,0):

911 :デフォルトの名無しさん:02/11/20 15:15
>>910
何も表示されませんですた。

912 :デフォルトの名無しさん:02/11/20 15:18
WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE),
&L"\x2661", 1, &written,0);

あ、Win9Xじゃ無理だから。

913 :デフォルトの名無しさん:02/11/20 15:58
>>912
WINDOWS98ででき方法はありませんか

914 :デフォルトの名無しさん:02/11/20 16:06
まず無い。

915 :デフォルトの名無しさん:02/11/20 16:24
外字にパターン定義して出力ならできるかもね。


916 :デフォルトの名無しさん:02/11/20 16:33
そういえば前、DOS 窓にスライム表示してた香具師がいたな。
どうやるんだっけ?

・・・スレ違いっぽいけど、過去ログ dat 落ちしてるしナー。

917 :デフォルトの名無しさん:02/11/20 17:56
printf("あいうえお");のように日本語をそのまま渡しても大丈夫なのでしょうか?
もし日本語の中に%を含む文字があったらまずいと思うのですが。

918 :デフォルトの名無しさん:02/11/20 17:57
Cのみで図形とか線とか書けますか?

919 :デフォルトの名無しさん:02/11/20 17:59
>>917
SJIS/EUCなら%(0x25)を含む文字セットは存在しませんが何か?

920 :デフォルトの名無しさん:02/11/20 18:03
>>919
JISは?

921 :デフォルトの名無しさん:02/11/20 18:05
>>918
描ける。
但し環境依存。

922 :デフォルトの名無しさん:02/11/20 18:05
\が含まれていたら?

923 :デフォルトの名無しさん:02/11/20 18:05
"が含まれていたら?

924 :デフォルトの名無しさん:02/11/20 18:15
結局printfにそのまま日本語を渡すのはまずいということですか?
printf("%s", "あいうえお");みたくすれということでしょうか?

925 :デフォルトの名無しさん:02/11/20 18:16
>>924
>>922>>923

926 :デフォルトの名無しさん:02/11/20 18:20
?は\?とかかなければならないんだっけ?


927 :デフォルトの名無しさん:02/11/20 18:21
>>920
存在しますが何か?

>>922
その場合、printfだけでなく、コメント中や文字列リテラルに
\を含む文字列「ソ(0x835C)」などが入ってるとコンパイルエラーに
なって嵌ったことがありますが何か?

>>923
SJIS/EUCなら"(0x22)を含む文字セットは存在しませんが何か?

928 :デフォルトの名無しさん:02/11/20 18:23
>>927
コメントでも問題あるの?

929 :デフォルトの名無しさん:02/11/20 18:23
プロジェクト内の一人がフォルダのパス作るために
sprintf(buf, "%s\\表計算\\", path);
とやって大変なことになったとかいう話なかったっけ。

930 :デフォルトの名無しさん:02/11/20 18:24
おまえらprintfで日本語表示するときどうやってるのか問いたいです。

931 :デフォルトの名無しさん:02/11/20 18:25
>>930
ごく普通にprintf("日本語");
問題あるようなら他の表現を使う。

932 :デフォルトの名無しさん:02/11/20 18:31
おとなしく日本語対応のコンパイラ使えよ・・・。

933 :デフォルトの名無しさん:02/11/20 18:40
printf("日本語漢字\x95\x5c示");
としてますがなにか?

934 :デフォルトの名無しさん:02/11/20 18:46
>>932
・・・・・・・・あぁ?

935 :デフォルトの名無しさん:02/11/20 18:53
>>933
そうすると何かいいことあるの?(^o^*)

936 :デフォルトの名無しさん:02/11/20 19:08
mallocの使用は御法度なんですか?

937 :デフォルトの名無しさん:02/11/20 19:09
>>936
環境によっては。
通常は問題無い。

938 :デフォルトの名無しさん:02/11/20 19:16

コメントや文字列リテラルで使える文字セットは
(基本的な英数字や記号以外)処理系定義だから、
コンパイラのマニュアル読め

としか…

939 :デフォルトの名無しさん:02/11/20 19:18
>>938
コメントは*/以外なんでもOKじゃないの?

940 :デフォルトの名無しさん:02/11/20 19:28
>>939
ダメでつ。

941 :デフォルトの名無しさん:02/11/20 19:33
>>921
一本の線を表示する簡単なソース書いてほしい。

942 :デフォルトの名無しさん:02/11/20 19:36
printf("──────────");

943 :デフォルトの名無しさん:02/11/20 19:41
>>942
すごく簡単ですねありがとうございます!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

944 :デフォルトの名無しさん:02/11/20 19:43
>>921
縦の線を一本表示するソースを書いてくれませんか?

printf("|");    とかは無しね

945 :デフォルトの名無しさん:02/11/20 19:58
printf("┃");

946 :デフォルトの名無しさん:02/11/20 19:59
>>944=ロリ
>>945=熟女マニア

947 :デフォルトの名無しさん:02/11/20 20:04
printf("P1\n# test.pbm\n5 5\n")
for( i=0; i<5; i++ )
printf("0 0 1 0 0\n");

948 :デフォルトの名無しさん:02/11/20 20:06
>>921
斜めで黄色い色が付いている線を一本表示するソースを書いてくれませんか?

949 :デフォルトの名無しさん:02/11/20 20:16
目に黄色いセロファンをあてて、なんとかプログラムつくって見ましょう。

950 :デフォルトの名無しさん:02/11/20 20:18
printf("$E[33;1m/$E[0m");

951 :デフォルトの名無しさん:02/11/20 20:19
printf("\x1B[33;1m/\x1B[0m");

952 :デフォルトの名無しさん:02/11/20 20:20
<FONT color="yellow">/</FONT>

953 :デフォルトの名無しさん:02/11/20 20:20
ANSI.SYSがありません。

954 :デフォルトの名無しさん:02/11/20 20:22
>>1
| GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
-- 中略 --
| 上記を逸した場合の結果は激しく未定義とする。

というわけで、ANSI.SYS が無くても漏れは気にしません。

955 :デフォルトの名無しさん:02/11/20 20:23
>>948
斜めで黄色い色が付いている線を一本表示するソース


書いたよ (・∀・)

956 :デフォルトの名無しさん:02/11/20 20:26
ということは、セロファンが一番正解という事か・・・

957 :948:02/11/20 20:30
ポケコン買います。


>>956
むりぽ

958 :デフォルトの名無しさん:02/11/20 20:49
ポケコンだと表示されてない部分が黄色くなりそうだな

959 :948:02/11/20 20:52
>>958
セロファンでつか?

960 :デフォルトの名無しさん:02/11/20 21:33
ポケコンの場合、セロファンなんか貼らなくてもデフォルトでそうだったりしますが何か?

961 :デフォルトの名無しさん:02/11/20 21:52
char *c[44] = {"C言語のことは漏れに聞け!"};
http://pc3.2ch.net/test/read.cgi/tech/1037796472/

962 :デフォルトの名無しさん:02/11/20 21:56
乙華麗ー

963 :デフォルトの名無しさん:02/11/20 22:56
立てちゃったのか・・・。

964 :デフォルトの名無しさん:02/11/20 23:17
>>953
ansi.sys

965 :デフォルトの名無しさん:02/11/20 23:23
>>964 のつっこみの意味がよくわからないのですが、誰か知りません?

966 :デフォルトの名無しさん:02/11/20 23:42
ansiだけに安心しろ!
なんちゃって(^^)

967 :デフォルトの名無しさん:02/11/20 23:44
これは言葉のあやだけど、

966 氏ね。

968 :デフォルトの名無しさん:02/11/21 00:08
>>967
(^_^;)

969 :デフォルトの名無しさん:02/11/21 00:56
日本語と英語の配列のとりかたの違いは?

970 :デフォルトの名無しさん:02/11/21 01:00
>>969
新スレあるんだからageるな。

971 :デフォルトの名無しさん:02/11/21 01:02
charでシフトJISでしょうか?

972 :デフォルトの名無しさん:02/11/21 01:07
wchar

973 :デフォルトの名無しさん:02/11/21 01:10
char チャー
wchar ワチャー!!

974 :デフォルトの名無しさん:02/11/21 02:20
チャースレに(・∀・)カエレ!

975 :デフォルトの名無しさん:02/11/21 19:38
      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ <  1098取り合戦、いくぞゴルァ!!    ,,、,、,,,
    /三√´д`) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,     \エーーーーーーーッ!?/
      //三/|三|\     
      ∪  ∪       (´д`)´д`(´д`)´д`(´д`)´д`(´д`)´д`(´д`)
 ,,、,、,,,       ,,、,、,,,      ,,、,、,,,     ,,、,、,,,        ,,、,、,,,
      ,,、,、,,,      (´д`)´д`(´д`)´д`(´д`)´д`(´д`)´д`(´д`)´д`(´д`)

http://big.freett.com/scheme_a/num1000.swf

976 :デフォルトの名無しさん:02/11/22 02:33
よしぁぁ!! 1000とったぁぁぁぁ!!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ∩)    (´´
     ∧∧ノ  つ  (´⌒(´
  ⊂(゚Д゚⊂ ノ≡≡(´⌒;;;≡≡≡
         ̄ ̄   (´⌒(´⌒;;
     ズザーーッ

977 :デフォルトの名無しさん:02/11/22 02:33
・・・・・・・・・
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
     ∧∧        (´;;
  ⊂(゚Д゚⊂⌒`つ (´⌒(´

978 :デフォルトの名無しさん:02/11/22 02:34
早すぎたか・・・・・・・・・
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
     ∧∧
  ⊂(  ゚Д゚⊂⌒`つ; (´⌒(´

979 :デフォルトの名無しさん:02/11/22 02:34
ドッコイショと、・・・・・・・・・
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
     ∧∧
    (゚Д゚ ,)⌒ヽ
     U‐U^(,,⊃'〜... (´⌒;;

980 :デフォルトの名無しさん:02/11/22 02:34
何見てんだゴルァ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
  ポ  ∧∧  ポ
  ン  (゚Д゚ ,) . ン
   (´;) U,U )〜 (;;).
(´)〜(⌒;;UU (´ )...〜⌒(`)

981 :デフォルトの名無しさん:02/11/22 23:37
ドボルザークが

982 :デフォルトの名無しさん:02/11/22 23:37
レ・ミゼラブルの

983 :デフォルトの名無しさん:02/11/22 23:39
ミュージカルを書いて

984 :デフォルトの名無しさん:02/11/22 23:45
ファクスで送る

985 :デフォルトの名無しさん:02/11/22 23:49
ソプラノ歌手の

986 :デフォルトの名無しさん:02/11/22 23:56
ラップがウケて

987 :デフォルトの名無しさん:02/11/22 23:58
シングル出せば

988 :デフォルトの名無しさん:02/11/23 00:00
堂々一位

989 :デフォルトの名無しさん:02/11/23 00:08
印税ガッポリ

990 :デフォルトの名無しさん:02/11/23 00:45
1000

991 :デフォルトの名無しさん:02/11/23 01:30
       ,. -‐-、__
       ,'´/,','二ヽヽ、
       r'^Y´, -‐-,`ヽ}
       ;ヽ、Yム__ハ、`{_
      ,'゙ヽ._!= , =Y } i    キン♪キン♪
      ∧  .ト、"ワ".イ/j !     キングゲイナ♪
     { `ー'ト、`゙´/イく
      `、__,/\>'</ ∧
       ,'  〈 () / / |
       ,'  ,/`ー./ (__,, |
    ((  / /∧   {ニニニ二|、 ))
     / (_, ∧ ヽ__j⌒7-ーヘヽ.
      〈`ー / ヽ  `~´∧  )ノ〉
     ヽ./` ー-ニニニニ-‐へ´/
       `iー┬r‐r┬┬ ''"
.        レ' ⌒Y⌒ヽ.!
         `ー─'`‐─'

211 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)