トップページ⇒tech
1001コメント267KB

C言語なら、俺に聞け! <21>

レス数が1000を超えています。これ以上書き込みはできません。
0001伝説の日下部陽一NGNG
漏れは38才、21年間プログラムを一生懸命作ってきた。
いろいろな言語を極めたが、一番手になじむのはCだった。
Cのことならぜんてわかるから、疑問な点があったら漏れに聞け。

だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。

・comp.lang.c FAQ
http://www.eskimo.com/~scs/C-faq/top.html
・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART3
http://pc.2ch.net/test/read.cgi/tech/1016722820/

・前スレ
<20> http://pc.2ch.net/test/read.cgi/tech/1021459016/

他のリンクは>>2-を見な。
0002伝説の日下部陽一NGNG
コンパイラ

ぼくもgccは好きです!
http://gcc.gnu.org/

タダで使えるBorland C++!
http://pc.2ch.net/test/read.cgi/tech/1002377328/l50

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

その他
http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html
http://www.bloodshed.net/index.html
0003デフォルトの名無しさんNGNG
(゚Д゚)/
お疲れー
0004デフォルトの名無しさんNGNG
ともっち大好き!!!
0005デフォルトの名無しさんNGNG
            ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` )<  ともっち!大好きだ−!
          /,  /    \___________
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /
        /    \
0006デフォルトの名無しさんNGNG
ともっち!ハァハァ!
0007デフォルトの名無しさんNGNG
糞壁だと質問が付きにくい、という罠。
もはや知らん人の方が多いと思われ。
0008デフォルトの名無しさんNGNG
\ママ〜また1000横取りされちゃったよ〜
 \やつら殺してやりたいよ〜
  \__________
      ∨    ∧_∧
           " 。  。 ミ   / ̄ ̄ ̄ ̄ ̄
            ゝ∀ く  < あらあら、まあまあ
           ∧_∧  |   \_____
        三  (    とノ
      三   /   つ |
     三  _ ( _  /|  |
        (_ソ(_ソ(_ )
0009デフォルトの名無しさんNGNG
てめーら、ともっちで立て直せ!
0010デフォルトの名無しさんNGNG
僕は、17歳高校2年生。
3ヶ月前まではこんなことを言って皆さんをハァハァさせてしまいました。
http://pc.2ch.net/test/read.cgi/tech/1014370940/
だけど、それから優しいお兄さんたちにいろいろと教えてもらいながら、
勉強することで、C言語を大体マスターすることができました。

今ゲームを開発しているのですが、兄さんは僕自身を開発するとか
言って、なかなかプログラミングに集中させてくれません。
質問するたびに僕の体を触ってくるので正直困っちゃってます。
ぼく自身、そういうのは好きだけど、それだけじゃゲーム作りが進まないので、
ここに質問させてください。よろしくお願いします。
FAQ的な質問ならぼくも回答します。間違いがあれば、先輩方の訂正を
お待ちしております。

なお、課題の○投げは一応別スレへ、ということでお願いします。

プライベートな質問に関してはスレの950が過ぎたあたりから受け付けますので
それまでそういったことは、なるべく謹んでください。



0011デフォルトの名無しさんNGNG
                     ノ⌒)
         ∧_∧     ( _ノ、ノ
         ( ´Д`)    / /  。
       /⌒    ⌒'/ /    。
      /_/|       / /     。
    (ぃ9 ./    / //      。
       /   / /3
      (   / //
       \. \\
         \. \\
          >  ) )
         / //
         / / /
         / / /
       ( ヽ ヽ
        \__つ)

0012ともっちNGNG
僕は、17歳高校2年生。
3ヶ月前まではこんなことを言って皆さんをハァハァさせてしまいました。
http://pc.2ch.net/test/read.cgi/tech/1014370940/
だけど、それから優しいお兄さんたちにいろいろと教えてもらいながら、
勉強することで、C言語を大体マスターすることができました。

今ゲームを開発しているのですが、兄さんは僕自身を開発するとか
言って、なかなかプログラミングに集中させてくれません。
質問するたびに僕の体を触ってくるので正直困っちゃってます。
ぼく自身、そういうのは好きだけど、それだけじゃゲーム作りが進まないので、
ここに質問させてください。よろしくお願いします。
FAQ的な質問ならぼくも回答します。間違いがあれば、先輩方の訂正を
お待ちしております。

なお、課題の○投げは一応別スレへ、ということでお願いします。

プライベートな質問に関してはスレの950が過ぎたあたりから受け付けますので
それまでそういったことは、なるべく謹んでください。
0013デフォルトの名無しさんNGNG

                     ノ⌒)
         ∧_∧     ( _ノ、ノ
         ( ´Д`)    / /  。
       /⌒    ⌒'/ /    。
      /_/|       / /     。
    (ぃ9 ./    / //      。
       /   / /3
      (   / //
       \. \\
         \. \\
          >  ) )
         / //
         / / /
         / / /
       ( ヽ ヽ
        \__つ)
我慢できない、、、、
0014デフォルトの名無しさんNGNG
くだらんことで荒らすなよ。
0015デフォルトの名無しさんNGNG
http://tomotti69.hotmail.com
0016デフォルトの名無しさんNGNG
ともっちスレはマ板にあるだろ!
いい加減にしろよ!!
0017991NGNG
というわけで前スレよりやってきました。
>>前スレ994さん

その参考書には、「C言語ではグラフィックに対して
規定の書き方が米国の委員会では定まっていないため
いろいろあるから、オーソドックスなものをここに記す。」
みたいな事を書いていたのですが、
そのgraphics.hないので困ってます。
そこで、グラフィックソフトのglibw32.libをDLし
解説どおり.cfgのIとLにパスを書いたのですが、
うまくincludeできません。#include"glibw32"
としても、コンパイルしかけたあとに
外部シンボルがどうとか言ってエラーになります。
DOS上で「bcc32 〜.cpp glibw32.lib」とすれば
うまく表示できます。フォルダの階層も間違いなく
指定できてるように見えるのですが…。う〜ん。
0018デフォルトの名無しさんNGNG
http://www.kobayashi.co.jp/seihin/abn/01.html
@いぼん
0019デフォルトの名無しさんNGNG
元祖ともっちスレで最初にホモねたふったの私です。
申し訳ありません>C墓のみなさん

みなさん、ここは技術板です。
プライベートなネタはマ板でよろしくお願いします。
http://pc.2ch.net/prog/
0020デフォルトの名無しさんNGNG
>>17
#include <graphics.h>
はヘッダーを取り込むだけ。
標準以外のライブラリはコマンドラインなりで明示的に指定しないとリンクできない
#pragma comment(lib, "glibw32.lib")
これで出来るかもしれない
0021デフォルトの名無しさんNGNG
            ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` )<  誰になんと言われようとも俺はともっちのことが好きだ−−−!
          /,  /    \___________
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /
        /    \
0022デフォルトの名無しさんNGNG
>>21
ともっちは俺のだから、見てるだけにしといてね
0023991NGNG
>>20
わかりました。やってみます。
ただ、今は学校の図書館なのでコンパイルできる環境がないです。
テキストにコピーして持って帰って試してみます。
0024デフォルトの名無しさんNGNG
このスレ、回転が速すぎ。
Win32のスレとか、VC++のスレとか、使い分けて分散して欲しい。
0025デフォルトの名無しさんNGNG
>>24
でも質問の内容はCの構文と標準関数が殆どだよ。
0026do?f?lNGNG
Cプログラムをコンパイルして出来る
実行形式ファイル名って自分で変えられる

・・・よね?
0027デフォルトの名無しさんNGNG
>>26
御心配なく。
a.outをwin.exeにリネームしてもコンソールにhollo worldがでてきましたから。
0028デフォルトの名無しさんNGNG
>>27
horror word?
0029デフォルトの名無しさんNGNG
a.outをmicrosoft.comにリネームしたら・・・

大量のcoreファイルが出力されました。
0030デフォルトの名無しさんNGNG
>>25
せめて、宿題は宿題スレに行ってほしいと思う今日このごろ。
0031デフォルトの名無しさんNGNG
age
0032デフォルトの名無しさんNGNG
>>26
単なるファイルだからできる。
できるけどWinなら使えなくなる可能性はある。
0033デフォルトの名無しさんNGNG
            ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` )<  >>19なんでてめえがあやまってんだよ!
          /,  /    \___________
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /
        /    \
0034デフォルトの名無しさんNGNG
DE キタ━━(゚∀゚)━━ァ!

0035クラカーの卵NGNG
pythonってどうなんでしょうか?
0036質問NGNG
{
// TODO: この位置にコントロール通知ハンドラ用のコードを
追加してください

CWnd * h=GetDlgItem(IDC_PICT1);
CDC * pDC=h->GetDC();

CButton*r1=(CButton*)GetDlgItem(IDC_RADIO1);//チェックボタン
CButton*r2=(CButton*)GetDlgItem(IDC_RADIO2);
CButton*r3=(CButton*)GetDlgItem(IDC_RADIO3);
CPen p,*oldp;
if (r1->Getcheck())
p.CreatePen(PS_SOLID,1,RGB(255,0,0));
else if (r2->Getcheck())
p.CreatePen(PS_SOLID,1,RGB(0,255,0));
else
p.CreatePen(PS_SOLID,1,RGB(0,0,255));
oldp=pDC->SelectObject(&p);

pDC->Ellipse(20,20,150,150);//円を書く

pDC->SelectObject(oldp);

}


--------------------構成: a02 - Win32
Debug--------------------
リソースをコンパイル中...
コンパイル中...
a02Dlg.cpp
C:\VC++6.0DATA\TEST1\a02\a02Dlg.cpp(186) : error C2039:
'Getcheck' : 'CButton' のメンバではありません。
c:\program files\microsoft visual
studio\vc98\mfc\include\afxwin.h(2704) : 'CButton'
の宣言を確認してください。
C:\VC++6.0DATA\TEST1\a02\a02Dlg.cpp(188) : error C2039:
'Getcheck' : 'CButton' のメンバではありません。
c:\program files\microsoft visual
studio\vc98\mfc\include\afxwin.h(2704) : 'CButton'
の宣言を確認してください。
cl.exe の実行エラー

a02.exe - エラー 2、警告 0

なんで??
0037デフォルトの名無しさんNGNG
GetCheck ?
0038デフォルトの名無しさんNGNG
>>36
これほど親切なエラーメッセージより分かりやすい説明は漏れには出来ん
0039質問NGNG
CBottunの宣言ってなんなのさー
ちゃんと宣言してるのに。しだりないってか?
0040デフォルトの名無しさんNGNG
>>37=39もしかしてブビ上がり?
004140NGNG
スマソ>>37

>>36=39もしかしてブビ上がり?
0042デフォルトの名無しさんNGNG
せめてタイプミスなんかは自分で解決してほしい。
さらに言えば質問する前にスレを選んで欲しい。
0043質問NGNG
GetCheckってとこがまちがってるの?
0044デフォルトの名無しさんNGNG
>>42
三村 (;´д`).。oO( Typo かyp! )
0045デフォルトの名無しさんNGNG
>>35
こっちへ。
Pythonお勉強スレッド Part2
http://pc.2ch.net/test/read.cgi/tech/1020718991/l50
0046デフォルトの名無しさんNGNG
localtime って static 変数へのポインタ返すの?

連続して呼んだら結果失われる?
0047デフォルトの名無しさんNGNG
>>46
その通り。結果を残しておきたかったら、どこかにコピーしなければならない。
0048デフォルトの名無しさんNGNG
質問があります。

C言語でのブール値の扱いについてなんですが、
 #define FALSE 0
 #define TRUE (!FALSE)
ってありますが、
これって
#define FALSE 0
#define TRUE 1
でも同じですよね、
!FALSEの式の値は1なので。。。。(組み込みの演算なので)

厨房の漏れに教えてください。

0049デフォルトの名無しさんNGNG
(´-`).。oO(CにTRUE、FALSEなんてあったっけ?)
0050785NGNG
ないから定義してるんだRO
0051デフォルトの名無しさんNGNG
つか、true, false使えよ。
005250NGNG
しまった。785って。。。(鬱
005348NGNG
>50
そうです。

C99には_Bool型ってのがあるらしいけど。。。


0054デフォルトの名無しさんNGNG
!は非ゼロをゼロに
ゼロを非ゼロにします。
K&Rか規格書でも読みなさいな
0055デフォルトの名無しさんNGNG
そうそう。
strcmpの戻り値は1,0,-1のどれかだと思っている人も多い。
005648NGNG
>54
それは資料等を見て、知っておりますが、

int i;

i= !0;
printf("%d",i);

ってやると
1
という結果が得られるのですが、
是は処理系依存?

vc++とgcc(cygwin)ではそうなったのですが。
もしかしたら、 組み込みのブール値扱いになって、!0自体の式の値が1に
なって、こういう結果になるのかなって思いまして。。。
0057デフォルトの名無しさんNGNG
>>47

そうか、ありがとう。
なんで構造体直接返さないんだろう。
0058デフォルトの名無しさんNGNG
>>56
処理系依存。
0059デフォルトの名無しさんNGNG
strcmp()の戻り値って、0と!0だけじゃ都合悪いの?
0060デフォルトの名無しさんNGNG
>>59

それだと辞書順ソートができないだろうが。
006154NGNG
スマソ
K&Rには0か1しかならないと書いてあった。
0062デフォルトの名無しさんNGNG
>>59
strcmpは同じかどうかを判断するための関数じゃなくて、大小を比較するための関数。
0063デフォルトの名無しさんNGNG
>>61
何ページ?
0064デフォルトの名無しさんNGNG
>>57
構造体を=を使ってそっくりそのまま代入できると保証されたのはANSI Cからだからじゃない?
0065デフォルトの名無しさんNGNG
!演算子は0か1を返すと規格で定められている。
結果の型はint。

処理系依存じゃないよ。
0066デフォルトの名無しさんNGNG
>>65
そうなのか。
じゃあこれからはi=1の代わりにi=!0を使おう。
0067デフォルトの名無しさんNGNG
構造体の値を返す関数って標準ライブラリにはないんじゃない?
似たことをやるときも「結果はここへ書け」というアドレスを引
数として渡すのがC伝統のスタイル。

最近Unixで追加されたリエントラントなバージョン(localtime_r
とかasctime_rとかstrtok_rとかgethostbyname_rとか)もその
スタイルになっている。
0068デフォルトの名無しさんNGNG
そりゃ構造体がでかかったらオバーヘドがイパーイかかってだめYO
0069デフォルトの名無しさんNGNG
strcmp()って大小比較する関数だったんだ、、
勉強になる、感謝
0070デフォルトの名無しさんNGNG
そうか、やはり値を返すと効率悪いからかな。
必要なときは自分でコピーしろと。Cらしいな。
0071デフォルトの名無しさんNGNG
FILE *fopen(const char*, const char*);
この戻り値から推測するに、、、
fopen()でどこかにFILE構造体の変数を宣言して、fclose()で変数解放って寸法でしか?
ストリームとか全然分からないけど
0072デフォルトの名無しさんNGNG
>>71
そういう時はライブラリのソースを読むのが一番よい。
0073デフォルトの名無しさんNGNG
超初心者に超やさしいサイト教えてください・・・
0074デフォルトの名無しさんNGNG
71じゃないけど
やぱーりメモリ確保して解放してたのね。
ライブラリてソースややこし。
#if の嵐。
0075デフォルトの名無しさんNGNG
>>73
猫んどけ。
0076デフォルトの名無しさんNGNG
>>73
http://www.bekkoame.ne.jp/~medaka/r_c/c_class.html
↑ここなんかなかなかわかりやすいと思うのだが・・・・
0077デフォルトの名無しさんNGNG
>>76
いやしかし、しょっぱなから void main()とやっているな・・・・・
やっぱり勧めるのやめようかな・・・・・
0078デフォルトの名無しさんNGNG
くだらない質問でスマソ
int *p ;
p = (int *)malloc(0) ;
これって、pの値は処理系依存ですか?
それとも、NULLになるんですか?
0079デフォルトの名無しさんNGNG
不定だよん。
008048NGNG
54さん
65さん

ありがとう〜。

組み込みのブール値扱いでよかったんですね。

008178NGNG
>>79
不定って、もしかして、あの
「何が起きても、おかしくない」
っていう不定ですか
0082デフォルトの名無しさんNGNG
>>78
そうそう
コンピュータがいきなり壊れても
突然ペットの犬(ジェニファー)が死のうとも
突然アナルにバイブが差し込まれても文句は言えない。
0083shigeNGNG
malloc(0) の動作は処理系依存であり、NULL を返すかユニークなポインタを返すかのいずれかになる (ISO/IEC 9899:1990 7.10.3)。処理系に依存するため、特定の動作を期待したプログラムは書かない方が良いだろう。

ちなみに、malloc(0) がユニークなポインタを返す場合は、malloc() がふつうに返すポインタと同じで、malloc() が管理する領域に "少なくとも 0 バイト" の領域を作ってその先頭のアドレスを返すだけである。NULL を返さない理由としては、

n バイトの領域を確保する
その n バイトの領域を使う
最後にその n バイトの領域を解放する
という一連の処理で、n が 0 か 1 以上かで場合分けしなくてすむようになるから、というのが考えられる。

008478NGNG
>>83
かなり怪しいお名前ですが、ありがとうございます
0085デフォルトの名無しさんNGNG
なんだC++がわからなくて荒らして他のはおまえか
0086デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C++
0087デフォルトの名無しさんNGNG
( ΦωΦ)=○)'3') ←shige = matumoto = Ruby
0088デフォルトの名無しさんNGNG
"A >>>>>> B" は、「Aは遥かな道のりを経てBへと進化する」と読みます。
そこの所をお間違えなく。
0089デフォルトの名無しさんNGNG
入門するときはやはり本を買ったほうがいいのかな・・・・?
0090デフォルトの名無しさんNGNG
K&RのP22、文字数のカウントすつところでテキスト通り
long nc;
nc=0;
while(getchar() != EOF)
++nc;
printf("%ld\n",nc);
ってやってるのに、testとタイプしても何も表示されません。
次の
double nc;
for(nc = 0; getchar() != EOF; ++nc)
;
printf("%.0f\n",nc);
でも文字数がカウントされるはずなのに何も表示されません。
ご教授ください
0091デフォルトの名無しさんNGNG
>>90
WindowsならCtrl+Z、UNIXかまたはWindowsでもcygwinならCtrl+Dを押して
EOFを入力すること。
009290NGNG
>>91
おお、できました。
勝手に最後をEOFと見てくれないんですね。
勉強になりました。
0093 NGNG
>>90
test とタイプした後、EOF の入力として CTRL-D をタイプする。(UNIX or Linux)
Windows or DOS なら CTRL-Z だっけ?
このスレかどっかでも議論になってたな。
もしくは
0094デフォルトの名無しさんNGNG
>>92
一行読み込んだ時点で最後と見なされる仕様だと
二行目以降が扱えないじゃん・・・
0095デフォルトの名無しさんNGNG
>>94
そんな時は全体をwhile (1)かfor (; ; )などで囲めばよい。
0096デフォルトの名無しさんNGNG
>>79
malloc(0)の値は不定じゃないです。
0097デフォルトの名無しさんNGNG
>>96
不定だよ。C++のnewと混同してない?
0098デフォルトの名無しさんNGNG
>>96
free(0)が無害なのと混同してるだろ。
0099デフォルトの名無しさんNGNG
>>96
realloc(p,0)がfree(p)と等価なのと混同しているだろ。
0100デフォルトの名無しさんNGNG
100ズダー
0101デフォルトの名無しさんNGNG
>>83 ホンモノですか?
010296NGNG
不定じゃないってば。みんなてきとーなこと言わないで。

7.20.3 Memory management functions

If the size of the space requested is
zero, the behavior is implementation-defined: either a null
pointer is returned, or the behavior is as if the size were
some nonzero value, except that the returned pointer shall
not be used to access an object.

「null pointerを返すか、あたかもnonzeroの引数が渡されたかのように振る
舞う(ただし返されたポインタはオブジェクトをアクセスするのには使えない)。
どちらになるかは処理系定義。」
0103デフォルトの名無しさんNGNG
>>102
不定じゃないけど処理系依存。
どちらにしろ迷惑。
つーかmalloc(0)なんて無意味なことはやめろ。
0104デフォルトの名無しさんNGNG
NULLにもなりうるのか?
うーんそりゃ困った・・・
010596NGNG
>>103
おれはやってないよ。
単に間違いをただしただけでなぜ怒る?負け惜しみ?
0106デフォルトの名無しさんNGNG
>>105
いや、レスの後半は質問した奴に対するレス。
0107デフォルトの名無しさんNGNG
>>96
禿しく外出のことを今さら書いて
鬼の首でも取ったように偉そうに…
0108デフォルトの名無しさんNGNG
0に限らず、mallocに定数を渡すことってある?
0109デフォルトの名無しさんNGNG
>>108
え? sizeof(struct nantoka)って定数だろ。
0110デフォルトの名無しさんNGNG
>>109
ああ、リスト、二分木構造があったか・・・
0111C初心者NGNG
C言語でRS232Cからシリアル通信で

D,5,5

と送信するだけのプログラム書いてもらえませんでしょうか?
すいません。Cがまだ未熟なもんで・・・これさえできません。
お願いします
0112デフォルトの名無しさんNGNG
#include "comm.h"

int main()
{
 return send_comm(1, "D,5,5");
}
0113デフォルトの名無しさんNGNG
C99 ではこうなってるね。

A non-null pointer returned by a call to the calloc,
malloc, or realloc function with a zero requested size
is used to access an object (7.20.3).
0114デフォルトの名無しさんNGNG
>>113
C++のnewと同じだね。考え方は。
0115デフォルトの名無しさんNGNG
>>111
Windowsならこうなる。OSとか処理系とか書けよ。
hCommDev = CreateFile( "COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
str[0] = 'D';
str[1] = '5';
str[2] = '5';
WriteFile( hCommDev,(void *)str, 3, &WriteByte, NULL );
0116デフォルトの名無しさんNGNG
Cの初心者です
二次方程式の解なんですが、
ax2+bx+C=0
b2−4ac<0が虚数解になる旨を表示するソースプログラムはどう書けばいいんですか?
というか、数学が苦手分野なので解かりません
どなたか教えて下さい
(2乗がわかりづらくてスミマセン)
0117デフォルトの名無しさんNGNG
課題丸投げなら別スレにいけ。
0118デフォルトの名無しさんNGNG
>>116
printf("虚数解になる\n");
0119デフォルトの名無しさんNGNG
>>116
× b2−4ac<0が虚数解になる
○ ax・・・=0が虚数解になる

ifをつかえ
0120デフォルトの名無しさんNGNG
y/n入力させてループさせようとしてるのですが
scanfを飛ばしてloopに行ってしまいます・・・
ソースの一部↓
printf("RU = %f\n",RU);
printf("続けますか?(y/n)");
scanf("%c",&flag);
printf("\n");
if(flag='y') goto loop;
else ;
0121デフォルトの名無しさんNGNG
120
==
0122デフォルトの名無しさんNGNG
>>116
b*b-4*a*c<0
0123デフォルトの名無しさんNGNG
>>121
ミスの指摘ありがとうございます。修正しました。
しかし、今度はscanfを飛ばしてプログラム終了してしまいます・・・
0124デフォルトの名無しさんNGNG
>>120
scanf("%c", &flag);
↓
read(0, &flag, sizeof flag);

では駄目か?
それともscanf関数を使う縛りがある?
0125デフォルトの名無しさんNGNG
>>123
fflush(stdin);
scanf("%c",&flag);
か
scanf(" %c",&flag);
/*input bufferの振る舞いは実装依存*/
0126デフォルトの名無しさんNGNG
>>124
同じ結果です・・・
0127デフォルトの名無しさんNGNG
>>125
出来ました。ありがとうございます。
しかし、何が悪かったのかわからない・・・
0128デフォルトの名無しさんNGNG
>>127
fflush(stdin)でできたということは、標準入力に残っていた文字が原因だったということでしょう。

fflush(stdin)はやらない方が良い方法なんだけど。
0129デフォルトの名無しさんNGNG
>>128
実装依存だからね。
0130デフォルトの名無しさんNGNG
>>129
じゃなくて、同じ実装でも毎回同じ結果とはかぎらない。
0131デフォルトの名無しさんNGNG
未定義の動作(undefined behavior)
・何が起っても不思議ではない。

未規定の動作(unspecified behavior)
・規定された何通りかの動作のうちいずれかになる。

処理系定義の動作(implementation-defined behavior)
・未規定の動作のうち、どれになるか処理系が文書で明示しなければならない
 もの。
0132デフォルトの名無しさんNGNG
           ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` ) < おなにしますた
          /,  /   \_______
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /     
        /    \       ((( )))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
       /  /~\ \     ( ´Д`) < しますた
       /  /   >  )     (ぃ9  )  \_______
     / ノ    / /    /    ∧つ
    / /   .  / ./     /    \     (゚д゚) スマタ     
    / ./     ( ヽ、     / /⌒> )     ゚(  )−          
   (  _)      \__つ  (_)  \_つ     / >     
0133デフォルトの名無しさんNGNG
一番小っこいのがいないな
0134拡大NGNG
 (゚д゚) スマタ
 ゚(  )−
 / >    . モミジマンジュー
       ↑
0135デフォルトの名無しさんNGNG

           ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` ) < おなにしますた
          /,  /   \_______
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /     
        /    \       ((( )))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
       /  /ω\\     ( ´Д`) < しますた
       /  /   >  )     (ぃ9  )  \_______
     / ノ    / /    /    ∧つ
    / /   .  / ./     /    \     (゚д゚) スマタ     
    / ./     ( ヽ、     / /ω> )     ゚(  )−          
   (  _)      \__つ  (_)  \_つ     / >     
0136笑む獅子NGNG
自前のライブラリ.libはどうやって使うの?
0137デフォルトの名無しさんNGNG
136
プロジェクトに追加する。
0138デフォルトの名無しさんNGNG
link時に混ぜる
0139笑む獅子NGNG
>>137
ねぇ聞いてるの?
ねぇーってばー!
0140笑む獅子NGNG
>>138
ばかー!
0141デフォルトの名無しさんNGNG
気持ち悪いハゲだな
0142デフォルトの名無しさんNGNG
>>136
VC++のcl.exeなら/link [.libファイル名]
0143デフォルトの名無しさんNGNG
/linkは別に指定しなくても良い罠
0144笑む獅子NGNG
みんなそうやっておしえてくれないんだから、
ヘッダファイルになんて書けば良いの?
sample.lib
include<sample.h>
int main(){

}
0145笑む獅子NGNG
ぼくたんが使ってるのはbcc32.exe(無料)
0146デフォルトの名無しさんNGNG
bcc32 source.c sample.lib

もしくは、
#include <voke.h>
#pragma comment(lib, "voke.lib")

int main()
{
}
0147笑む獅子NGNG
ぼくたんが買った本にはpragmaが載ってなかった・・・糞本でした。
共立出版の聖書を買うべきだった・・・
0148笑む獅子NGNG
ぼくたんの経験だとライブラリファイルとヘッダファイルは同じファイル名でした。
0149笑む獅子NGNG
>>146
なんでそうなるの?
変な事例として
何も書かないint main(){}
test.cをコンパイル
>bcc32.exe test.c
するとtest.obj , test.exeが出来る
>tlib test.lib +test.obj
このtest.lib
を使うのにその方法はどうかと
0150デフォルトの名無しさんNGNG
voke.libをtest.libに直せヴォケ
0151デフォルトの名無しさんNGNG
以降、笑む獅子は無視してください。
0152デフォルトの名無しさんNGNG
ボケは何をやってもボケ。
0153哀む師仔NGNG
こんにちわ。エヘ
みーんなだーいきらい
0154哀む師仔NGNG
>>150
人格破綻者ですか?
0155デフォルトの名無しさんNGNG
>>154
うざいな。お前。消えろ。
教えてもらう気がないならこのスレに顔をだすな。
0156 NGNG
学習意欲満々だよコレマジ
0157 NGNG
あちこちにおちてるライブラリ集には
ヘッダに知らない文法で宣言してあるよみ
0158デフォルトの名無しさんNGNG
>>155
秋葉原人らしからぬ言動だな。。けしからん!「萌え」と言え!
0159 NGNG
つべこべ言わずに教えろみ
0160デフォルトの名無しさんNGNG
別スレに書いたらこちらへ誘導されたのでこちらに改めて書きます。
私はUNIXでemacsとgccコンパイラを用いてC言語を勉強しています。
先日、fork()を習ったのですがfork()が一体どういう仕組みなのか分かりません。
fork()は自分自信を複製するものだということで
fork();
printf("A\n");
と記述すればAが2つ出力されることは分かりました。
ところが先生が例として書いたプログラムの中に
i=fork();
というのがでてきました。こうなると、iに一体何が代入されているのか分かりません。
i=fork();
fork();
printf("%d\n", i);
などとしてあるとi=0 i=0 i=4836 i=4836の4つがこの順番で表示され
fork();
i=fork();
printf("%d\n", i);
とされてあるとi=0 i=4851 i=0 i=4852のようにこの順番で表示されるのですが、
何がどのようになって、なぜこのように順番が変わって結果が表示されるのかが
さっぱり分かりません。
もしよろしければどうか教えてください。
0161デフォルトの名無しさんNGNG
あの〜リンク先読んだ者ですけど
ある程度までは説明があるのですけれども
肝心なものから逃げています
つまりそれは.libと.hなのですみ
0162デフォルトの名無しさんNGNG
萌えーーー
0163デフォルトの名無しさんNGNG
>160
man fork
0164デフォルトの名無しさんNGNG
>>160
C言語の質問と言うよりUNIXの質問だな。
しかもマニュアルすら読んでないことが明らかだ。
まずは >>163 のとおり。
0165デフォルトの名無しさんNGNG
線形探索法の問題です教えてください。
配列aと一つの値Keyを引数とし、Keyに等しい値を持つ配列要素を見つけてその
添字の値を返す関数を作れ、Keyに等しい値がない場合は-1を返す
関数原型は次のとおりとする。
int search(int a[], int size, int Key );
0166デフォルトの名無しさんNGNG
スティーブンス嫁
0167デフォルトの名無しさんNGNG
pragma使わなくても出来ないの?
define使ってたような・・・
0168デフォルトの名無しさんNGNG
スティーブンスってなんですか?
0169デフォルトの名無しさんNGNG
{
int i;
for(i = 0;i < size;i++)
if(a[i] == Key)
return i;
return -1;
}
0170デフォルトの名無しさんNGNG
>>165
宿題は宿題スレで…
それにしてもレベル低すぎるぞ
0171デフォルトの名無しさんNGNG
>>165
探索法の中でも最も単純な方法じゃないか。
0172デフォルトの名無しさんNGNG
もしもしーーー
俺に聞けって言うから悩みを相談してるのに、救済措置もないのかYO!

0173デフォルトの名無しさんNGNG
>>172
>>169
0174165NGNG
すいません助かりました!
0175デフォルトの名無しさんNGNG
>>172
どの悩みじゃ?
このスレは回転速いから自分の質問を上げたレス番号を>>xxxで示すよろし
0176デフォルトの名無しさんNGNG
{
 unsigned i, j, k, index;
 srand(time(0));
 for (i = 0; i < (unsigned)-1; i++)
 for (j = 0; j < (unsigned)-1; j++)
 for (k = 0; k < (unsigned)-1; k++) {
  index = rand() % size;
  if (a[index] == Key)
  return
 }
 return -1;
}
0177デフォルトの名無しさんNGNG
>>176
(unsigned)-1・・・・
limits.hのUINT_MAXでいいような・・・
0178デフォルトの名無しさんNGNG
>>176
殴られたい?
0179165NGNG
さっきの者ですが関数をmainで確認するのはどうしたらいいんですか?
簡単な質問ですいません一昨日はじめたばっかなんで
0180デフォルトの名無しさんNGNG
>>179
main関数からsearch関数を呼ぶ。
0181笑む名無しNGNG
>>178
お前は人殺し認定委員会鑑査に任命された。
よって、
0182デフォルトの名無しさんNGNG
>>181
abort();
0183笑む名無しNGNG
>>175

>>167の事じゃないの?
0184165NGNG
引数はどうしたらいいんですか?
0185デフォルトの名無しさんNGNG
>>167
は質問になってないぞ。どれかのの途中だろ?
0186デフォルトの名無しさんNGNG
int main()
{
int array[] = {0,1,2,3,4,5},index, n;
char buf[256];

puts("0〜5まで探したい値を入力してね(^-^)"):

if((index = serach(array, sizeof array, atoi(gets(buf)))) != -1)
printf("それはarray[%d]に入ってるよぉ〜♪", index);
else
puts("んなもんありゃしない(´-`)y-~~");

return 0;
}
0187デフォルトの名無しさんNGNG
>>184
どうしたらいいですか。って、あなた自分でint search(int a[], int size, int Key );と定義したんでしょ?
それに見合う引数を渡せばいいの。

int ia[]{4,2,92,54,222,8,1};
search(ia, sizeof size/sizeof(int), 8);

とか。
0188デフォルトの名無しさんNGNG
>>186
1バイトのchar型以外はsizeof arrayをsizeof(type)で割らないと。
0189デフォルトの名無しさんNGNG
なにげに潜む186の罠
0190187NGNG
× int ia[]{4,2,92,54,222,8,1};
○ int ia[]={4,2,92,54,222,8,1};
0191187NGNG
しかもsizeof sizeってなんだよ(T_T)
sizeof iaだろ(T_T)
もう嫌(T_T)
01921NGNG
200ゲットーーーーーーーーーーー
0193165NGNG
atoiとかまだ使えないんですけど、
stdio,stdlibをちょろっとやったんで
0194デフォルトの名無しさんNGNG
ああ失礼。
最初のputsにセミコロンとsearchとsizeof array/ sizeof(int)を適当に修正してちょ
0195デフォルトの名無しさんNGNG
>>193
まあ、ゆっくり一つずつ確実に覚えてゆこうよ。
0196笑む名無しNGNG
ぼくたんがこんなに苦労してるのは、買うべき物を買わず、無料で済ませようとしているがゆえの暗中模索
買っちゃえばいいんだよな〜
いまさらvc6++,bcb5もな・・
C#ってもううってんの?いくら?VBより早い?学割きく?
msからパンフとどいたよ、ムチャクチャ高いYO
0197質問NGNG
char a[20];

とかの[20]ってどういう意味があるの?
これがないとエラー出る場合とない場合あるけど。
0198165NGNG
まあ全部ネタですが
0199デフォルトの名無しさんNGNG
>>197
要素数。
int array[]={1,2,3};とやった場合は必要な要素数をコンパイラが自動的に判断してくれるからOK
0200デフォルトの名無しさんNGNG
  |-□□-| 200ですね
   \ - /
0201デフォルトの名無しさんNGNG
char a[20];

関数内だったら定義も兼ねて20バイトのメモリ領域が割り当てられる。
初期化している場合に限り添え字はつけなくても構わない。
その時は代入している数をコンパイラが数えて必要量確保してくれる
0202201NGNG
  |-□□-| 202ですね
   \ - /
0203165NGNG
ありがとうございます!
もう一ついいですかね?
2つの整数の最大公約数を求める関数を作りたいんですけど
最大公約数がMAX(x,y)だとすると
MAX(x,y)==MAX(y,x%y)
で大丈夫ですかね?
0204デフォルトの名無しさんNGNG
もうちょっと本を読んでから質問してホスイ・・・
0205デフォルトの名無しさんNGNG
最大公約数を求めるのってユークリッド互除法を使うんでしょ?
0206165NGNG
すいません
そういう難しい言葉だとわからないんですけど....
0207デフォルトの名無しさんNGNG
だめ。何より名前がだめすぎるgcdね。
0208デフォルトの名無しさんNGNG
(;´-`).。oO(最大公約数ってなんだっけ?・・・・)

・・・・

(;;;´-`).。oO(そろそろ引篭ってないで数学でもやり直すかなぁ)
0209デフォルトの名無しさんNGNG
>>194
sizeof array/ sizeof(int) って
(sizeof array) / sizeof(int) じゃないとまずくない?
sizeof演算子は / より優先度高いし。

さらにいえば (sizeof array) / (sizeof array[0])にしたいけど
0210デフォルトの名無しさんNGNG
>>208
36と24の最大公約数は12とかだったような・・・・
やべー、小学校からやり直さないと!
0211デフォルトの名無しさんNGNG
>>203
googleで 最大公約数 検索しる
0212デフォルトの名無しさんNGNG
>>209
優先度が高いから括弧は必要ないんじゃない?
0213209NGNG
>>212
あー、ぼけてた。サンクス
寝不足はいかんな…
0214スレ立てようと思ったけどやめたNGNG
ある部分をコメントにするとき、なんて言うのでしょうか?

コメントアウト? コメント化?

じゃあコメントしてある部分を元に戻すのは? コメントイン?
なんかおかしい・・・

コメントにする行為、コメントを外す行為
を対義語として納得できるような単語をみんなで考えませんか?
0215デフォルトの名無しさんNGNG
コメントアウト->萌
コメント除去->萎
0216デフォルトの名無しさんNGNG
コメンタイズ、アンコメンタイズ
0217214NGNG
一発で明確な答えが得られないということは、やはり
かなり深い問題だったようですね。
マジメに議論したらそれだけでこのスレが終わりそうだから
やっぱスレ立てたほうがいいかな。
でもマ板向けっぽいしなぁ。
0218デフォルトの名無しさんNGNG
隠蔽と公表でいいじゃん。
0219デフォルトの名無しさんNGNG
>>214
ここではなく、マ板なら需要あるべ。
スレ立ててみぃ。
てか、ここでヤルなよ (゚Д゚)ゴルァ
0220214NGNG
>>218
「そこの行を隠蔽して、こっちの関数を公表ね」
とか業務で通じますか?通じやしませんよ。
0221218NGNG
>>220
ネタにマジレスですか。
さっさとマ板に逝けよ。
0222デフォルトの名無しさんNGNG
>>216に納得できない>>214はマ板に逝ってよし
0223デフォルトの名無しさんNGNG
>>220
っていうか、口で伝えるなら自分でやれば半分以下の時間で終わるぞ
0224214NGNG
http://pc.2ch.net/test/read.cgi/prog/1022147315/
立てました。
0225デフォルトの名無しさんNGNG
  ノ     ∧     /) ∧
  彡  ノW \从/V  W \   ミ
  (  ノ        |      ノ \)
  ∩V      、、 |       >V7
  (eLL/ ̄ ̄\/  L/ ̄ ̄\┘/3)
  (┗(      )⌒(      )┛/
   ~| \__/ |  \__/ |~     / ̄ ̄ ̄ ̄ ̄ ̄
    爻     < |  ;     爻    <更新するなら早くしろ、でなければ帰れ
    ~爻     \_/  _, 爻~      \______
     ~爻__/⌒ ̄ ̄ ̄~~ヽ_ 爻~
     /    ー ̄ ̄\_ ̄\
  _一‘     < ̄ ̄\\\J
<\       ー ̄ ̄ヽ_ヽJ   ̄\_
  \     _ニニニヽ )       ~\
   \  _/⌒|\ ヽ_~~ ~⌒\_
  __/~    V \_|     ~\_
0226デフォルトの名無しさんNGNG
>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1>>1
0227 NGNG
void (*po[])()={one,two,three,four,five,six,cancel};
scanf("%d",&no);

(*po[no])( haich1);
ってあってますか?ポインタ関数
0228デフォルトの名無しさんNGNG
http://www.borland.co.jp/cppbuilder/freecompiler/faq/bccfaq4.html
ここの2番目の質問の答えで
-IC:\Borland\Bcc55\Include
-LC:\Borland\Bcc55\Lib
とかいてあるんですがこれをDOSプロンプトを
開いて打てということでしょうか??
0229デフォルトの名無しさんNGNG
>>228
>BCC32.CFGを作成しなければなりません
0230デフォルトの名無しさんNGNG
>>229
作り方を教えてください。
0231デフォルトの名無しさんNGNG
>>230
これでも使え。
http://www.cmagazine.jp/setbcc.html
0232デフォルトの名無しさんNGNG
>>231
自分で作ってみたいんでですけどむずかしいですか?
0233デフォルトの名無しさんNGNG
>>232
メモ帳でもつかえ。
DOSプロンプトがお気に入りなら、
一.DOS プロンプトを開いて
二..BCC をインストールしたディレクトリに移動し
三.以下のように打ち込む。ctrl+z で終了だ。
>copy con BCC32.CFG
-IC:\Borland\Bcc55\Include
-LC:\Borland\Bcc55\Lib
0234デフォルトの名無しさんNGNG
classの中で構造体の初期化は出来ないんですか?
struct a{ int x,y;};
class b {
struct a c={1,2};
};
0235 NGNG
12345678秒などというのを
〜年〜日〜時〜分〜秒または
〜y〜d〜h〜m〜sと変換するようなうまい関数はないでしょうか?
なければ、modでちくちくやるしかないんでしょうかね?
0236デフォルトの名無しさんNGNG
>>234
スレ違いだけど一応答えておきます。
struct a {
int x, y;
a(int i, int j) { x = i; y = j; }
};

class b {
struct a aa;
b() : aa(1, 2) {}
};
以降の議論はC++相談室で。
0237デフォルトの名無しさんNGNG
>>234
C++ スレにいけ。

>>235
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/ctime.3.html
0238デフォルトの名無しさんNGNG
>>235
localtime()
0239デフォルトの名無しさんNGNG
>>233
メモ帳使ったとしたらどうやって作るの??
面倒かもしれないけど教えてくれたらうれしいです。
0240デフォルトの名無しさんNGNG
>>239
説明書がついているはずだぞ?
0241デフォルトの名無しさんNGNG
>>239
すまん。白状するとメモ帳の使い方を知らんのだよ。
秀丸なら目を瞑ってでも使えるのだがな。
0242デフォルトの名無しさんNGNG
>>241
起動してみればわかるだろが。
Windowsの標準的なUIだし、機能少ないし。
0243デフォルトの名無しさんNGNG
・・・
0244デフォルトの名無しさんNGNG
>>242
ネ(中略)マジレ(中略)ルイ!
0245デフォルトの名無しさんNGNG
ネ(カ)マ ジレ(ンマ サクラギ)ルイ?
0246デフォルトの名無しさんNGNG
241はネタに見えない。
0247デフォルトの名無しさんNGNG
239を小ばかにしてるネタにしか見えない。
0248デフォルトの名無しさんNGNG
 ネタ VS マジ
カーン
    (゚д゚)
    ( ×) ファイッ
    / >
0249デフォルトの名無しさんNGNG
ネタに一票。
つーか厨房板でやれ。
0250デフォルトの名無しさんNGNG
239 がネタだろ…
0251デフォルトの名無しさんNGNG
両方ネタの罠
0252デフォルトの名無しさんNGNG
つまらんネタはうざいな。
0253デフォルトの名無しさんNGNG
failed.
0254デフォルトの名無しさんNGNG
239はネタ(or 天然)
241はネタ
242はなんつーか、なんか通じない人
0255デフォルトの名無しさんNGNG
なんか242がかわいそう・・・・
しかたないけどね。
0256デフォルトの名無しさんNGNG
>>255 やさしいひと・・・ ハァハァ
0257デフォルトの名無しさんNGNG
>>239ですけどネタじゃないです。
天然と思われてます??
まじでわかりません。
ファイル名がBCC3
拡張子が.cfgのファイルを作るってことでしょうか?
0258デフォルトの名無しさんNGNG
ネタじゃなければ天然だ
0259デフォルトの名無しさんNGNG
>>257
メモ帳を起動して、
-IC:\Borland\Bcc55\Include
-LC:\Borland\Bcc55\Lib
を入力する。
BCC32.CFGという名前をつけて保存する。
場所はBinだったかな?
0260デフォルトの名無しさんNGNG
>>258さんくす!
>>258
>copy con BCC32.CFG
の意味とかあんまり知らないもので。。。
0261デフォルトの名無しさんNGNG
239 はプログラミングやる前に Windows の使い方を勉強してくれ。
0262デフォルトの名無しさんNGNG
>>260は以下の間違い。
>>259さんくす!
>>258
>copy con BCC32.CFG
の意味とかあんまり知らないもので。。。
0263デフォルトの名無しさんNGNG
うえからC系5スレがならんでる・・・
0264デフォルトの名無しさんNGNG
がんがれ
0265デフォルトの名無しさんNGNG
>>261
"cd c:\"
"mkdir bcc"
"cd bcc"
とか操作をよく理解してないです。
それらを勉強するのにいいサイト若しくは書籍ないですか?
0266デフォルトの名無しさんNGNG
>>265
MS-DOSって書かれた書籍まだ書店にいくつか残ってるから買って。
0267デフォルトの名無しさんNGNG
DOSを勉強してがんがれ
0268デフォルトの名無しさんNGNG
誰かBCCのインストーラとIDEもどき作る!
\300程度のシェアウェアなら案外売れるかも。
0269デフォルトの名無しさんNGNG
>>265
コンパイルだけなら勉強するまでもなかろうよ。
必要なコマンドは10個もないだろ。
0270デフォルトの名無しさんNGNG
>>268
IDEじゃなかったかもしれんが、CPadは似たようなことができなかったか?
0271デフォルトの名無しさんNGNG
>>269
どんなの??
10こ書いてくれません?
0272デフォルトの名無しさんNGNG
>>268
IDEって??
0273デフォルトの名無しさんNGNG
>>266
ありがとう。探してみます。
0274デフォルトの名無しさんNGNG
>>271
cd
dir
del
ren
bcc32
0275デフォルトの名無しさんNGNG
どーしてもBCC32.cfg.txtになります、たすけてください。
0276デフォルトの名無しさんNGNG
>>274
autoexec.batの編集とかは?
0277デフォルトの名無しさんNGNG
正直、239のレベルでは、bccをインスコできても、
まともにつかえるとも思えない。
知識の無い香具師は、金で購え。
VC、BCB買え。本買え。
0278デフォルトの名無しさんNGNG
ilink32.cfg:
-L"c:\Borland\Bcc55\lib"
これも必要?
0279デフォルトの名無しさんNGNG
>>275
笑えない。
0280デフォルトの名無しさんNGNG
>>275
名前を変えて

もうネタとしか思えないんだけど(笑)
0281デフォルトの名無しさんNGNG
>>275
ren BCC32.cfg.txt BCC32.cfg
0282デフォルトの名無しさんNGNG
>>276
メモ帳につっこんで直接書き換える。
0283デフォルトの名無しさんNGNG
>>277
同意。

技術、時間、金

どれか一つがあればPC道は成せる。
0284デフォルトの名無しさんNGNG
>>274
意味も教えてやれ。
0285デフォルトの名無しさんNGNG
>>277
勉強しますよ。
単にDOSの命令を知らなかっただけです。
0286デフォルトの名無しさんNGNG
プリコンパイルヘッダとは、
> プリコンパイルヘッダーファイルは,ディスクにあるシンボルテーブルのイメージをファイルに格納しておき,
> 後でそのファイルをディスクから読み込むだけで済むので,すべてのヘッダーファイルを再び解析する必要がなく,
> コンパイル速度が著しく向上します。
> 特に複数のソースファイルの中に同じヘッダーファイルが入っているような場合は,
> シンボルテーブルをディスクから直接読み込む方が,ヘッダーファイルのテキストを解析するよりはるかに高速です。
(C++Builderのヘルプより)
だそうです。
どうするかと言うと、bcc32.cfgの後ろに
-H
-Hs
を追加します。
-Hsは-Hcでもいいのですが、-Hsだと-Hcほどメモリを使用しないらしいです。
で、bcc32.cfgはこうなります。

bcc32.cfg:
-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"
-H
-Hs
0287デフォルトの名無しさんNGNG
cd /?
dir /?
del /?
ren /?
bcc32 /?
0288デフォルトの名無しさんNGNG
>>287
ヘルプを見ろってことか。
0289デフォルトの名無しさんNGNG
>>283
>>277
お前はその三つのどれがあったのだ?
0290デフォルトの名無しさんNGNG
>>275
保存するときにファイル名を "" で囲め。
0291デフォルトの名無しさんNGNG
>>289
俺?多分時間。

時間があれば試行錯誤によって技術力は向上する(効率は知らんが)。
技術があれば効率が上がり時間を有効利用できる。

で、金が何を生み出すかと言えば・・・俺にはわからない。
逆に金なんてない方が人間工夫する。
0292デフォルトの名無しさんNGNG
レベル云々言うのはやめろよー。勉強すればいいんだから。
0293デフォルトの名無しさんNGNG
>>292
に、しても分相応って言葉がある。
0294デフォルトの名無しさんNGNG
>>292
まぁな。239がまともにbccをまともに使えるようになるかどうかわは
わからん。まともに使えると思えないといった277の気持ちもわかるが。
0295デフォルトの名無しさんNGNG
>>293
お前はBCCインストールするとき全て
失敗せずにわからないとこもなくできたのか?
0296デフォルトの名無しさんNGNG
>>294
やる気と根気があればなんとかなると思うよ。
0297デフォルトの名無しさんNGNG
俺はできたよ
0298デフォルトの名無しさんNGNG
>>297
cd
dir
del
ren
bcc32
の意味とかわかってたんだろ?
0299デフォルトの名無しさんNGNG
delとrenは今でも知らない
0300デフォルトの名無しさんNGNG
>>298
メモ帳を起動して、
-IC:\Borland\Bcc55\Include
-LC:\Borland\Bcc55\Lib
を入力する。
BCC32.CFGという名前をつけて保存する。
この作業は難しくなかった?っていうかどこにも
かいてなかったでしょ。俺もインストールするとき
まったくわからんかった。
0301デフォルトの名無しさんNGNG
>>298
まぁ、質問した彼も勉強する姿勢はしっかり持ってるんだから許してやろう。
コマンドの使い方を聞くんじゃなくて参考文献を聞いてくるんだ。PCQAのアフォより遙かにまし。
まぁ、彼にはWindowsとDOSの基礎からきっちり学んでもらうとして。w
0302デフォルトの名無しさんNGNG
>>300
readme.txtは通常、説明書ファイルです。
0303デフォルトの名無しさんNGNG
>>300
あれ?確か書かれていたような気がするよ?
0304!298NGNG
>>300
ヘルプに書いてなかったか?
0305デフォルトの名無しさんNGNG
そうか、ついに、readmeをよむという風習すら失われたかのか……
0306デフォルトの名無しさんNGNG
>>303
ちゃんと書いてあるよ。
0307デフォルトの名無しさんNGNG
>>305
readmeでなくhelp
0308306NGNG
うお、誤爆・・・
0309デフォルトの名無しさんNGNG
-IC:\Borland\Bcc55\Include
-LC:\Borland\Bcc55\Lib

じゃなくて

-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"

どっちが正しい?
0310デフォルトの名無しさんNGNG
>>309
スペースを入れろ。
0311デフォルトの名無しさんNGNG
>>309
パスにスペースはいるなら下
入らないなら従来バージョンの上でも動く。

ってとこじゃないの?
0312デフォルトの名無しさんNGNG
初期化されたstatic変数がメモリ上でROMに配置される処理系があったとします。
0313デフォルトの名無しさんNGNG
はぁ
0314デフォルトの名無しさんNGNG
現実にはありません。それを踏まえて聞いて下さい。
0315デフォルトの名無しさんNGNG
bcc32.cfg ファイル
ilink32.cfg ファイルはなぜダウンロードしたファイルにのなかになくて
自分で作らないといけないのでしょうか??
0316デフォルトの名無しさんNGNG
>>315
BCCをインストールする場所によって中身が変わるから。
0317デフォルトの名無しさんNGNG
>>315
使いたいライブラリによって…以下同文
0318デフォルトの名無しさんNGNG
インストール先を決めた時にファイルを作成するということはできないんでしょうか??
0319デフォルトの名無しさんNGNG
>>318
そういうツールをつけてもいいかもね。
インストール後、ダブルクリックでOKという感じで。
0320デフォルトの名無しさんNGNG
>>318
(インストーラがあれば)できるだろうがそうはなっていない。
現実を見なさい。営利団体のフリーのソフトに何を期待している?
0321デフォルトの名無しさんNGNG
>>320
手軽さ。
と言ってみたい。

それなら買えってことになるんだけど。
0322デフォルトの名無しさんNGNG
ターゲットが、お勉強する人の為ではなく
他のユーザーの引き抜きだから
インストールしても、ヘルプも見ない奴には使わせねーぞ
って言う某社の意気込み
0323デフォルトの名無しさんNGNG
readme読みなさい。

2. インストール先の bin ディレクトリで次の手順を実行します。
a. 既存のパスに "c:\Borland\Bcc55\bin" を追加します。
b. bcc32.cfg ファイルを作成します。このファイルは,Include
および Lib パスのコンパイラオプション(コンパイラの -I
および -L スイッチ)を設定するものです。ファイルには次の
行を含めてください。
-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"
c. ilink32.cfg ファイルを作成します。このファイルは,Lib
パスのリンカオプションを設定するものです。ファイルには
次の行を含めてください。
-L"c:\Borland\Bcc55\lib

ちゃんと書いてあるよ。この説明が初心者にわかりやすいかどうかは別にしてもだ。
0324デフォルトの名無しさんNGNG
>>268
http://www.vector.co.jp/soft/win95/prog/se180695.html

いんすとらは無いがな
0325デフォルトの名無しさんNGNG
>>318
bcc のインストーラーは Cマガジン についてなかったか?
0326デフォルトの名無しさんNGNG
>>325
>>231 で紹介した。その返事が >>232 だった。
0327デフォルトの名無しさんNGNG
>>326
自分で作るなんてえらいじゃないかー。
俺>>231の使ったからいまの議論がどうも理解できん。
0328初心者NGNG
コンパイルしたときに、
warning:unknown escape sequence: '\' followed by char code 0x48
っていうエラーがでるんですが、何がいけないのでしょう。
この行には  printf("番号の順にソートする\n");
とだけしか書いてないんですが・・
0329デフォルトの名無しさんNGNG
>>328
\nのnが全角になっていたりしない?
0330デフォルトの名無しさんNGNG
>>328
コンパイラは何?
0331デフォルトの名無しさんNGNG
gccだとSJISで書かれた漢字では通らん文字があるぞ。
EUCで上記を書き直すか、\をどっかの2バイト文字の後に入れる。
0332?NGNG
\番号の順にソートする\n
or
番\の順にソートする\n
0333初心者NGNG
>>329
なってませんでした
>>330
コンパイラはgccです
>>331
なるほど。確かめてみます。
0334デフォルトの名無しさんNGNG
 ママ〜 やったよ〜ム板のチンカスどもに勝ったよ〜
 \__  ______
      ∨    ∧_∧
           " ,  、 ミ   / ̄ ̄ ̄ ̄ ̄
            ゝ∀ く  < あらあら
           ∧_∧  |   \_____
        三  (    とノ
      三   /   つ |
     三  _ ( _  /|  |
        (_ソ(_ソ(_ )
0335初心者NGNG
ちなみに、今構造体をソートするところで手がとまってます。
うーん。。どうやるんだろ・・
比較の方法でいこうと思うんですが、値をいれかえていくとき、
たとえばkou[1]って構造体の中身とkou[2]って中身を入れ替えたいときって、
もうひとつ記憶するやつがいりますよね?tempとか適当において。
その型っていうのは何なんだろう・・
int じゃないし、char でもない・・・ う〜ん
0336デフォルトの名無しさんNGNG
便乗ですが、LinuxのgccでSJISでも「表示」とかの文字が問題なく
コンパイルできるようにするにはどうしたらいいんでしょう?

けっこう頑張って調べたのですが挫折しました。
0337デフォルトの名無しさんNGNG
>>335
struct HOGE {
 int a;
 char c;
} hoge;

として
struct HOGE temp;
でコピーできる。
0338初心者NGNG
>>337
なるほど!!
あぁ、腑におちた時って快感。。
0339デフォルトの名無しさんNGNG
>>328
0x48って'H'だね。\Hって文字の並びがその行のどこかにあるね。
0340初心者NGNG
ううん・・ 構造体のソート、
temp = kou[i];
kou[i]= kou[j];
kou[j]= temp;
じゃまずいのかな・・ tempの中身もkouと同じ型を同じ分だけ揃えてるし・・
imcompatible types in assignment って相変わらずいわれてる・・

>>339
実は、隠れてるのか!あっちゃ、まずいんですね。
0341 NGNG
struct foo { ... };
struct foo kou[???];
struct hoge { ... };
struct hoge temp;
ってしているだろ。

struct hoge { ... };
struct hoge kou[???];
struct hoge temp;
ってするんだよ。
0342デフォルトの名無しさんNGNG
>>340
同じ型を揃えてる・・・ってことは
struct {
} temp;
struct {
} kou[10];
とやってる?
struct KOU {
} kou[10];
struct KOU temp;
とやるんだよ。
0343342NGNG
がぁ・・・かぶったソマソ
0344341NGNG
してる/やってる?→やる
仲良くしよう。
0345デフォルトの名無しさんNGNG
gccとBorland C++の違いって何?
0346デフォルトの名無しさんNGNG
トヨタとニッサンの違いがわからんか?
なら人間やめな(省略)
0347デフォルトの名無しさんNGNG
gcc=日本語対応してない(ダメ文字がある)、C99のかなりの機能が使える
0348デフォルトの名無しさんNGNG
トヨタもニッサンも、ほとんどの国の人間にとっては
単なる、メイドインジャパン だろ?
それが分からない位で人間やめてたら(省略)
0349336NGNG
>>336
どなたか、gccでのSJISの通し方、ご存知でないですか?
0350デフォルトの名無しさんNGNG
nkf で euc にして通したらいい
けど、そもそもコンソールで sjis/eucj 読めるの?
0351336NGNG
>>350
nkfってことはいったんソースを全部書き換える必要があるのでしょうか?
makefileでさくっと処理する書き方はありますか?

Windows上でソースの開発をしてるのでLinuxでは
直接読めなくての構わないのです。
Linux上で表示する場合は、内部でEUCに変換するコードをかましてます。
0352デフォルトの名無しさんNGNG
makeってコンパイラと全く関係ない処理も出来たりして
0353336NGNG
>>352
なるほろ・・・。
ワーク用のディレクトリを作って、そこでまとめて変換して
コンパイルすれば良さそうですね。
EUC変換コードを外さないと・・・。

gcc、SJIS対応オプションとか追加してくれないかな・・・。
0354デフォルトの名無しさんNGNG
djgpp(MSDOS用gcc)には SJIS パッチ作った日本人がいたよ。
gcc 2.95 だから同じバージョンならそのパッチあてたら通るように
なるかもね。gcc を make しなきゃならんが。。
それとも誰かが作っているかもしれない。漏れは知らないけど。。
0355デフォルトの名無しさんNGNG
みなさん、なぜそんなに詳しいのですか??
仕事で使うからですか?
趣味ですか?
学生ですか?
0356デフォルトの名無しさんNGNG
>>355
例えば中2からプログラムを始めるとする。
大学卒業時にはキャリア9年の日曜プログラマの誕生だ。
0357デフォルトの名無しさんNGNG
>>312の続きです

 ただし、初期化なしで宣言された場合はRAMに配置されます。その場
合、初期値は自動的にゼロになることが保証されています。
 ROMに配置されることを回避しつつ、これを任意の値に初期化する
ためにはどのようにすればよいでしょうか?
0358デフォルトの名無しさんNGNG
こんな感じかな?
.SUFFIXES .sjis
.sjis.c:
nkf -e < $> > $@
a.c:
0359デフォルトの名無しさんNGNG
>>357
bss
0360336NGNG
>>354
パッチあててgccをmakeですか・・・。
DJGPPの2.7.2用ならここにあるようでした。
http://www.st.rim.or.jp/~jack/djgpp-jp.html
gccはこれかな?ただうちのは2.96なので合わないかも。
http://www2.airnet.ne.jp/pak04955/patch.htm

>>358
nkf -e < $> > $@
makefile初心者なものでこの意味を勉強してみます。
0361デフォルトの名無しさんNGNG
ともっち!!
0362デフォルトの名無しさんNGNG
初歩的な質問ですいませんが、教えてください。

連番のファイル名を作りたいのです。例えばfile001.txt,file002.txt,,,のような。
このときに便利のいい関数あるいは作り方はあるのでしょうか?

sprintf(filename,"file%3d.txt",i);
のような書き方では「file 1.txt」になりますよね。。。
0363デフォルトの名無しさんNGNG
うーむ。俺も知らんなぁ。
数値から文字列にする時の効率のいい処理ってあるのかしら....
0364デフォルトの名無しさんNGNG
           ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` ) < おなにしますた
          /,  /   \_______
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /     
        /    \       ((( )))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
       /  /ω\\     ( ´Д`) < しますた
       /  /   >  )     (ぃ9  )  \_______
     / ノ    / /    /    ∧つ
    / /   .  / ./     /    \     (゚д゚) ボクモ男デス     
    / ./     ( ヽ、     / /ω> )     ゚(  )−          
   (  _)      \__つ  (_)  \_つ     /ω>     
0365デフォルトの名無しさんNGNG
file%03d
0366デフォルトの名無しさんNGNG
"file%03d.txt" かな?
0367デフォルトの名無しさんNGNG
ディレクトリとファイルの判別するにはどうしたらいいのですか?
関数とかあれば教えてください。
0368362NGNG
> 365,366

ありがとうございます、その通りです。
素早いレスに感謝!
0369デフォルトの名無しさんNGNG
へぇ、そんなコードで解決できるんだ。
今夜早速やってみよっと!
0370デフォルトの名無しさんNGNG
任意のファイル内に指定した文字列があるかどうか判定するには
どうすれば良いでしょうか?
0371デフォルトの名無しさんNGNG
grep
0372デフォルトの名無しさんNGNG
>>370
はっきり言って標準ライブラリないの関数の機能くらい覚えてくれ。
sting.hなんてただでさえ使うこと多いんだから。最近は少ないか。

strstr
0373デフォルトの名無しさんNGNG
>>367
> ディレクトリとファイルの判別するにはどうしたらいいのですか?
残念ながらCの標準関数にはディレクトリをどうにかする関数はない。
ディレクトリの配下を調べるためにも非標準の関数をつかわなければならない。

unixの場合、(winは知らん)
stat関数でファイルの状態を取得し、
S_ISREG()、S_ISDIR()マクロでファイルかディレクトリかを判定できる。
0374デフォルトの名無しさんNGNG
>>372
多いだろ(w
0375デフォルトの名無しさんNGNG
>>373
Win(っていうかDOS)はFindFirstとFindNextにフラグ与えればよかったと思う。
0376デフォルトの名無しさんNGNG
ありそうな関数が標準ライブラリにない場合は、
大抵は標準関数を少し工夫して使うと希望通りに動作するね。
定番はitoaの代わりにsprintfを使うことだね。
0377デフォルトの名無しさんNGNG
>>374
いや、みんなCStringとかさ・・・。C++だけど。
って言うか可変長文字列犯罪的に便利です。
法規制すべきです。w
0378デフォルトの名無しさんNGNG
>>375
GetFileAttributesで。
0379デフォルトの名無しさんNGNG
>>367
標準ライブラリにはない。OS依存。
WinならGetFileAttributes(filename)&FILE_ATTRIBUTE_DIRECTORY
Unixならstat(filename, &stat_buf), S_ISDIR(stat_buf.st_mode)
0380デフォルトの名無しさんNGNG
>って言うか可変長文字列犯罪的に便利です。
いつの時代の人間ですか?
0381NOT 377NGNG
>>380
あなたの意見を聞きたい。
0382デフォルトの名無しさんNGNG
>>380
標準ライブラリだけで生きてたころ・・・。
0383デフォルトの名無しさんNGNG
今でもmalloc,realloc使いまくりの俺はどうなるんだろ・・・・
0384デフォルトの名無しさんNGNG
みなさん、学生?
0385デフォルトの名無しさんNGNG
>>384
はい。
雇ってください。
0386デフォルトの名無しさんNGNG
>>385
なぜCに詳しいんですか?独学ですか?
0387デフォルトの名無しさんNGNG
>384
今日、中間テストで分からなかったので、適当に解答欄をCソースで埋めておきました

こんな漏れでも、PGできますか?
0388デフォルトの名無しさんNGNG
>>386
学校で一通り習った後、独学で。
0389デフォルトの名無しさんNGNG
>>387
高校生かよ、俺が高校生の時代パソコンなんて触らせてもらえなかった。
というかパソコンなんて家になかった。
0390デフォルトの名無しさんNGNG
>>388
大学?
0391デフォルトの名無しさんNGNG
>>390
専門学校
0392デフォルトの名無しさんNGNG
>389
家にPCなかったら、ちとキツいなぁ
張り切ってC勉強してきます。えっへん
0393デフォルトの名無しさんNGNG
>>392
むかつくのでタイーホ
0394デフォルトの名無しさんNGNG
>>392
まず、紙のキーボードで#include1000回。
stdio.hの書き取り100回&丸暗記。
それを一週間続ければPCを使わせてやろう。
精進せぇよ。
0395デフォルトの名無しさんNGNG
>>394
VC++6.0付属のstdio.hの中身を丸暗記してきます!!
0396デフォルトの名無しさんNGNG
私は女性の体の仕組みを詳しく丸暗記できるくらいまで調べてきます。
0397デフォルトの名無しさんNGNG
C言語とはちと内容が違うが、8進数ってどんなプログラムに
使われているんですか?
ふと気になったもので・・・
0398デフォルトの名無しさんNGNG
>394
stdio.h の丸暗記・・・
0399デフォルトの名無しさんNGNG
>>379
UNIXのファイルシステムのpermissionだ。
0400デフォルトの名無しさんNGNG
ディレクトリの内容調べるプログラム作ってるんですけど
フォルダの中にファイルがいくつあるか分からないじゃないですか?
んで、char* pFile[1000];とかやっちゃうと1000個までしか調べられませんよね。

いくつあるか分からない場合、その場に応じて拡張?できるような変数の確保の仕方ってどうやるんですか?
0401デフォルトの名無しさんNGNG
>>397

UNIXシステムコールのopen関数のフラグとか。

#define O_RDONLY 01
#define O_WRONLY 010
etc
0402デフォルトの名無しさんNGNG
>>400
malloc,calloc,realloc
0403デフォルトの名無しさんNGNG
char *pFile[1000]
凄いなぁ
0404デフォルトの名無しさんNGNG
>>401
どうもありがとうござんす。
0405デフォルトの名無しさんNGNG
>>404
誤爆しているけど、>>399にも言えよ。
0406デフォルトの名無しさんNGNG
文字列を比較する時に、比較対象が複数ある場合の効率良い比較方法ありませんか?

例を挙げると

char word[] = "apple";
BOOL flag = FALSE;

if (strcmp(word, "apple") == 0) {
 flag = TRUE;
else if (strcmp(word, "orange") ==0) {
 flag = TRUE;
else if (strcmp(word, "lemon") ==0) {
 flag = TRUE;
}

この場合、判定が3つだからまだ良いですけど、判定対象が100個とかあった場合に
if文を100個連ねるのはスマートじゃない気がします。
何か良い方法は無いでしょうか?
0407デフォルトの名無しさんNGNG
>>406
system("awk 〜 >a.txt");
fp = fopen("a.txt","r");

ごめん。
0408デフォルトの名無しさんNGNG
>>406
並列でやる方法も考えればあるけどバカらしい。
0409デフォルトの名無しさんNGNG
>>406
ステートマップを作るか、ツリーを作る
どっちにしろ死ぬほど面倒。
0410デフォルトの名無しさんNGNG
lex
0411デフォルトの名無しさんNGNG
比較の対象になる文字列をテーブルにしておくのは駄目なのかな。
0412デフォルトの名無しさんNGNG
>>406

int main()
{
char *keywordlist={"aaa","bbbbb","cc"};

if(lookup("bbbbb",keywordlist,sizeof keywordlist/sizeof keywordlist[0]))
printf("あった\n");
else
printf("なかった\n");
return 0;
}

int lookup(const char *str,char *list[],size_t size)
{
int i;
for(i=0;i<size;i++)
if(strcmp(str,list[i])==0) return 1;

return 0;
}
0413デフォルトの名無しさんNGNG
>>412
ちょっとの工夫で一気にシンプルだね。
戻り値は何個目の項目が該当するか返したほうがいいかも。
結局ifで判定する羽目に・・・w
0414デフォルトの名無しさんNGNG
>>413
じゃあ、return 0;return i;にして、return 0をreturn -1に。
呼び出し側の条件式も変えないと・・・
0415406NGNG
>>407
え?ちょっとよく分かりません。すいません。

>>408-409
やはり、if文100個の方がマシでしょうか?

>>411
テーブルというのは、
char *word[] = { "apple","orange","lemon",・・・・・"banana" }
みたいに比較対象のデータを持つという意味ですか?
これでループでまわして判定するんですよね?
見た目は分かりやすそうですが、手間は同じような感じになりますね。
0416デフォルトの名無しさんNGNG
>>415
ん?実行スピードはほとんど変わらないかもしれないけど、
手間は大幅に減るだろ。
0417デフォルトの名無しさんNGNG
>412
char *keywordlist={"aaa","bbbbb","cc"};
*keywordlist[]。一応つっこみ
0418デフォルトの名無しさんNGNG
>>411 そうです、>>412さんのと同じです。
0419デフォルトの名無しさんNGNG
対象が何万もあって、更に何回も調べるようなら、線形探索は不利だな。
qsort()とbsearch()を組み合わせるとよいかも。
0420406NGNG
あ、レス書いてる間に>>412さんがテーブルのプログラム書いてくれましたね。
やはりそれだと見た目は非常にすっきりしてますね。
結局はif文判定と同じですけど。
ループか、ループ展開の差しかないかな、結局。
0421デフォルトの名無しさんNGNG
>>417
あ、全然気づかなかった(汗
0422デフォルトの名無しさんNGNG
>>420
だって、結局総当り。

例えば工夫してデータ[1][1],データ[2][1],データ[3][1]・・・データ[1][2],データ[2][2],データ[3][2],・・・
の順位比較して該当しなくなったものから検索対象から外していく。とか。

でも、そこまでする必要があるのかは疑問。
0423デフォルトの名無しさんNGNG
やっぱり最強の二分探索だろ。
テーブルにあらかじめ整列して入れておけばいいんだし。
0424デフォルトの名無しさんNGNG
二分探索が最強なら最弱は何ですか?
0425デフォルトの名無しさんNGNG
2分だとO(n log n)だけどツリーだとO(n)だ
0426デフォルトの名無しさんNGNG
>>424
バカサーチ
0427デフォルトの名無しさんNGNG
以前ニフティのどこかのフォーラムで最遅、最弱のアルゴリズムを
考えるっていうスレッドがあったな。
0428406NGNG
>>416
あ、手間という意味をちょっと違う意味で書いてしまいました。
人間が書く時は手間は減りますね。
if文を処理するPC上の手間という意味で使ってました。

>>419
>>423
今の私のレベルじゃちょっと実装方法がよく分からないので、勉強してみますね。

>>422
そうですね。とりあえず、テーブルにデータを持ってループさせるやり方で
やってみることにします。
その後、>>419さんや>>423さんの方法を考えてみたいと思います。
0429デフォルトの名無しさんNGNG
>>428
qsortとbsearchはCの標準関数。自分で実装する必要はない。
そのアルゴリズムを勉強することはよいことだけど。
0430デフォルトの名無しさんNGNG
ていうかね、100子や1000固定度ならリニアサーチで問題ない。
圧縮とかそういうんでなければあんまり気にする必要はない
0431デフォルトの名無しさんNGNG
>>430
俺もそう思うんだけどね、やけに効率にこだわるから・・・・
0432デフォルトの名無しさんNGNG
結論

やって遅かったら悩め。
0433デフォルトの名無しさんNGNG
>>432
try&errorカコワルー
と言ってみるテスツ
0434デフォルトの名無しさんNGNG
>>433
金魚をバズーカ砲で攻撃するよりはスマートかと。
0435デフォルトの名無しさんNGNG
戦車でイモほり、ってのもあったな。ナツカスィ。
0436デフォルトの名無しさんNGNG
>>434
毒物でもなめてみて死んでみてください
0437デフォルトの名無しさんNGNG

二分木以外にもハッシュ表とかTrieとかいろいろあると思うけれども。
メモリに収まらないくらいでかくなるならB木とか。
今回の用途ならハッシュ表が一番適している気がする。

メモリ容量に糸目をつけないならTrieが最も速い。
0438デフォルトの名無しさんNGNG
>>436
PCのいいところはちょっと位失敗しても失うものは電気代くらいなところです。
0439デフォルトの名無しさんNGNG
1000個の文字列をリニアサーチして気にならんのか…
2分木より100倍、ハッシュと比べるとそれ以上遅いだろうに。

まあ、用途によっては気にならんのかな。
0440デフォルトの名無しさんNGNG
コンパイラが100倍おそくなったりスクリプトの実行が100倍
おそくなったら気になるわな。
0441デフォルトの名無しさんNGNG
ハッシュって変換式考えるのめんどくさくない?
文字列からハッシュ表参照する式って。
0442デフォルトの名無しさんNGNG
>>441 いちいち考えんでも先人のをそのまま利用すれば良いと思う。
おれが良く使うのは、
unsigned int h = 0;
while (*str) {
 h = (h << 3) ^ *str++;
}
0443デフォルトの名無しさんNGNG
文字列なら最初の4バイトそのままとかで十分では?
あとはハッシュ表サイズ(素数)で割った余りを取ればよい。
0444デフォルトの名無しさんNGNG
>>439
試してみた。
長さ1024バイトの文字列10240個をリニアサーチしたら700ms弱でした。
どう考えても気にならないでしょう、この程度。
0445デフォルトの名無しさんNGNG
ハッシュ表って別に素数じゃなくても良いと思うんだけどー
ダメなの?
0446デフォルトの名無しさんNGNG
>>444
だから用途によるだろ。
コンパイラやインタプリタで変数名や関数名1個ごとに700msもかかってたら
やってられねーって。

ちょっと工夫すれば(10240個でも)1ms未満にできるわけだから。
0447444NGNG
もちろんサーチ対象と先頭1023バイトは一致、最後の1バイトのみ不一致の文字列で計測
0448444NGNG
>>446
ちょっと工夫したソース出してください。
どう考えても1023バイト不一致で1ms未満は不可能ですが。
事前にハッシュ表作るのは、勿論×で。
0449デフォルトの名無しさんNGNG
>>445
割る前の数値の作り方が単純だと、素数で割らないと偏る。
均一に分布しないとハッシュの意味がない。

極端な話、文字列の最初の4バイトを1024で割ったら、結局
下位10ビット以外を捨ててることになる。
0450デフォルトの名無しさんNGNG
>>443
最初の4バイトをそのままって意味が分からんけど。
そのままどう使うの?
各アスキーコードを足すの?
0451デフォルトの名無しさんNGNG
>>449
なるほど。
しかし、それだと比較ごとに除算で非効率になるから、
ハッシュ関数を練った方が良いと思う。
静的に決定できるなら、gperfとかで一発だけどね。
0452デフォルトの名無しさんNGNG
>>448
ん?ああ、一回700msじゃなくて全体でか。

検索一回あたりの比較回数では、
リニアサーチ: 最悪10240回、平均5120回
二分探索: 最悪14回、平均13と14の間
ハッシュ: 最悪???回、平均1〜2回

だから、二分探索だと731分の1くらいになる。
0453デフォルトの名無しさんNGNG
>>450
unsigned hash = *str++;
if (*str) hash = (hash << 8) + *str++;
if (*str) hash = (hash << 8) + *str++;
if (*str) hash = (hash << 8) + *str++;
0454デフォルトの名無しさんNGNG
>>449
code = *(int32_t*)&string % 65521;
とかでしょ
0455デフォルトの名無しさんNGNG
>>451
gperfは除算使うんじゃなかったっけ。
つーか、カナーリ複雑な演算だった気がする。
衝突がないから比較は1回ですむけど。
0456デフォルトの名無しさんNGNG
>>454
それ、境界があってないとひどいことになるような。
規格的には未定義動作だよね。
0457デフォルトの名無しさんNGNG
>>455
ああ、説明が悪かったね。
素数で除算するより、シフトで解決した方が早いから
テーブルのサイズは2^nにするべきだと考えていたんで。
勿論、動的の場合。

静的ならgperfで
0458デフォルトの名無しさんNGNG
>>456
unionにしとけばよい。
0459デフォルトの名無しさんNGNG
http://eieweb.yz.yamagata-u.ac.jp/~aito/ADT/hashfunc.html
除算法とは,キーをハッシュ表のサイズで割った余りを使う方法である.キーの値を
K,ハッシュ表のサイズをMとすると,

h(K) = K mod M

となる.ただし除算法には問題があって,表のサイズMが素数でないとあまり良いハ
ッシュ関数にならない.特に,M=2nのときには最悪で,キーの下nビットだけしかハ
ッシュ関数に使われない.

0460デフォルトの名無しさんNGNG
やっぱり式考えるの面倒くさそうだな・・・。
>>442あたりの式を適当に使っておけば良いのかな。
0461デフォルトの名無しさんNGNG
>>447
>もちろんサーチ対象と先頭1023バイトは一致、最後の1バイトのみ不一致
>の文字列
>で計測

つまり文字列の種類はたかだか255個しかない表?
どんな表だ(藁
0462デフォルトの名無しさんNGNG
ランダムに並んでいるデータから一回だけ探索するなら線形探索が一番速いよね?
どんなに要素が多くても。
0463デフォルトの名無しさんNGNG
>>461
なぜ煽ってるんだかサッパリ分からないんだけど?
文字列の種類は検索対象1種類、検索文字列1種類
最後の1バイトが違うだけの2種類だ
単純なリニアサーチでもっとも遅くなる状況を作ったんだけど。
0464デフォルトの名無しさんNGNG
最近のUnixならたいていhsearchというハッシュ検索ライブラリが
入ってるからそれ使えばよい。なければソースを持ってくる。

お勉強ならいちから書いても良いけど。
0465デフォルトの名無しさんNGNG
>>462
検索することなんか気にせずランダムに配列に入れちゃったデータなら
そうだろうね。

でも「ランダムにやって来るデータを、あとで1回だけ検索する」なら
どう考えてもハッシュとかの方が速いだろ。

0466デフォルトの名無しさんNGNG
>>463
ふつうそれだと表の大きさは2にしかならんのとちゃう?
0467462NGNG
>>465
ああ、入力されるごとに処理できるようならハッシュの方が速いね。
一行ずつ読みとりながらハッシュテーブルに登録するとかね。
0468デフォルトの名無しさんNGNG
>>466
std::vector< std::string > sv(10240, pattern);
これなら表のサイズは10240個だけど。
0469デフォルトの名無しさんNGNG
#include <stdio.h>
int main(void);
int main(void)
{
printf( "%d\n",1.1 );
return (0);
}
は間違ったぷろぐらむですけど
実行すると
-1717986918という値が帰ってきます。
なぜですか?
0470デフォルトの名無しさんNGNG
ていうかさ、元ネタ自体がお勉強だったんだし、
リニアサーチのベタ比較で何も問題ないだろ。
そらお勉強でもレスポンスが帰ってくるのに何十秒もかかるなら考えた方が良いが、
>>444で試したような最悪なケースでも1秒以下なんだからそれで良いじゃないか。

それを横から>>439みたいなのが出てきたからややこしくなっただけでさ。
0471デフォルトの名無しさんNGNG
>>469
結果が未定義だから。浮動小数点数を無理矢理intの表現で読むと、
そのように見えると言うこと。
0472デフォルトの名無しさんNGNG
>>469
(int)1.1とやれば思い通りになるかも。
0473デフォルトの名無しさんNGNG
>>472
小数点以下は切り下げなんですね。
0474デフォルトの名無しさんNGNG
昨日、一昨日Borland C++の設定の仕方を聞いたものなんですけど
やっとCを勉強できる状態になりました。
0475デフォルトの名無しさんNGNG
>>474
おめでと

age
0476デフォルトの名無しさんNGNG
> ていうかさ、元ネタ自体がお勉強だったんだし、

え。仕事だろ?

> >>444で試したような最悪なケースでも1秒以下なんだからそれで良いじゃ
> ないか。

まああんたはリニアサーチ以外知らなかったんだろうが、「効率の良い方法」
聞いてるやつにそんなの教えるなって。

> それを横から>>439みたいなのが出てきたからややこしくなっただけでさ。

掲示板に横からも後ろからもあるかい(w
0477[email protected]NGNG

「高性能ビデオスタビライザー」です↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA

店頭販売価格は、13900 円なんですが、
今回だけ、破格の 7700 円に設定して
おります。

購入希望の方は、メールを下さい。

不安な方は、落札をして頂いても
構いません。
0478デフォルトの名無しさんNGNG
>>439=476
まぁ、なんと思っても良いけど。
漏れはひたすら最適化ばかり気にしてる最適化厨は嫌いだから、
この辺にしといてくれや
0479デフォルトの名無しさんNGNG
プログラムを強制終了する場合どうすればいいんですか?

ctrl+Z?
0480デフォルトの名無しさんNGNG
Ctrl C
Alt Ctrl Del
0481デフォルトの名無しさんNGNG
2日で480って。。。
0482デフォルトの名無しさんNGNG
>>479
CTL+D
0483デフォルトの名無しさんNGNG
#include <stdio.h>
int main(void);
int main(void)
{
int limit;
limit=100;
int a[limit];
return (0);
}
これどこが間違ってるんですか?
0484デフォルトの名無しさんNGNG
> これどこが間違ってるんですか?
基礎が。
0485デフォルトの名無しさんNGNG
>>484
あなたの人格もねw
0486デフォルトの名無しさんNGNG
>>484
配列に限界がないところが
0487デフォルトの名無しさんNGNG
ハァ?
0488デフォルトの名無しさんNGNG
>>485
逆ギレしないでくさい。あーくさ。
0489デフォルトの名無しさんNGNG
>>488
すまそ。配列のa[]の中に変数を入れたらダメってこと?
0490デフォルトの名無しさんNGNG
次の1には
エラーメッセージの読めないヤシはカエレ!!
を付け足してほしい
0491デフォルトの名無しさんNGNG
>>489
正解。
0492デフォルトの名無しさんNGNG
#define LIMIT 100
#include <stdio.h>
int main(void)
{
  int a[LIMIT];//俺が悪いんじゃない!変数名を適当に決めた>>483の責任だ!
  return 0;
}
0493デフォルトの名無しさんNGNG
Cでは関数内での変数宣言は関数の先頭でまとめてやらないといけないんじゃないの?
0494デフォルトの名無しさんNGNG
というか、どうして代入文の後に宣言文があるのですか?
ここCスレ…
0495デフォルトの名無しさんNGNG
かぶった。ケコーン!
0496484NGNG
だから基礎が間違ってるって言ったろ!な!な!

なーんつって。
0497デフォルトの名無しさんNGNG
>>496
自分の星に帰れ。
0498デフォルトの名無しさんNGNG
>>494
代入文の後に宣言文があるのはだめなの?
0499デフォルトの名無しさんNGNG
int limit=100;
int a[limit];
のようにコンパイル時にサイズが決まるものはよかったような・・・・

int limit;
limit=100;
int a[limit];
なんてやるのは駄目だと思うけど。
0500499NGNG
あ、やっぱりだめだ。
0501デフォルトの名無しさんNGNG
>>499
そうだったんか。
俺、今までmalloc使うものだとばかり思ってたよ。あはははは
0502デフォルトの名無しさんNGNG
c++でconst int x = 100;ならok
0503デフォルトの名無しさんNGNG
Cスレです。
0504デフォルトの名無しさんNGNG
>>501
malloc使うのはサイズが分からないときだけでしょ。
0505デフォルトの名無しさんNGNG
↓がC99なら可変長配列が使えると言い出す。
0506デフォルトの名無しさんNGNG
C++ならできます
0507デフォルトの名無しさんNGNG
C99なら可変長配列が使える
0508デフォルトの名無しさんNGNG
>>504
int limit=100;
int a[limit];
ができるならサイズ計算して動的に確保できるな、っていうボケだごるぁ。
0509デフォルトの名無しさんNGNG
>>505
というかおまえが言ってる
0510デフォルトの名無しさんNGNG
>>508
コンパイラが融通が聞けば、コンパイル時に分かるじゃない。
0511デフォルトの名無しさんNGNG
>>510
互換性が電子の渦の中に消失するという罠
0512510NGNG
× 聞けば
○ 利けば
0513デフォルトの名無しさんNGNG
それが出来るのはgccだけ
0514デフォルトの名無しさんNGNG
gccは可変長配列を使っているだけだと思われ。
0515デフォルトの名無しさんNGNG
C99準拠に向けて動き出す前から可変長配列使えたよ<GCC
0516デフォルトの名無しさんNGNG
enum
{
 BUFSIZE = 1024,
 ...
};
char buf[BUFSIZE];
はCでもOK?
0517デフォルトの名無しさんNGNG
>>515
C99のアイディアのかなりの部分はgccから来ていると思われ。

>>516
OK。
0518デフォルトの名無しさんNGNG
>>513
なこたーない。IntelのコンパイラでもSunのccでもDEC(Compaq)のccでも
SGI(Cray)のccでも使える。

(つか、使えないと行列演算ライブラリさえまともに書けない。)
0519デフォルトの名無しさんNGNG
のに、VC++6.0では使えない。
使えなくても困らないけど。
0520デフォルトの名無しさんNGNG
>>519
まあ、行列演算ライブラリをVC6で書いたりはしないだろうな。
0521デフォルトの名無しさんNGNG
>>520
別に可変長配列じゃなくてもヒープに確保すればいいじゃねーかよ
VCで書いた行列演算ライブラリあるし、そんなこと言ってる奴には
一生かかっても使うことも作ることも出来ない。
Sunのコンパイラよりは遙かに賢いしな<VC
0522デフォルトの名無しさんNGNG
行列同士の乗算を素直に書くと、

#define N ...
double a[N][N], b[N][N], c[N][N];

int i, j, k;
for (i = 0; i < N; i++) {
 for (j = 0; j < N; j++) {
  double x = 0.0;
  for (k = 0; k < N; k++) {
   x += b[i][k] * c[k][j];
  }
  a[i][j] = x;
 }
}

となるが、これをライブラリにする(つまりNを可変にする)
には、可変長配列が使えないと今どき番地計算を自分でシコ
シコ書く馬鹿みたいなコードになるか、あるいは効率の悪い
jagged array(1次元配列へのポインタ配列)になる。
0523デフォルトの名無しさんNGNG
>>521
SunのコンパイラとVCをどうやって比べたの?
0524デフォルトの名無しさんNGNG
UNIX/C のライブラリを解説している本 or Web Site はありませんか?
教えてください。
0525デフォルトの名無しさんNGNG
ライブラリって標準ライブラリのこと?
どの本でも解説してるでしょ。
0526デフォルトの名無しさんNGNG
>>525
多分、各種POSIX準拠の関数のことだと思う。
0527デフォルトの名無しさんNGNG
>>526
Linuxでも作るんかいな。
0528デフォルトの名無しさんNGNG
http://standards.ieee.org/reading/ieee/std_public/description/posix/
0529デフォルトの名無しさんNGNG
去年出たPOSIXって関数がすんごい増えてるけど、
あんなのに準拠したライブラリを持つようなOSは出てくるのかな?

それよりなんでこのスレ、二日で半分以上使ってるわけ??
0530デフォルトの名無しさんNGNG
>>529
POSIXとSingle Unix Specificationを統合したやつだよね。
ほとんど現状追認(+多少のclean up)じゃないの?
0531デフォルトの名無しさんNGNG
>>529
マ板に行かずにネタや雑談する人が増えたから。
0532デフォルトの名無しさんNGNG
>>531
プログラム板とプログラマ板の違いってなに??
0533デフォルトの名無しさんNGNG
ム    マ
人 <=> 技術
ネタ
0534デフォルトの名無しさんNGNG
>>533
逆だなぁ〜
0535デフォルトの名無しさんNGNG
SHIFT-JIS <-> EUC <-> UNICODE
の変換をしたんですが、どうするのが一番知的で
かっこいいですか?
0536デフォルトの名無しさんNGNG
なんかのライブラリとかツールを使う
0537デフォルトの名無しさんNGNG
>>534
アホな質問が多いから、そう感じるだけで>>533が正しい
まぁ、そのうち(すでに?)どうなるかは分からんが
0538535NGNG
すいません、フリーなライブラリってあるのでしょうか?
探したけど、見つかりませんでした。
0539533NGNG
スマソ。ムとマ間違えた。紛らわしいな。
一応分割時の状況とかもわかってたんだけど。

ムギ板/ギ板という略称を申請
0540デフォルトの名無しさんNGNG
>>538
nkf
unicodeには対応していないけど。

で、なんでここで聞く?:-)
0541540NGNG
ああ、ライブラリか・・・・
0542デフォルトの名無しさんNGNG
俺のライブラリを使う。非公開。なんてね。

unicode ⊃ sjis,eucj だから完全にスルーな変換はできないよ。
つか、誰でも知ってることですが。。。
0543デフォルトの名無しさんNGNG
ほら、そこらへんは、実体参照とかで。
0544デフォルトの名無しさんNGNG
はぁ、今夜も一人で自分のティムポ、いじろっと!
0545猫大好き ◆MwneRkSI NGNG
ファイルポインタに関する質問なのですが
CGI などを作るときにファイルの指定はどのようにしたらいいのでしょうか?

例えば、c:\dir\myfile.txt というファイルを開こうと思ったら
fopen("c:\dir\myfile.txt","w") 処理;

でできますか? また、UNIXの場合には
/dir/myfile.txt などのように指定すればいいのでしょうか?
0546デフォルトの名無しさんNGNG
>>545
特に間違ったことは言ってない。
自分を信じて取りあえず試してから来いよ・・・。
0547デフォルトの名無しさんNGNG
fopen("c:\\dir\\myfile.txt","w");
だな。
0548デフォルトの名無しさんNGNG
>>545
とりあえずfopenの戻り値を受け取らないと使えないな。
0549デフォルトの名無しさんNGNG
>>548
ファイル開くだけみたいだから良いんじゃないの...。(モードが "w" だから、
単に空のファイル作るだけとかさ。)

>>545
まず、>>547 の忠告聞いた上で、>>546 に従いな。でも、多分 CGI 故の
ディレクトリ指定ではまりそうだから、そうなったら WebProg 板へ逝け。
0550猫大好き ◆MwneRkSI NGNG
わかりました。
ありがとうございました。
0551デフォルトの名無しさんNGNG
ともっち!
0552デフォルトの名無しさんNGNG
... fopen("c:\\\\dir\\myfile.txt","w")
じゃないのか?

いずれにせよ、データファイルの位置はインストール時に
指定できるようにしないとしないと困るだろ。シェルスク
リプトやバッチファイルから環境変数で与えるとか。

UnixでもWinでも動くようにするつもりならなおさら。

まあコンパイル時に設定ファイルの絶対パスだけコードに
埋め込んじゃう(あとのパスは設定ファイルに書いとく)と
いうのもアリかもしれんけど。
0553デフォルトの名無しさんNGNG
\                  ブロロロロ        ./
  .\       __ _______         ./
    \    /  | :|  佐川急便 |        ./
     .\   |^~~~|-|======| =33   ./
ウーー    \  ̄◎ ̄◎ ̄ ̄ ̄◎ ̄       /            プゥーン
         \                  /
   ヾ  〃   \               /      __
   __,__     .\      ∧∧∧∧∧/     __|  |_( ̄ ̄)
 _|    |_     .\   <        >    |ウンコ:(ニニニニ)ニ =33333
 |━警視庁━| =3   \ <     働 >     ̄◎ ̄◎ ̄
  ̄◎ ̄◎ ̄         <  矛   く  >
――――――――――――< .感  車 >――――――――――――
                  < .!!!!  の >    _凸_
                  <.         >  _|    |_
       ブーーーーン     /∨∨∨∨∨\  |  タクシー   | =3
                 ./          \  ̄◎ ̄◎ ̄
__ 二 _ −      /ワッショイワッショイワッショイ \      ヴィーーン
|□ |_%%_= 二    /                \
|      _| =3 -  /    ヽoノ  ヽoノ ヽoノ    \       O
 ̄◎ ̄◎,, 三  ̄― ./   _  /   /    /      \    ヽ‖/
             /   /_| ノ)  ノ)   ノ)       \   く く
            ./   |祭~| ̄ ̄ ̄ ̄ ̄ ̄| =3      \
            /     ̄◎ ̄ ̄ ̄ ̄◎ ̄           \
0554デフォルトの名無しさんNGNG
>>549
プログラム終了時まで開きっぱなしはよくない。
0555凄いプログラムを書いた。NGNG
main()
{
puts("Hello,world!");
}
0556デフォルトの名無しさんNGNG
                +      .
          +            .  ,,;;-;_               .
  *           ,,--'''""`ヽ'   -/"~   ̄`ヽ、    +
      .      /       ヾ''"         ~`ヽ   
          /       _,,,...  ヽ;:  /""ヽ    ヽ         .
   +       /       ;'"  "\ l /;:;;:::-'''"ヽ,   i    *
      .   /       /::::::::-'''''"~        ヽ,   .|,
  .        /       |;:"               ヽ   !  .      +
          /       /                 |  |
      *   /       人           "'':;;::''''' i,  |     .
         i        ';  ,,,,;;:::::::'''"   .:   ,,,,,, ヽ ヽ 
         |        |  "  ,,,,,,,,, .::    ;''“”`  |  |  *
   +      |        |:   ;::''“”“~` ::::.      ... |. i      .
          |        i::     .:.:.:.:.::.. :::::  i  .:.::.:.:.| ,;|   
          |       ヽ.   .:.:.:;:;:;:;:::.:.. :::: , _〉 .:.:;:;:.:.:| ,| .   
       +   |        ノ::    ::.:.:.:.:.:.:      :.:.:.:.:.| |,      .
           |       人::::..        ___,,,,,,,,...:;-'  |  |  +
.. *         |     ;:'" `、ヽ      'ヾ,...  ..ノ  /  |        +
           |        ヽ:: \       ::::::   ./  |       .
           |        ::;|::.  `ヽ、_       /'|ヽ./"
    +      ,/.   ::::::::::::;;:::人:.     `'''----―'' .|: ヽ    *
         /;:;:;:;;:;;;;;;;;;;;;/   `ー、          ;-'"  \ー-、
  .         ,.-'"  \       \      ;:-''"    .|   `-:;;,,
         /.      \      "''''-ヽ、,.-''"      |
    ,,..-‐'''""          ヽ    ,.-''"\ : /―――-:;/
ともっちがかわいいと見抜けるようでないと、(ム板を使うのは)難しい。
0557デフォルトの名無しさんNGNG
。・゚・(ノД`)・゚・。
http://www.asahi.com/obituaries/update/0525/002.html
0558デフォルトの名無しさんNGNG
ポインタ配列で格納されている値の変数を複数個、returnコードで返すことって出来るでしょうか?

0559デフォルトの名無しさんNGNG
>>558
(゚д゚)ハァ?
0560デフォルトの名無しさんNGNG
returnの戻り値は、ひとつだけ。
そこで、ポインタの配列を返すようにみせかけるためには、先頭ポインタを使う。

ポインタの配列の先頭ポインタを返すことで、
受け取ったほうでポインタの配列をたどり、
ポインタ配列のポイントする(指し示す)値を得ることはできる。

このポインタの配列の、先頭のポインタを返す
↓
■→値
■→値
■→値
■→値
■→値
□
0561デフォルトの名無しさんNGNG
>>560
その方法やるときは、格納した要素数の情報も返さないといけないから、
結局は参照渡しが必要なのではないでしょうか?
0562デフォルトの名無しさんNGNG
だいたい、一番下の白い四角をどうやって判断するわけよ?
文字列のときはいいかもしれんが、、、、
0563デフォルトの名無しさんNGNG
構造体に配列の先頭と数を入れて返す
0564デフォルトの名無しさんNGNG
>>563
うまい!!
0565デフォルトの名無しさんNGNG
STLのpairの真似をする。
0566デフォルトの名無しさんNGNG
>>563の考えはうまいかも知れんけど、無意味な
構造体の定義が増えてしまいそうなので、私は発想力のほうは
認めるが、実用性では認めない。

やはり参照渡しを使うべきだと思う。
関数を知っていて、参照渡しを知らないとなるとdqnだ。
0567デフォルトの名無しさんNGNG
> 関数を知っていて、参照渡しを知らないとなるとdqnだ。

関数を知っていて、参照渡しを知らないのはただの初心者。
たいした条件でもないのにそれに沿った答えを出せない奴の負け惜しみカコワルイヨ
0568デフォルトの名無しさんNGNG
>>562
ポインタ配列だろ?
NULLを入れればいいじゃないか。
0569568NGNG
NULLを途中に含む配列ならだめだけど:-)
0570デフォルトの名無しさんNGNG
ポインタ渡して変更してもらえば
0571デフォルトの名無しさんNGNG
>>570
それでは「returnで返す方法」という質問の意図に沿っていません。
そしてそれを一般に「参照渡し」と呼ぶような気がします。
0572デフォルトの名無しさんNGNG
まあ答えは出とるわけだし
0573デフォルトの名無しさんNGNG
>>554
もうその手の話題はやめようよ。
0574デフォルトの名無しさんNGNG
↑うるせえバカ
0575デフォルトの名無しさんNGNG
最後のポインタは最初のポインタと同じものを指す、という約束にすれば?
0576デフォルトの名無しさんNGNG
もしかして俺って天才
0577デフォルトの名無しさんNGNG
↑氏ねアフォ
0578デフォルトの名無しさんNGNG
質問させてください。
mainの中である番号i(int型)を取得し、そのiを別の関数に渡して、その
番号に対応した文字列をmainに返すというプログラムをつくりたいのですが、
int main(void)
{
char day(int);
int i;
printf("曜日コード入力\n"); scanf("%d",&i);
printf("%s\n",day(i));
}
char day(int j)
{
switch(j){
case 1: return ("月曜日");
case 2: return ("火曜日");

〜〜〜中略〜〜〜

default :return ("不正なコードです");
}
}
とし、コンパイルしたところ、case1からdefaultまでの各行に対して
warning: return from incompatible pointer type
と言われました。そこで、
int main(void)
{
char* day(int);//ここを変更
int i;
printf("曜日コード入力\n"); scanf("%d",&i);
printf("%s\n",day(i));
}
char* day(int j)//ここを変更
{
switch(j){
case 1: return ("月曜日");
〜〜〜以下省略〜〜〜

としたところ、エラーもでず実行することも可能でした。これまで関数を
ポインタとして定義する(と言う表現でいいのかどうかわかりませんが)
ということをした事が無いのでなにか違和感があるのですが、こういう
やり方で何か問題はありますか?
あるいはもっと他に一般的なやり方があるのでしょうか?
ちなみにコンパイラはcygwinのgcc2.95.3-5を使いました。
0579デフォルトの名無しさんNGNG
>>575
空の配列を表現できない。
複数の要素が同じポインタを指す可能性のある配列には使えない。

よって、>>576 は、単なるバカと決定しました。
0580デフォルトの名無しさんNGNG
char day(int);

これは何?
char (*day)(int);ならわかるけど。
0581580NGNG
>>578
char *day(int);
int型の値を受け取り、char型へのポインタを返す関数
0582デフォルトの名無しさんNGNG
定数を返す時は関数の戻り型に const を付けよう。
0583デフォルトの名無しさんNGNG
それでいい。
文字列を返したい場合、関数の戻り値は
char *
だ。
文字列は、文字の配列だから、先頭ポインタで返す。
"STR"は、[S],[T],[R],[\0]という配列のことだから、
[\0]を出力関数が見つけて、そこで出力が終わる。
0584デフォルトの名無しさんNGNG
>>578
> 関数をポインタとして定義する
と言う考え方が間違い。たんに、「char へのポインタを返す関数」を定義してる
だけ。通常これで問題ない。
0585581NGNG
あ、関数へのポインタじゃなくて関数のプロトタイプか。
関数内に書くとは珍しい・・・
0586デフォルトの名無しさんNGNG
>>582
うん ? 単なる標語か ? 今回の話には関係ないと思うが...。
それとも文字列リテラルだから const char *day() にしろと言いたい
のか ?
0587デフォルトの名無しさんNGNG
>>579
つーことは、そのどっちもとっくに気付いているおれはやっぱり天才
0588デフォルトの名無しさんNGNG
>>586
だろうな。
戻り値には普通つけないと思うが・・・・
0589デフォルトの名無しさんNGNG
普通つけない→付けたほうがいい時でも、サボるやつが多い
0590デフォルトの名無しさんNGNG
>>587
普通すぐ気付くし、多分みんなとっくに気付いていると思って書き込ま
ない。うれしそうに書き込むのは、バカだけ。
0591デフォルトの名無しさんNGNG
>>587
そう、チミは天才、よって、チミはもうここで学ぶものは無いから、来なくていいよ。
0592デフォルトの名無しさんNGNG
578です。
間違ってはいないということですね。
constについてはよく知らないのでまた勉強しておきます。
どうもありがとうございました。
0593デフォルトの名無しさんNGNG
const -> constant
0594デフォルトの名無しさんNGNG
w
0595デフォルトの名無しさんNGNG
答えを出すことじゃなくて、人の意見を批判することのほうに
考えが向いてしまっている奴は、低レベルな奴だと思う。
0596デフォルトの名無しさんNGNG
それが2ch流。
0597デフォルトの名無しさんNGNG
>>595
じゃあ君は低レベルなんだ。
0598デフォルトの名無しさんNGNG
>>595
ボクみたいな、人の意見に批判すら出来ない程度のヤシはどうですか?
もちろん答えなんて出せません
0599デフォルトの名無しさんNGNG
>>597
オマエモナ
0600デフォルトの名無しさんNGNG
>>595
自分の発見した方法の問題点について考察することなしに、
天才を気取る奴は低レベルな奴だと思う。
それと、ほとんどが批判でなく指摘。
0601デフォルトの名無しさんNGNG
「批判する奴は低レベル」と中傷をぶちかます奴はなんと定義されますか?
また、クラスとして使えますか?
0602デフォルトの名無しさんNGNG
ふーん。
0603デフォルトの名無しさんNGNG
中傷と抽象がかかってる?
0604デフォルトの名無しさんNGNG
漏前らなんかみんなファックユーじゃ
0605デフォルトの名無しさんNGNG
>>596,597
 お前ら、558への解答は、できないわけありませんよね?
0606デフォルトの名無しさんNGNG
>>558
            ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` )<  うざいぞ!!氏ね!
          /,  /    \___________
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /
        /    \
0607デフォルトの名無しさんNGNG
もしかして俺って天才くんの話でないのか
0608デフォルトの名無しさんNGNG
---------------------------終了---------------------------------
0609デフォルトの名無しさんNGNG
(´ー`)y-~~~ほざけ
0610デフォルトの名無しさんNGNG
 (_  ̄ ( 0 0 ) ̄_) y-~~~ ほざけ
0611デフォルトのクライアントさんNGNG
僕は営業だけど、いつも優秀な外注のソフト屋さんに接してるけど、ここの雰囲気、意外だなあ。
いくら稚拙な解答でも、ケチだけつけて、「当たり前だから」とか「分かってたから」書かなかったとか後になって言っておしまい。って、なんだなあ。
きっと頭のいいひとたちなんだろう(僕が見たソフト屋さんはみんなそうでした)から、よいよい解を与える努力をすればいいのに。
0612デフォルトの名無しさんNGNG
糞営業の分際でなにほざいてんだ(´ー`)y-~~~
0613デフォルトの名無しさんNGNG
           ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` ) < >>611うるせー馬鹿!
          /,  /   \_____________
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /
        /    \
       /  /~\ \
       /  /   >  )
     / ノ    / /
    / /   .  / ./.    (゚д゚) <バカ
    / ./     ( ヽ、    ゚(  )−
   (  _)      \__つ   / >
0614デフォルトの名無しさんNGNG
>>611
みんなその辺は心得ていて、

「論拠無き発言はネタ」

とフィルタリングしてる。
たまにウブなのかアフォなのかしらんが騒ぐ奴が居るが。
0615デフォルトの名無しさんNGNG
>>614
お ま え は ば か だ !
0616デフォルトの名無しさんNGNG
まあまあ、>>595 もなんか書いてみたかったんだよ。許してやってくれ。
0617デフォルトのクライアントさんNGNG
>>614
 そうですか。世間知らずなソフト屋さんも若干名ここにはいらっしゃるということですね。残念だけど僕もフィルタリング(わら)の技術を磨こうと思います。
 じゃあROMに戻ります。失礼しました。
0618始めて1週間・・NGNG
あの質問なんですが下のプログラムはなぜちゃんと動いてくれないのですか?
コンパイラのエラーとかですかね?やっぱり?・・・

#include < stdio.h >
void main()
{
char s[256] = "hello,world";

fprintf(stdin,"%s\n",s);
}
0619始めて1週間・・ NGNG
こうでした(^^;
X コンパイラのエラーとかですかね?
○ コンパイラのバグとかですかね?
0620デフォルトの名無しさんNGNG
stdinじゃなくてstdoutではないだろうか。
0621デフォルトの名無しさんNGNG
>>618
fprintf(stdout,"%s\n",s);
0622デフォルトの名無しさんNGNG
>コンパイラのエラーとかですかね?やっぱり?・・・
↓
コンパイルもせずに動いてくれないと言っている
↓
ネタ
↓
面白くない
↓
放置
0623デフォルトの名無しさんNGNG
#include <stdio.h> が正しい。

<と>の横にスペースを入れるとコンパイルエラーになる
処理系があるから、スペースを入れないよう習慣づけるべき。
0624始めて1週間・・ NGNG
stdoutってなんですか?
初めて聞きます・・・・(汗
0625デフォルトの名無しさんNGNG
stdoutの代わりに間違ってstdin突っ込んで、コンパイラのバグかよ、おめでてーな
0626デフォルトの名無しさんNGNG
放置って書いて放置されてなかったら恥ずかしいよね
0627デフォルトの名無しさんNGNG
>>624
じゃあ stdin は知ってんのかよ・・・?それの同類だ。調べれ。
0628デフォルトの名無しさんNGNG
#define stdin stdout
ちょとエラー出るけど、我慢しる
0629デフォルトの名無しさんNGNG
>>571
> そしてそれを一般に「参照渡し」と呼ぶような気がします。
イワネーよバカ。
Cに参照渡しがあったらC++いらねー(ってのは嘘だが
0630デフォルトの名無しさんNGNG
>>628
いや、ダメプログラマ・・・。
0631始めて1週間・・ NGNG
親切にどうもです(;;)
授業中寝ててstdinもなんなのかよくわからないままやったのが
悪かったのでしょうか・・・
ちょっと本を読んでみます(;;)
0632デフォルトの名無しさんNGNG
>>629
禿同
0633デフォルトの名無しさんNGNG
>631
質問するまえにこれからは、予め本やネット等で調べてからにしようね
0634デフォルトの名無しさんNGNG
今頃・・・ニヤニヤ
0635デフォルトの名無しさんNGNG
禿同?ニヤニヤ
0636neroNGNG
ioctl を使って cd-rom から データを取りたいのですが、
トラック越えのデータ取得はデキマスカ?
マルチセッションの cd から検索したいのです。
0637デフォルトの名無しさんNGNG
ioctlなんてものを知ってるなら、
cdda2wavあたりのソースを見るのが早いんでないか?
0638 NGNG
0639デフォルトの名無しさんNGNG
くだらないやりとりだな。
0640教えてほしいです!NGNG
HTMLのことなんですけど、
ページを開くと他にも次々にページがでるようにしたいんですけど
どうやるかわかる人いますか?
いたらおしえてほしいです!お願いします!!!
0641デフォルトの名無しさんNGNG
ブラクラ?
0642デフォルトの名無しさんNGNG
>>640
場違い。氏ね!
0643デフォルトの名無しさんNGNG
復活させようという気はないのかね?
0644デフォルトの名無しさんNGNG
>>640
屑は氏ね
0645デフォルトの名無しさんNGNG
>>640
テーマに沿った板ならオールマルチポストは有効だ。
間違って答えるアフォが居るから。
でも、板違いでそれやったところで痛いだけ。

次はWebProgに行ってバカにされるんだろうな・・・。
0646デフォルトの名無しさんNGNG

                 -― ̄ ̄ ` ―--  _         
            , ´  ......... . .   ,   ~  ̄" ー _
          _/...........::::::::::::::::: : : :/ ,r:::::::::::.:::::::::.:: :::.........` 、   
         , ´ : ::::::::::::::::::::::::::::::::::::/ /:::::::::::::: : ,ヘ ::::::::::::::::::::::: : ヽ
      ,/:::;;;;;;;| : ::::::::::::::::::::::::::::::/ /::::::::::::::::::: ● ::::::::::::::::: : : :,/
     と,-‐ ´ ̄: ::::::::::::::::::::::::::::::/ /:::::::::::r(:::::::::`'::::::::::::::::::::::く
    (´__  : : :;;:::::::::::::::::::::::::::/ /:::::::::::`(::::::::: ,ヘ:::::::::::::::::::::: ヽ
         ̄ ̄`ヾ_::::::::::::::::::::::し ::::::::::::::::::::::: :●::::::::::::::::::::::: : : :_>
            ,_  \:::::::::::::::::::::::::::::::::::::::::::::: `' __:::::::::-‐ ´
          (__  ̄~" __ , --‐一~ ̄
   もうだめぽ…
0647デフォルトの名無しさんNGNG
     \         ∧∧    ミ _ ドスッ    .     /
      ..\        (   ,,)┌―─┴┴─――┐ .  .  /
   ∧∧  \      /   つ.もうだめぽ   .  .│   /  
   /⌒ヽ)   \  〜′ /´.└―─┬┬─――┘. /
  i三 ∪     \ ∪ ∪      .││ _ε3 ./  λ...... λ...... λ......
 ○三 |       \         ゛゛'゛'゛    ./
  (/~∪         \    ∧∧∧∧∧. / λ...... λ..... λ......
  三三  もう       \ . <          >
  三    だめぽ     \<     .だ .>    もう
三三   三          . < 予   .め .>     だめぽ
――――――――――――< 感  .す  >――――――――――――
                  < !!!!   れ >
                  <.     の >
                    ∨∨∨∨∨

                 -― ̄ ̄ ` ―--  _         
            , ´  ......... . .   ,   ~  ̄" ー _
          _/...........::::::::::::::::: : : :/ ,r:::::::::::.:::::::::.:: :::.........` 、   
         , ´ : ::::::::::::::::::::::::::::::::::::/ /:::::::::::::: : ,ヘ ::::::::::::::::::::::: : ヽ
      ,/:::;;;;;;;| : ::::::::::::::::::::::::::::::/ /::::::::::::::::::: ● ::::::::::::::::: : : :,/
     と,-‐ ´ ̄: ::::::::::::::::::::::::::::::/ /:::::::::::r(:::::::::`'::::::::::::::::::::::く
    (´__  : : :;;:::::::::::::::::::::::::::/ /:::::::::::`(::::::::: ,ヘ:::::::::::::::::::::: ヽ
         ̄ ̄`ヾ_::::::::::::::::::::::し ::::::::::::::::::::::: :●::::::::::::::::::::::: : : :_>
            ,_  \:::::::::::::::::::::::::::::::::::::::::::::: `' __:::::::::-‐ ´
          (__  ̄~" __ , --‐一~ ̄
   もうだめぽ…
0648デフォルトの名無しさんNGNG
>>640
こんなゴミ野郎と同じ日本人かと思うとものすごく不愉快なんですが。
背中の辺りがぞわぞわします、マジで氏んで欲しい。
0649デフォルトの名無しさんNGNG
------------------------終了-------------------------------------
0650教えてほしいです!NGNG
>>642
お前が氏ね!FUCK OFF!
わからないからいえないんだろ!
ドアホ!
0651デフォルトの名無しさんNGNG
memcpy()とstrcpy()の違いが分かりません。
void*かchar*の違いだけだと思うのですが、、、
ご教授お願いします。
0652デフォルトの名無しさんNGNG
>>651
memcpy() は、'\0' があってもコピーする。(だから、バイト数が必要)
0653デフォルトの名無しさんNGNG
>>652
あ、、、なるほど。ども、ありがとです
0654デフォルトの名無しさんNGNG
>>651
str*は'\0'より後ろは処理(strcpyならコピー)しない
0655デフォルトの名無しさんNGNG
>>654
どもども、thanxです

勉強のためにmemcpy()を自作したいのですが、(第1,2)引数は何の型にキャストすればよろしいでしょうか?
やはり、const char*でしょうか?
0656デフォルトの名無しさんNGNG
バイト単位だから、char*型かな?
0657デフォルトの名無しさんNGNG
>656
なるほど。。。どもどもthanx、勉強逝ってきます
0658デフォルトの名無しさんNGNG
>>655
第1引数は、const char * じゃまずいだろ。書き込むんだから...。
0659デフォルトの名無しさんNGNG
>658
あ、すいません。ですよね、途中で気付きました(汗
0660デフォルトの名無しさんNGNG
>>655
第一引数(destination)はchar *
第二引数(source)はconst char *じゃないすか。
0661デフォルトの名無しさんNGNG
任意のバイト数の型をつくることは不可能ですよね・・・?
配列や構造体ではなくて。
0662デフォルトの名無しさんNGNG
>>660
どもどもthanx。やっとdestの意味が分かりました^^;;
0663デフォルトの名無しさんNGNG
>>662
運命とか思っていたか?
0664デフォルトの名無しさんNGNG
>>663
いえいえ、自爆かと
0665memcpy厨NGNG
malloc()って自作できるものなんですか?
0666デフォルトの名無しさんNGNG
>>665
コンパイラだって、OSだって自作は可能
0667デフォルトの名無しさんNGNG
>>665
プログラミング言語Cに作り方のひとつが載っていた。
0668665NGNG
>>666
そうだった。。。凄いなC

>>667
マヂっすか。気になりますね。。今度探しときます。情報thanx
0669デフォルトの名無しさんNGNG
>>668
おいおい、>>666 は、「C だけで」と言ってるわけじゃねーぞ。
コンパイラは、いいとして OS を C だけで作るのはちょっと無理かと...。
0670デフォルトの名無しさんNGNG
K&Rにmallocの作り方載ってるだろ。
OS依存にしたくないなら巨大な配列取っとけばよろしい。
お勉強ならそれで十分。
0671デフォルトの名無しさんNGNG
>>669
そうなんすか、、、脳内修正しときます
>>670
K&R持ってない罠。本屋に頼んどきます
関係ないけど、林晴比古さんはダメらしいですね。何故でしょうか?
自分、あれから入ったのですが、、、
0672デフォルトの名無しさんNGNG
お勉強のためのOSモドキ(デバイスは仮想)なら書けるね。
実際そうやってCだけで書かれたOSもあったと思う。
nachosだっけ。CPUから全部エミュレートしてるやつ。

でかいファイルを仮想のディスクにしてファイルシステム
とか書いてみるときっと勉強になると思う。
0673デフォルトの名無しさんNGNG
fgetsの説明を見るとファイル終了でNULLを返すとありましたが、
NULが返ってきた後にまたfgetsを読んでも
すべてNULLが返ってくるとしていいんですか?
0674デフォルトの名無しさんNGNG
>>671
K&Rはやめとけもっといい本はいくらでもある
0675デフォルトの名無しさんNGNG
>>671
大きい本屋に行くと Lion's Commentary Unix という本が売ってるはず。
Unix 第 6 版のカーネルのソースコードを整形してコメントをつけたもの。
たった 1 万行程度の アセンブラ(数百行くらい) + C で OS が成り立っている。
内容を理解するのは難しいと思うので
目次を立ち読みしてリッチーカコイイとか思ってくれ。
0676673NGNG
fgetsを読んでも->fgetsを呼んでも
0677デフォルトの名無しさんNGNG
>>673
はっきり書いてあるのは見たこと無いけど常識的に
考えてそうだと思う。一度fgetsがNULLを返して、
その後ファイルの最後に書き込んでファイルが大きく
なったらどうかわからんが。
0678デフォルトの名無しさんNGNG
>>672
ファイルシステムっすか。。
一時期ファルダを指定して、そこから最下層までアーカイブ、管理みたいなのは考えたことはあるんですけどねぇ
それすら作ってないですから、、
>>674
忠告thanx。どうもです^^;; でも、一応見て判断してみます
>>675
難しそうですが見てみたいので、探してみます。情報ども。
0679673NGNG
>>677
一応自分で試してみると
すべてNULLが帰ってきました。(読み込んでいるファイルはいじってないです)
が、たまたまなのかな?と思いまして。
0680デフォルトの名無しさんNGNG
>>679
fseekとかrewindしてファイルポインタを動かせばEOFは解除されるからNULLじゃなくなるよ。
そーでなけりゃ、ずっとEOF状態のままだから(大体それ以上読み込むデータ無いんだし)NULLを返します。
0681デフォルトの名無しさんNGNG
C言語でpingコマンドを使いたいのですが、どうすれば良いですか?
0682デフォルトの名無しさんNGNG
>>681
system 関数で呼び出すとか。
0683デフォルトの名無しさんNGNG
>>681
ICMPを泣きながらながら実装。
0684デフォルトの名無しさんNGNG
>>683
おもしろい わらった
0685デフォルトの名無しさんNGNG
>>675
>たった 1 万行程度の アセンブラ(数百行くらい) + C
本当は何行なんだ?
0686デフォルトの名無しさんNGNG
>>685
オリジナルが何行だったかは知らないけど、
本のはコメントついて 9800 行ちょい。
もっと短かったんじゃないかな。
0687681NGNG
>>682-683
まだまだ勉強不足であることがわかっただけでも儲けものです。
ありがとうございました。
0688デフォルトの名無しさんNGNG
>>681
Win用なら
http://mio.servequake.com/~takky/programs/
の「プログラムパーツの部屋」の「マイクロソフトWinsock用ICMP資料」
が役に立つかも(HPの管理者がwinsock.comのをまとめたもの)。
ていうか、pingとtracerouteのソースそのもの。
0689デフォルトの名無しさんNGNG
あるファイルの中に構造体
typedef strcut{
int foo;
} HOGE;
というのがあるとき、このファイルの外から
このHOGEは見えるのですか?
0690デフォルトの名無しさんNGNG
見えないけど、同じ(互換な)定義を書けば使うことはできる。
0691689NGNG
>>690
じゃあ、あるファイルだけで使いたい構造体があるときは
そのファイルで普通に定義すればいいんですか?
0692デフォルトの名無しさんNGNG
>>691
そーです。
0693689NGNG
>>692
わかりました。ありがとうございます。
0694デフォルトの名無しさんNGNG
#include<stdio.h>
#include<stdlib.h>
int main(){
int i;

char a[10];
for(i=0;i<10;i++)
a[i]=' ';

scanf("%s",a);

for(i=0;i<=10;i++){
if (a[i]==' '){
printf("atari");

}
printf("%c\n",a[i]);
printf("%c\n",a[3]);

}
return(0);
}
このプログラムで数字を入力している途中スペースキーをおして、
再び数字を入力した場合、打ち込んだ数字をどうやって全部だすかおしえてください
0695デフォルトの名無しさんNGNG
>>694
質問の意味がよくわかりませーん。
0696デフォルトの名無しさんNGNG
>>694
スペースを押してしまったらバックスペースでやり直せばいいです
0697デフォルトの名無しさんNGNG
>>694
for (i=0; i<10; i++) {
  if (a[i] != ' ')
    printf("%c\n", a[i]);
}

C言語勉強して、間のない初心者なのですが・・・
こんなのでしょうか???
0698デフォルトの名無しさんNGNG
>>672
ファイルシステム面白そうです。

仮想デバイスは1ブロック512バイト固定で、
size_t get_size(); //ブロック数を返す
int read_block(int blocknum, char *buf); //1ブロック読む。
int write_block(int blocknum, char *buf); //1ブロック書く。
が使えて、それを使って
open, close, read, write, mkdir, unlink, rename,
rmdir, stat, lseekくらいができれば良いですかねえ?
0699デフォルトの名無しさんNGNG
#1〜#256って文字列を作るのに以下のようにすると変になります。
なんで?

char hoge2[3];
char sharp[2];
strcpy( sharp, "#");
for(int i=1;i<256;i++) {
_itoa( i, hoge2, 10);
strcat(sharp,hoge2);
printf("%s ",sharp);
}
0700デフォルトの名無しさんNGNG
これじゃない?
> char sharp[2];
0701デフォルトの名無しさんNGNG
初めから
printf("#%d ", i);
ってやっちゃえば
0702699NGNG
char buff[200];
・・・
sprintf(buff,"#%s",hoge2);

てな感じでいけました。徹夜明けなのでぼけーっとしてます。
ありがとう>>700,701
0703デフォルトの名無しさんNGNG
みんな朝早いね。それとも。。。
0704デフォルトの名無しさんNGNG
>>702
まだぼけーっとしてるみたいだが、701の言うようにprintf使えばいいじゃん。
0705デフォルトの名無しさんNGNG
>>703
二日寝て二日起きるんだよ、今日は起きる日
0706デフォルトの名無しさんNGNG
>>705
長寿のおばあちゃんみたいな生活
0707デフォルトの名無しさんNGNG
>>705
負けますた、ワラタ
0708デフォルトの名無しさんNGNG
二年近く夏休みが続いていますが何か?
0709デフォルトの名無しさんNGNG
>697


できました。ありがとうございます。
初心者ではじめてまだ2週間で、困ってたんです。
0710デフォルトの名無しさんNGNG
>>698
本来は、OS スレに行くべきだろうが、まあ続かんだろうから...

> size_t get_size(); //ブロック数を返す
> int read_block(int blocknum, char *buf); //1ブロック読む。
> int write_block(int blocknum, char *buf); //1ブロック書く。

何故 get_size() の戻り値は size_t で、read_block(), write_block() の
blocknum は int なのかと...。ついでに、今時なら普通...
int write_block(size_t blocknum, const void *buf);
だと思うぞ。

> open, close, read, write, mkdir, unlink, rename,
> rmdir, stat, lseekくらいができれば良いですかねえ?
mkdir, rmdir をサポートすると言うことは、階層ディレクトリサポートすると
言うことだよね。だったら、chdir/getwd とかもいると思うし、link が無い
なら、unlink なんてわけわかの名前じゃなくて素直に remove (もしくは
delete (C なら良いが、C++ だとバッティングするか...) とか Erase) の方が
良いと思うぞ。あと、ディレクトリの検索関係は、どうするんだ ? ディレクトリ
を直接オープンして、ライブラリで処理と言うことで良いか ?
0711デフォルトの名無しさんNGNG
unlinkを「わけわか」と言っているところで あれ? と思ってしまったが・・・
0712710NGNG
あと、ファイルシステムの初期化 (newfs とか) と、オープンできない
ファイルの状態を調べる必要があるなら fstat とかも必要かも...。
0713デフォルトの名無しさんNGNG
C言語で、

int a,b,c;
a=0;
b=0;
b=b++;
c=a++:

ってやったばあい、a,b,c の値はどうなるのでしょうか
0714デフォルトの名無しさんNGNG
>>713
b=b++;
の一行の動作は未定義です。
0715デフォルトの名無しさんNGNG
>714
ばかじゃねーの?
0716デフォルトの名無しさんNGNG
>>714
未定義にも限度があるよな。良く検討した?
これで b=0とかb=100になることはありえねーだろ。 ちったー脳つかえ
0717Not 714NGNG
>>716
限度があっても未定義は未定義だろ。
0718デフォルトの名無しさんNGNG
>>715
ばかじゃないよ。
K&R第2版P66嫁。 
0719ここミレNGNG
http://home.jp.FreeBSD.org/cgi-bin/showmail/FreeBSD-users-jp/68636
0720デフォルトの名無しさんNGNG
>>716
未定義という言葉がまずかったのなら、こう言いましょうか。
b=b++; の結果のbは、0か1になりますが、それは処理系依存です。
0721デフォルトの名無しさんNGNG
で、「未定義」の意味はC FAQを参照、っと
ttp://www.catnet.ne.jp/kouno/c_faq/c11.html#33
0722デフォルトの名無しさんNGNG
http://www.catnet.ne.jp/kouno/c_faq/c11.html#33
0723デフォルトの名無しさんNGNG
つーことは「不定」になるのか。この場合。
0724デフォルトの名無しさんNGNG
>>716
そうとは限りませんよ。どんなことが起こっても不思議ではありません。
ttp://www.catnet.ne.jp/kouno/c_faq/c3.html#3
0725デフォルトの名無しさんNGNG
>>720君も>>724を読んでね。
0726デフォルトの名無しさんNGNG
b=b++;なんて阿呆なことはやめようよ。ヽ(´ー`)ノ
喧嘩もやめようよ。ヽ(´ー`)ノ
0727デフォルトの名無しさんNGNG
プログラマとして不適正な人が多いね・・・
じゃあ実際にコンパイラを作ったとしてだ
b=b++;
を、キミ達ならどうアセンブラに落とすのよ?
不定だからっつって、これをアセンブルして
くれないコンパイラは今の世には無いぜ。

一般的なコンパイラを4つほど試したが
b=0;
b=b++;
は全て b=1 となった。ま、当然だな。
順当に考えれば b=b ; b++; という順に評価するってこと。
誰が作ったってこーなるよ。
0728デフォルトの名無しさんNGNG
>>727
ソースで配布するときに相手にコンパイラを指定するのは馬鹿だろう。
一般的なコンパイラとは何か4つ示してほしいが…
0729デフォルトの名無しさんNGNG
>>727
存在するコンパイラがどうなっているかなんて問題じゃないんだよ。
規格がどうなっているのかが問題なんだよ。
ここは特定のコンパイラ専用のスレッドじゃない。
0730デフォルトの名無しさんNGNG
>>728 >>729
おいおい放置しろよ
0731デフォルトの名無しさんNGNG
オレが君達に言いたいのは、不定だからといって思考を止めるな、ということ。

現実に書けるコードなんだから(書くことの是非は置いといて)
書かれてしまったものについて きちんと動作を検証してみろってことだ。
自分が書いたコードでなくとも、例えば不出来な部下がこういうコードを書き
それが元でトランザクションを破壊された狂ってしまったデータを復旧する
などの事態に陥ったときに これらの事象を理解しうる知恵と知識を持て。
0732デフォルトの名無しさんNGNG
>729
規格を疑え。
だいたいそれなら、コンパイルエラーにするなりなんなりといった
予防処置がコンパイラに取られてしかるべきじゃあないのかね?
0733デフォルトの名無しさんNGNG
>>731
俺だったらその部分だけ書き直すが・・・
0734デフォルトの名無しさんNGNG
>>731
誰も思考は止めていない。
ただ、コンパイラがこうだから…を重視するプログラマーか
仕様を重視するプログラマーかの違い。

はっきりいって、前者の方が駄目だけど、現実多いんだろうなって感じたり
0735デフォルトの名無しさんNGNG
だから放置を覚えろよ親切君
0736デフォルトの名無しさんNGNG
x^2-3x+1=0のプログラムを教えてください
0737デフォルトの名無しさんNGNG
>>736
宿題は自分でやれ
0738デフォルトの名無しさんNGNG
main(){ printf("x^2-3x+1=0\n");}
0739727NGNG
>>735
いや、馬鹿な奴にはしっかり教えとかないといけないだろ?
誰が作ったってこーなるよ。
0740デフォルトの名無しさんNGNG
>>735
だから放置を覚えろよ自治厨君
0741デフォルトの名無しさんNGNG
(゚∀゚)盛り上がってまいりました!
0742デフォルトの名無しさんNGNG
放置って739のことかと思った。
0743デフォルトの名無しさんNGNG
>>742
一名以外はそう思ってるよ。
0744デフォルトの名無しさんNGNG
>>731
> これらの事象を理解しうる知恵と知識を持て。
そう言う知識をもってたら、やることは...
> きちんと動作を検証してみろってことだ。
では無いだろ。普通 >>733 みたいにするよ。検証したって、コンパイラ変われば
(もっと言うと、ソース変わっただけで) 結果が変わるかもしれないから、無駄だ
よ。

>>732
> 予防処置がコンパイラに取られてしかるべきじゃあないのかね?
まあ、お前らみたいな厨房が増えてきたから、警告ぐらい出してもいいかもね。
でも、コンパイラだけでもどうしようもないケースがあることは覚えておいた
方が良いぞ。
0745デフォルトの名無しさんNGNG
>>732
ししょー、規格を疑ったら
わたしはなにを頼りに生きていきばいいんでしょうか……。
0746デフォルトの名無しさんNGNG
>744
失格

>745
自分を信じろ
0747デフォルトの名無しさんNGNG
 ∧_∧   ∧_∧   ∧_∧   ∧_∧      ∧_∧
 ( ・∀・)   ( `ー´)  ( ´∀`)  ( ゚ ∀゚ )    ( ^∀^)
 (    つ┳∪━━∪━∪━━∪━∪━∪━┳⊂     つ
 | | |  ┃ 僕達を信じてプログラム    ┃ | | |
 (__)_) ┻━━━━━━━━━━━━━━┻ (__)_)
0748デフォルトの名無しさんNGNG
>>742
>>739の言うこともあらかた納得はできるけどね。
0749デフォルトの名無しさんNGNG
>規格を疑え。

いや、規格がすべて正しいのです。
規格がそうだと言えば、現実に存在するコンパイラの方が間違いなのです。
0750デフォルトの名無しさんNGNG
最新100レスの中にFreeBSDユーザーはいらっしゃいますか?
0751デフォルトの名無しさんNGNG
>>750
満載だと思われ(w
0752馬鹿だから教えてくださいNGNG
x^2-3x+1=0を解くプログラムを教えてください
0753デフォルトの名無しさんNGNG
>>744
コンパイラだけでどうしようもないケース ってのも良く考えれば酷い話だよな。
if文のカッコの中の代入にWarningを出すよりも前にやることいっぱいあるよな。
つーかif文の中で変数に代入して何が悪いんだよコンチクショー
0754デフォルトの名無しさんNGNG
赤い帽子の糞犬ならいますが…
0755デフォルトの名無しさんNGNG
>>736
意味わかんねーぞ
xと2の排他的論理和はともかく
3xなんてサフィックスはないし
左辺値を示さない式に代入はおかしいし
セミコロンも抜けてんじゃねーかよ

聞きたいことをちゃんと表現してみろよ
これじゃいかにも筋悪そうだぜ、お前
0756デフォルトの名無しさんNGNG
最新100レスの中に相対論否定論者はいらっしゃいますか?
0757デフォルトの名無しさんNGNG
最新100レスの中に裁判好きはいらっしゃいますか?
0758デフォルトの名無しさんNGNG
二次方程式って必ず解けるんだっけ? 虚数って出てきたっけ?
一般解の方程式もう忘れちゃったよ・・・緑チャートどこしまったかなぁ
0759馬鹿だから教えてくださいNGNG
3 x=x^2+1
x=1/3(x^2+1)
x0=1.00

すいません。聞きたいこともやっぱ理解してないかもしれません。
0760デフォルトの名無しさんNGNG
Cも捨てたもんじゃないね
0761デフォルトの名無しさんNGNG
b = b++;
は「未定義な動作」ですから、何が起きても規格では許されます。

コンパイラが警告を発しても発しなくても
コンパイルが正常に終了してもしなくても
リンカが正常に終了してもしなくても
できあがったファイルが何らかの動作をしてもしなくても
規格通りです。
0762デフォルトの名無しさんNGNG
>>753
>つーかif文の中で変数に代入して何が悪いんだよコンチクショー

そーだねぇ。熟練者は = と == ってあんまし間違わないからねぇ。
それに初心者は警告を見ないという罠。
0763デフォルトの名無しさんNGNG
      ヽ ̄ ゙̄\    _____________________________
       \  ヽ \ /
         ヽ    ゙! < n = n++; でないとノーベル賞を取るのは難しい
          /      | \_____________________________
       /     ,.イ
      ∠___/ :|`ヽ.、
          ノ     '!   \-、
     _,.=''1      ヽ,   `'
      ヽ'" i|       |
         !       |
0764馬鹿だから教えてくださいNGNG
相対論否定論者?
0765デフォルトの名無しさんNGNG
>>759
・2次方程式の解き方
・Cの文法
別々に聞いたほうがよさそう
0766デフォルトの名無しさんNGNG
>>761
そーなの?
未定義のコードって、それを実行すれば結果は未定義だけど、
その部分が if とかで飛ばされたりして実行されない限り、何も起きないものだと思ってた。
0767デフォルトの名無しさんNGNG
>761
そんなコンパイラ誰も都川ねーよ
0768デフォルトの名無しさんNGNG
>>762ワラタ
0769我ら先生の理論を読め!NGNG
http://www.interq.or.jp/writer/knk/kyo/may25.html
0770デフォルトの名無しさんNGNG
>>766
正確には「未定義の動作」だからね。
動作させなければ関係ないはずだよね。
0771デフォルトの名無しさんNGNG
>>720-721
規格で言うところの「未定義」と「処理系依存(処理系定義)」は違う。

後者は処理系が定義してドキュメントしなければならない。定義通り動作しなければ
ならないから、ユーザはその処理系を使う限りにおいてその仕様に依存することが
できる。

前者はその必要がなく、contextやrace condition、最適化オプションなどによって
挙動が変わることも許されるし、極端なことを言えば一部の処理系やアーキテクチャで
コアを吐いたりCPUを停止したりする結果になるとしても規格上は関知しない。
0772デフォルトの名無しさんNGNG
>>771
ドキュメント化の必要がない、
というと「未規定」もあるよね。
0773デフォルトの名無しさんNGNG
> 一般的なコンパイラを4つほど試したが
> b=0;
> b=b++;
> は全て b=1 となった。ま、当然だな。
> 順当に考えれば b=b ; b++; という順に評価するってこと。
> 誰が作ったってこーなるよ。

b=0
b=b+++b+++b+++b;
はいくつっすか?
1になるやつとか3になるやつとかありますけど。
0774デフォルトの名無しさんNGNG
>>773
未規定の動作を含んでいて
bに格納される結果は未定義です
0775デフォルトの名無しさんNGNG
√2って存在しないのを証明しました。
0776デフォルトの名無しさんNGNG
nxt は未定義です。
0777デフォルトの名無しさんNGNG
>>710

> mkdir, rmdir をサポートすると言うことは、階層ディレクトリサポートすると
> 言うことだよね。だったら、chdir/getwd とかもいると思うし、link が無い
> なら、unlink なんてわけわかの名前じゃなくて素直に remove (もしくは

linkは忘れてました。
あとcreatも。
でもchdir/getwdは要らないと思います。(それはプロセスが持つものです。)
0778デフォルトの名無しさんNGNG
>773
そりゃそうだろ。
それは b=b++; の問題とは全く異質の問題で
基本構文解析の順番がコンパイラごとにどう規定されてるか違うんだから
動作が異なるのは十分ありえる話だ。
0779デフォルトの名無しさんNGNG
小泉純一郎が俺を嵌めようとしてCの規格を変えようとしている。
任天堂を訴えてやる
0780デフォルトの名無しさんNGNG
>>773
「未定義の動作」だからコアダンプしても不思議はない。

「誰がやってもこうなる」とか言ってる香具師はただの煽りか
鞭だから虫せい。
0781デフォルトの名無しさんNGNG
手元のperlでは

$ perl -e '$i = 0; $i = $i++; print "$i\n"'
0

となったりする。処理系の書き方なんていくらもある。

規格が定義していないことを利用してアグレッシブな最適化をすることも
できるし、そうしたときに i = i++; がレジスタやスタックを破壊して、
i == -11041 などとなるかもしれないという想像力は必要だろう。


なんてことをわざわざ書く漏れは言わせた厨房もろとも逝ってよし。
0782デフォルトの名無しさんNGNG
任天堂を訴えてやる 子どもを巻き込んでな
0783デフォルトの名無しさんNGNG
>>778
うわバカがきた!
0784デフォルトの名無しさんNGNG
>>778
いや、この場合の構文解析はコンパイラごとに違わないはずだぞ

b=((b++)+(b++)+(b++)+b);
これ以外の解釈をするコンパイラはバグだぜ
0785デフォルトの名無しさんNGNG
構文解析の順番(フ゜
0786デフォルトの名無しさんNGNG
お帰り馬鹿>>778
0787デフォルトの名無しさんNGNG
>>784
構文解析器の規格を疑え。
0788デフォルトの名無しさんNGNG
仕様も結構だがもっと実装を研究しろよ。

それよりも、規定されてない 言語仕様のほうに疑問を感じるけどな。
未定義 とか自慢げに言ってないでさっさと規定しろ ってオレは言いたい。
0789デフォルトの名無しさんNGNG
>>788
剥げどう
0790デフォルトの名無しさんNGNG
>>778
構文解析と出力コードとどう関係あるんだよ。

>>783
同意だが念のため言っておくと
括弧で実行順序を完全に規定できるわけじゃないよ。
0791デフォルトの名無しさんNGNG
>>788
だったら、参画しろよ。
こんなところでうだうだ言ってないでさ
0792デフォルトの名無しさんNGNG
規定しちゃったら最適化を制限するだろーが。
アーキテクチャによってどの結果が一番速いか違うときはどうする?
例えば、post incrementモードはあるがpre incrementモードがない
PDP-11, VAX-11, 68kファミリとか。
0793デフォルトの名無しさんNGNG
>>788
未定義や未規定を残してあるのは
粋な計らいって場合もあるぞ
例えば
a=b++ + c++;
のaとbとcへの副作用の順が決まってないのは
機械語のオートインクリメントに直訳させるためとかな
0794デフォルトの名無しさんNGNG
>>788
全部規定しやったらコードが遅くなったり大きくなったりするが...
スーパースカラーだとどうするんだよ。
0795デフォルトの名無しさんNGNG
体で覚えれ
0796歌丸NGNG
おまえらそろそろヴァカのデバッグはあきらめませんか。
カッコつかないし、何言い出すか未定義です。
0797783NGNG
>>790
そりゃそうだ*p++とかな
0798デフォルトの名無しさんNGNG
>>788
「実装を研究しろよ」と偉そうにのたまうのは勝手だがお前こそ実装を研究しろよ。
0799デフォルトの名無しさんNGNG
>>798
激しく同意
0800デフォルトの名無しさんNGNG
今、>>798が真理を突きました(・∀・)!

0801783もとい784NGNG
わりいレス番間違えた
0802デフォルトの名無しさんNGNG
>>797
いや、そうじゃなくて
例えば2項演算子のどのオペランドを先に評価するかは、
,と?:と&&と||以外は未規定。
0803デフォルトの名無しさんNGNG
b=b++なんて馬鹿な書き方をしなければ済む問題だろ。
0804デフォルトの名無しさんNGNG
>>797

いや、そうじゃなくて
例えば2項演算子のどのオペランドを先に評価するかは、
,と?:と&&と||以外は未規定。
0805784NGNG
あ、そっちか
b=c()+d();
でcとdの実行順序が未規定ってことか
0806783=802=804NGNG
う、二重カキコしちゃった。スマソ
0807デフォルトの名無しさんNGNG
UNIX板のおにいさん(おじさん)達こわーい(w
0808784NGNG
>>806どした?
0809デフォルトの名無しさんNGNG
>>807
誤爆か?
0810デフォルトの名無しさんNGNG
>>809
http://pc.2ch.net/test/read.cgi/unix/1022165761/
0811784NGNG
>>803ま、それにつきるわな
0812デフォルトの名無しさんNGNG
>>810
・・・・・・・。ネタ臭いと思ったら・・・・・

>>713
死ね!
0813デフォルトの名無しさんNGNG
今、板間を越えた交流が始まる。
0814デフォルトの名無しさんNGNG
sequence pointっていう言い方がもろにsuperscalerを意識した
言い方だよね。もし順序を全部規定して演算子ごとにsequence
pointを作るとしたら、非常に逐次的なコードになるだろう。
最近のCPUだとせっかく4つとか6つとか演算器があるのに1度に
1つずつしか使えなくなる。しかも、逐次的にするにはわざわざ
そのための命令を演算命令の間にたくさん挟まなければいけない。

プログラムによるが、たいていのプログラムで性能は確実に半
分以下、下手したら2〜3割に落ちると思う。
0815784NGNG
>>812
そりゃねーだろ
おめーだって幽霊じゃあんめえ
0816デフォルトの名無しさんNGNG
未定義の動作について何度説明しても別にかまわないと思う。
実際に誤解してるアフォは多いんだから、その価値はあるよ。
0817784NGNG
>>816禿同
0818デフォルトの名無しさんNGNG
>>816
fflush(stdin)を堂々と正当な方法だと説明しているサイト多いね。
0819[email protected]NGNG

「高性能ビデオスタビライザー」です↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA

店頭販売価格は、13900 円なんですが、
今回だけ、破格の 7700 円に設定して
おります。

購入希望の方は、名前の所にも書いて
ある、[email protected] 迄、
メールを下さい。

不安な方は、落札をして頂いても
構いません。
0820デフォルトの名無しさんNGNG
(゚∀゚)盛り下がった?
0821デフォルトの名無しさんNGNG
もうちょっと盛り下げてくれると助かる。このスレ速すぎて追うのが大変。
0822デフォルトの名無しさんNGNG
blueBacksのC言語の本、イィとおもう?
0823デフォルトの名無しさんNGNG
なんかつまんなくなったな
教えて君たちが一斉に帰っちまったか
0824デフォルトの名無しさんNGNG
関連スレ
http://pc.2ch.net/test/read.cgi/tech/1014640220/l50
0825デフォルトの名無しさんNGNG
「規格を疑え」って言ってたやつはネタじゃなくてマジだったと思うな。
実は片岡だったんじゃないか?
0826デフォルトの名無しさんNGNG
質問です。
main()
{
 char c;
 while((c = getchar()) != EOF))
  putchar(c ^ 0xFF);
}
というコードだと途中で入力の途中にEOFがあると止まってしまいますよね。
バイナリファイルを入力させたいときなどはどうすればよいのでしょうか?
0827デフォルトの名無しさんNGNG
規格を疑うのも一理あるんじゃないか。
なんでコンパイラによって扱いが違うのか不思議に思う事がある。
0828デフォルトの名無しさんNGNG
>>826
EOFはバイナリファイルの"中"に入ることはありえない
0829デフォルトの名無しさんNGNG
× char c;
○ int c;

入力の途中にEOFは無い。
0830デフォルトの名無しさんNGNG
>>826
int c; にしなさい。
んで、途中に EOF があることはない。
なぜなら getchar() の戻り値は int 型であり、0〜255 または EOF のどれかで、全部で257通りあるから(charが処理系依存つう話は突っ込まないで頂戴)。
EOF は一般的には -1 になってたりする。
0831デフォルトの名無しさんNGNG
>>826
getcharの戻り値はintだバカ
0832デフォルトの名無しさんNGNG
>826
EOFの定義をヘッダを漁って見てみるといいと思うよ
0833784NGNG
>>827例えば?
0834デフォルトの名無しさんNGNG
>>830
charは処理系依存しないよバカ
常に1byteなんだよ
……あ、signed/unsignedは依存するかも……
0835デフォルトの名無しさんNGNG
>>834
charは1バイトだが、1バイトが8ビットっつう定義はない。
0836デフォルトの名無しさんNGNG
>b=0
>b=b+++b+++b+++b;
>はいくつっすか?
>1になるやつとか3になるやつとかありますけど

例えばこんなとこ
0837デフォルトの名無しさんNGNG
>834
おいおい・・・charが常に1バイトなんて、誰が決めたんだ?
お前らの好きな規格をもって ここに示してみろ。
このスカポンタンが!
0838784NGNG
>>834
バイトマシンじゃない機種ではどうなってる?
0839デフォルトの名無しさんNGNG
>>834
ヲイヲイ
0840デフォルトの名無しさんNGNG
>>835
あ、そうかも。
すいません。勉強になりました。
0841デフォルトの名無しさんNGNG
バカバカ言ってる奴は普段馬鹿にされてるバカなのか
0842デフォルトの名無しさんNGNG
>>841
そうです。てへへ。
0843デフォルトの名無しさんNGNG
>>841
>>840
そのようだ
0844デフォルトの名無しさんNGNG
叩き甲斐のないヤツだ
0845デフォルトの名無しさんNGNG
getchar()の戻り値は、次の二つの意味が重畳されている。
・ファイル終端に達していたら EOF
・終端でなければファイルの内容から1バイト取り出した値

リファクタリングの知識がある今だと行儀のいい仕様とは言えないな。
0846784NGNG
>>836(=827?)

>>792 とか >>814 とか、見た?
0847仕様書無しさんNGNG
>>845
じゃぁどうすればいいの?
0848デフォルトの名無しさんNGNG
規格にはbyteが「アドレッシングの単位」で「characterを保持できる
だけの大きさがある記憶領域」だと書いてある。(8bitだなんてどこにも
書いていないが、characterを保持するには最低8bit以上必要。)

また「sizeof charは常に1」とも書いてある。

だから本当はbyteサイズ >= charサイズだが、余ったビットを使う方法なんて
ないし、余らせても処理系にメリットはないと思われるので、実質上
byteサイズ==charサイズと思っていて問題はない。
0849デフォルトの名無しさんNGNG
>>845
_Bool getchar(char *value)として、valueの指す先に値を書かせる?
0850デフォルトの名無しさんNGNG
>>847
もちろん、成功不成功の出力と、入力された値を返すインタフェースを別にするのさ
たとえば、関数の戻り値は成功不成功のtrue/falseだけにして、
入力値はポインタ1個渡してそこに入れてもらうようにするとか
0851デフォルトの名無しさんNGNG
getchar()は値を返すがEOFだと例外を投げる、って方が使いやすいな…
レジスタで受け取れるし。

(Javaでさえそうはしてないが。)
0852デフォルトの名無しさんNGNG
Cの規格に例外ってあるの?
0853デフォルトの名無しさんNGNG
>>851
JavaのreadChar()はEOFExceptionを投げる。
0854デフォルトの名無しさんNGNG
>852
例外というか、穴だらけ。
使い物になると思わない方がいい。
0855784NGNG
>>851
setjmpっすか? volatile出てきますね
0856851NGNG
>>852
ないです。

>>853
そうだった。read()しか考えてなかった。
0857デフォルトの名無しさんNGNG
>>851
そんな貴方には C++ の basic_istream をどうぞ。exceptions でEOF例外を発するように出来ます。ここはCスレなので。
0858デフォルトの名無しさんNGNG
errnoでエラーを示すことにしてみるとか・・・
0859仕様書無しさん847NGNG
例外使うなら、isEofも必要じゃない?
(注)Iteratorはそれで遅いなんて言われている。
0860仕様書無しさん847NGNG
うーん、Cでも、eof, select 使うと遅いね。
0861デフォルトの名無しさんNGNG
>>854
フ゜ばっかじゃねーの
0862仕様書無しさん847NGNG
>>861
同士 (^^;;
0863784NGNG
feof

板違いはやめれ
0864デフォルトの名無しさんNGNG
例外違い
0865デフォルトの名無しさんNGNG
>849 の方式が素直だよね。

char c;
while ( getchar(&c) ) {
 cを処理
}
と書ける。
0866デフォルトの名無しさんNGNG
> 例外というか、穴だらけ
(w
0867デフォルトの名無しさんNGNG
#define eof()  feof(stdin)
0868デフォルトの名無しさんNGNG
>>858
do {
 c = getchar();
}while (! errno);
とか?
errnoって最近かなり不便だよね。
マルチスレッドを使うときはグローバル変数にできないので
変なマクロになっている。

>>859
isEofってのはPascal流だな。
例外とか使わないとしたらまっとうなアプローチだと思うけど、
while (! isEof(stdin)) {
 c = getchar();
}
は、実行効率で今の仕様に負けると思う。
0869784NGNG
>>854
>>852が言ってる例外はgotoだと思うぞ
0870デフォルトの名無しさんNGNG
>>865
でもcをレジスタに割り当てられなくなるよね。
マクロ展開しても速くならないんじゃないか?
0871knkNGNG
このスレは俺が乗っ取った。ともっちには渡さないよ。
0872784NGNG
>>870
えー速くなる?

jmp_buf j;
if(setjmp(j)==0){
register char c;
while(c=getchar(j)){
 cを処理
}
}
0873847NGNG
>>868
なるほど
MSVCみたいなコンパイラならバイナリは同一かと思われ。
0874784NGNG
あり、whileの判定しくってる...鬱だ
0875847NGNG
ワロタ
jmp_buf j;
if(setjmp(j)==0){
register char c;
while(1) {
c=getchar(j);
 cを処理
}
}
0876784NGNG
>>875おっしゃるとおり
0877デフォルトの名無しさんNGNG
SJISの漢字は混ざった文字列で改行'\n'を見つけるコードを書きたいのですが、
マルチバイト文字列関数の_mbsstr()を使えば、どんな場合でも問題なく
見つけてくれるのでしょうか?

EUCの文字列を処理するときでもOKですか?
どこかにいい説明ページがあればURLお願いします。
0878デフォルトの名無しさんNGNG
>>877
\nだったら漢字考慮せずとも大丈夫っしょ
0879デフォルトの名無しさんNGNG
>>875
jmpbuf渡さなきゃダメかな? ま、いいけど。
マクロ展開すると
c = (--*(p)->cnt > = 0 ? *(p)->ptr++ & 0377: fillbuf(p, j));
みたいになるよね。jはたいてい使わないからけっこう速くなると思うけど。
0880877NGNG
>>878
'\n'は2バイト目にも出てこないんですね。
ご指摘ありがとうございました。

http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/w/whatKanji.html
>シフトJISコードは第1バイトとして 0x81 - 0x9f までと 0xe0 - 0xfc まで、
>第2バイトとして 0x40 - 0xfc まで(0x7fを除く)を使う。
>このため、シフトJISは上記の半角コードと混在できる。
>しかし、制御文字として使われる \(バックスラッシュまたは円記号)などが
>第2バイトの領域に入っているために問題が生じることがある。
>
>EUCコードは第1、第2バイトとも 0xa1 - 0xfe までであるが
0881847NGNG
>>879
そのままで(・∀・)イイ!!という事でしょうか。
0882784NGNG
>>879
ああ、マクロ展開って言ってたっけ
そんならそうかも
0883784NGNG
>>879
ところでjmp_buf渡さない手って?
0884デフォルトの名無しさんNGNG
>>883
例えば名前を固定にするとか、スタックにするとか。

スタックってのは、setjmp(&j)じゃなくて
push_ioerr_jmpbuf(&j)みたいにする。使うときは
TRY〜CATCHみたいなマクロにすればそれほど面倒はない
んじゃないかな。
0885デフォルトの名無しさんNGNG
今でもgetcharはマクロになってるのかな?
規格だと「関数としてリンクできないといけない。
でも同じ名前のマクロを用意しても良い。」となってるけど。
0886784NGNG
>>884
スタックを2本にするってこと?
0887デフォルトの名無しさんNGNG
C言語の中で、UNIXコマンド使うにはどうすればいいんでしょう?
0888デフォルトの名無しさんNGNG
>>887
system()
0889784NGNG
言いっぱなしで悪いが急用ができた
失礼する
0890デフォルトの名無しさんNGNG
>>888
どうもありがとうございますた。
system("コマンド");
ですね。
0891デフォルトの名無しさんNGNG
エンターキーを押すまで、入力待ち状態で
エンターキーを押したら次の処理に進むようにしようと思います。
変数を使わずに実現するにはどうすればいいでしょうか?

scanf; じゃなにも起こらないようです。
0892デフォルトの名無しさんNGNG
>>891
scanf;じゃscanf関数の呼び出しすらしない罠
0893デフォルトの名無しさんNGNG
while(getc != 0x0A);
0894デフォルトの名無しさんNGNG
while(getchar() != 0x0A);
0895デフォルトの名無しさんNGNG
普通にscnaf("%s",dummy);
0896デフォルトの名無しさんNGNG
"変数を使わずに"だそうだが?
0897デフォルトの名無しさんNGNG
>>896
system("pause > nul");

DOS限定。
0898デフォルトの名無しさんNGNG
Makefileで、ビルトインルールを使わせないようにしたいんですけどどうすればいいでしょうか?

.c.o:
  $(CC) $(OPTS) -S $<
  $(CC) $(OPTS) -o $<
ってやりたいんですけどビルトインルールに cc -o $< がある(?)ので
余計なコトをされてしまいます。
0899デフォルトの名無しさんNGNG
>>894でいいんじゃない。Macじゃなければ大体使えそうだし。
0900デフォルトの名無しさんNGNG
>>892
うぉ、本当だ。VC++ 6 でやると、警告は出るがコンパイルは通る。
(でも、何も生成されない。) 何で、エラーにしないんだ ?
scanf(); ならエラーにするくせに...。

>>891
何で、変数使っちゃダメなの ? >>895 みたいにそれとわかる変数使えば
いいと思うが
0901デフォルトの名無しさんNGNG
dummyのサイズをどうすればいいか分からない。
仮にEnter入力待ちの時にタッチタイピングの練習し始めたり、
物のせてスペースキーが押しっぱなしになって3日放置されたりしたらどうする?
0902デフォルトの名無しさんNGNG
>900
エラーじゃないからエラーにならない。
int a;
a;
これもエラーじゃない。
0903891NGNG
考えてくれた人どうもです。

>>900
>何で、変数使っちゃダメなの?

わざわざこの処理の為に変数用意するのはどうかな?
と思ったのです。

>>894さん
の方法でうまく行きました。ありがとうございました。
while(getchar()!=10);でもうまくいったみたいです。。。(decか、hexの違い!?)

0904デフォルトの名無しさんNGNG
>>900
int a;
a;
とか
main(int argc, char** argv)
{
argc; argv;
}
とか出来る
関数は関数ポインタの扱い。
0905デフォルトの名無しさんNGNG
>>901
0906デフォルトの名無しさんNGNG
scanfは絶対に必要な場合以外使わない。
絶対に必要な事は無いに等しい。
0907デフォルトの名無しさんNGNG
http://www.google.com/search?hl=ja&num=100&lr=lang_ja&q=scanf
0908891のつづきNGNG
ただですね、そのenter入力待ちの時に入力するするenterが、
その前の処理の入力で、”入力終了に使うenter" を間違えて読んでしまって
入力待ちにならないんです。

scanf("%s",string_data"); �@
while(getchar()!=0x0a);   �A
0909900NGNG
>>902, >>904
関数プロトタイプ知らんの ? だったら、何で scanf(); はエラーに
するのか説明しろよ。
0910デフォルトの名無しさんNGNG
900はアフォです。
0911デフォルトの名無しさんNGNG
>>909
激しく同意
0912デフォルトの名無しさんNGNG
>>909
関数ポインタって知ってますか?
0913904NGNG
>>909
煽られても困るんだが?
関数プロトタイプがあるからscanf()がエラーになる。
変数を単体で式として記述すると、何も起こらない
0914デフォルトの名無しさんNGNG
>>908
を回避するために、

scanf("%s",string_data"); �@
while(getchar()!=0x0a);   �A
while(getchar()!=0x0a);   �A
と、するのは邪道ですか? きれいなプログラム、すっきりしたプログラムという点
から見て意見求む!
0915デフォルトの名無しさんNGNG
>>914
scanf使わなければ解決。
0916デフォルトの名無しさんNGNG
>>915
ムムッ
0917デフォルトの名無しさんNGNG
むむむ
0918デフォルトの名無しさんNGNG
char string_data[1024], *pstr;
pstr = string_data;
while(*pstr++ != '\n')
 *pstr = (char)getchar();
while(getchar() != '\n');
0919デフォルトの名無しさんNGNG
char string_data[1024], *pstr;
pstr = string_data;
do{ *pstr = (char)getchar(); } while(*pstr++ != '\n');
*pstr = '\0';
while(getchar() != '\n');
0920900NGNG
>>913
あんたら、VC++ 6 のエラーメッセージ見た事ないのか ?
> 「関数呼び出しに引数リストがありません。」
俺が言いたいのは、関数呼び出しと認識してるんなら、エラーにしろよ。
と言うことだけだよ。
関数ポインタとか、変数を単体で式として記述 とか言うんなら、
なんで、
int (*a)();
a;
が警告にもならないか説明しろよ。
0921デフォルトの名無しさんNGNG
Makefile が変更されたら無条件にコンパイル全部やり直したいときは
どうすればいいですか?
全ファイルにMakefileを依存させるようにMakefile記述するのはダサいッスよね?
0922904NGNG
>>920
K&RなりISOなり仕様書読めよ
int (*a)();
a;
a は変数だろうが。
これは関数呼び出しとして認識してないよ
a という式だって言うの。
a()で関数呼び出しになるから、始めて引数がチェックされるんだって。
0923デフォルトの名無しさんNGNG
>920
なんでそれがエラーにならないかというと ; で区切られてるのは、実は全部 値 なんです。

a = 1;
↑この式は1です。

a;
↑この式も1です。

scanf;
↑この式は &scanf です。

scanf(&a);
↑この式は scanf()の戻り値です。
0924デフォルトの名無しさんNGNG
なんで4日でスレがなくなるんだか。。。
密かに祭りでもやってんの?
0925デフォルトの名無しさんNGNG
>>923
なんかわかりやす(・∀・)イ!!
3つ目 &scanf がどういう値なのかよくわからんが(w
0926デフォルトの名無しさんNGNG
アフォを無視せずに謝らせようとするからです。
0927デフォルトの名無しさんNGNG
>>924
そう、ただいま scanf(); 祭り実施CHU!
0928結論NGNG
こんなわかりにくい言語にしたやつが(・A・)イクナイ
0929デフォルトの名無しさんNGNG
>>900=928
0930デフォルトの名無しさんNGNG
>>900必死だな
0931928NGNG
>>929
違うって・・・マジで。
0932デフォルトの名無しさんNGNG
わかりにくいッて言うならPerlにも言えよ
0933デフォルトの名無しさんNGNG
>>950以降で最初に回答した人、次スレよろしこ。
0934デフォルトの名無しさんNGNG
void *func = scanf;
func("%s", buf);
0935928NGNG
>>932
perlは、精気表現がきついもんなぁ。
あとはCっぽいから、結局、Cがわかりにくい。
0936デフォルトの名無しさんNGNG
>>928
馴染め。

>>925
scanf(関数)のある場所。

この辺はアセンブリを知ってる人は有利なのかな?
0937900NGNG
>>922
> a は変数だろうが。
> これは関数呼び出しとして認識してないよ
> a という式だって言うの。
じゃあ、scanf; ってなんなんだよ。式じゃねーのか ?
0938デフォルトの名無しさんNGNG
>>937
scanf; != 式とは>>922は一言も書いてませんが?
0939デフォルトの名無しさんNGNG
>>937
;(セミコロン)が付いたら式かどうか疑ってみんさい。
そういう時はscanfは式なの?
ケコーンしちゃうの?

って聞くの。
0940デフォルトの名無しさんNGNG
>>934

?
↓
void (*func)(const char*, ...) = scanf;
func("%s", buf);
0941925NGNG
>>936
さんくすこ。
精進します。
でも、アセンブラはやらないでしょう。Cでおなかいっぱい
0942900NGNG
>>938-939
scanf; って言うのが...
1. 式って言うなら、int (*a)(); a; との違いはなんだ ?
2. 関数呼び出しだって言うなら、何でプロトタイプ宣言のエラーに
  しないんだ ?
3. どっちとも違うって言うなら、なんなんだ ?
って聞いてるだけだよ。>>922 は質問の意図はわかってるだろうから
余計なことはさまないでよね。
0943デフォルトの名無しさんNGNG
関数呼び出しでは無い事は確か
0944デフォルトの名無しさんNGNG
うむむ祭りに乗り遅れた(´・ω・`)しょぼーん
0945デフォルトの名無しさんNGNG
>>944
ガンバ♪
0946891NGNG
>>943
関数呼び出しかと思って、あんな事>>891書いてたよ。
何にも起こらなかったけどね。
0947デフォルトの名無しさんNGNG
>>946
初心者は(#・∀・)カエレ!!
0948デフォルトの名無しさんNGNG
互換性のある型!!
0949デフォルトの名無しさんNGNG
(´・ω・`)しょぼーん

0950デフォルトの名無しさんNGNG
>>942

;が付いたら文。
でscanfは式。
>>936
に書いてあるとおり、scanfのアドレスを返す。
printf("%p\n",scanf);とかやってみ。

> int (*a)(); a;
これやるとBCC32では警告が出るんですが…
こうやって宣言した関数ポインタかscanfとかの関数名に()がつくと関数の呼び出しとなる。
a;はアドレスを返すだけ。でも使ってないだけ。
0951950NGNG
次スレ立てます。
0952デフォルトの名無しさんNGNG
scanf;
は正しい式だから、ANSI準拠に従う以上、エラーにしちゃいけない。
警告を出すかどうかは処理系実装者の任意だけど。
何を意味するかというと、scanf関数の関数ポインタを取得して、それを何もしない。
呼び出すわけでもなく。
ただ単に式の値は捨てられる。
って感じ?
0953デフォルトの名無しさんNGNG
配列のポインタ配列の識別子にアドレス演算子がいらないように関数にも要らない!
互換性のある型!!

int ia[10];
int (*iap)[10] = ia;//&iaでもよい無くてもよい

コンパーチブル!!
0954950NGNG
駄目だった。スレ立てすぎらしい。

代わりに立てて >>957
0955デフォルトの名無しさんNGNG
>>953
> int ia[10];
> int (*iap)[10] = ia;//&iaでもよい無くてもよい
アドレスは同じでも型は同じか?
0956デフォルトの名無しさんNGNG
printf("%p", scanf);
0957900NGNG
>>943, >>950, >>952
だから...
> 1. 式って言うなら、int (*a)(); a; との違いはなんだ ?
に誰か、答えられるの ? (特に、>>910-912 みたいに偉そうに書いてた奴、
どうよ。単なる煽り屋さんか ?)

>>950
>> int (*a)(); a;
> これやるとBCC32では警告が出るんですが…
なんてでてます ? また、int a; a; でもでるのかな ?
(処理系の名前忘れたけど、"無効な式です" とか言う警告が出る奴はある。)
0958デフォルトの名無しさんNGNG
>>957
次スレよろしこ。
0959デフォルトの名無しさんNGNG
次スレ1もvoidで頼む。
0960デフォルトの名無しさんNGNG
今話題になっているSHARPポケコンPC-G850内蔵のC言語ってどうなんでしょう。
0961デフォルトの名無しさんNGNG
900が何を騒いでいるのかわからんのだけど。

int scanf(const char *, ...);
というプロトタイプがあるとき、

scanf; はエラーじゃない。
int (*)(const char *,...)型の式の後ろに;をつけた文になる。

scanf(); はエラーだ。
int scanf(const char *,...)を、矛盾する引数で呼び出したから。
                       ^^^^^^^^^^^^^^
0962デフォルトの名無しさんNGNG
int (*a)(int);

a; // エラーじゃない
a(); // エラー
a(1); // エラーじゃない
0963904NGNG
>>957
煽りやさんはあんただろ。
> 1. 式って言うなら、int (*a)(); a; との違いはなんだ ?
a()と int(*a)();a;の違い?
前者は引数なし関数aの呼び出し
後者は引数なし関数ポインタaの宣言と式aのみから成り立った文。
0964デフォルトの名無しさんNGNG
ちゃんとひよこ本のリンクはれや、ゴルァ!
0965デフォルトの名無しさんNGNG
あー、ひょっとして900は、他の一部の言語(Modula-2とかRubyとか)
みたいに、
scanf;
も
scanf();
も同じように引数0個の関数呼び出しになると思ってたのかな?

Cだと、()を付けない限り関数呼び出しは起きないんだよ。
0966デフォルトの名無しさんNGNG
誰かスレ立てろ
俺は立てすぎらしい
0967ダックソン�W世NGNG
GNU + Cygnus + Windows = Cygwin (・∀・)イイ!
0968900NGNG
>>963
げっ、こいつほんとにわかってなかったのかよ。>>942 の「>>922 は
質問の意図はわかってるだろうから」て言うのは、取り消しだ。

誰が、「a()と int(*a)();a;の違い?」を問題にしてんだよ。
scanf; と (int (*a)(); としたあとの) a; の違いを示せって言ってんの
わからんか、それとも 1000 も近いから単なる時間稼ぎか ?
0969デフォルトの名無しさんNGNG
俺が立ててみます。ちょいお待ちを。
0970904NGNG
>>968
あんた偉そうだな、いちいち過去ログ見るのも億劫だから適当に書いただけだ。
それならほとんど違いはないよ、違いは関数のアドレスか、関数ポインタの値か、それだけ。

0971969NGNG
俺もスレ立てすぎでした・・・。
誰か頼む。
テンプレ

-------------------------------------------------------
C言語なら、俺に聞け! <22>

日下部陽一


漏れは38才、21年間プログラムを一生懸命作ってきた。
いろいろな言語を極めたが、一番手になじむのはCだった。
Cのことならぜんてわかるから、疑問な点があったら漏れに聞け。

だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。

・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART3
http://pc.2ch.net/test/read.cgi/tech/1016722820/

・前スレ
<21> http://pc.2ch.net/test/read.cgi/tech/1022045622/

他のリンクは>>2-10を見な。
0972デフォルトの名無しさんNGNG
> うぉ、本当だ。VC++ 6 でやると、警告は出るがコンパイルは通る。
> (でも、何も生成されない。) 何で、エラーにしないんだ ?
> scanf(); ならエラーにするくせに...。

この発言を馬鹿にされて逆ギレしてただけじゃなかったの?
0973デフォルトの名無しさんNGNG
900は「scanf();はエラーになるのにscanf;やa();がなぜ
エラーでないのかワカリマシェン。誰か教えて〜(泣」
って言ってるんじゃないの?

答は出てるんだが。
0974デフォルトの名無しさんNGNG
かぶせられた
0975デフォルトの名無しさんNGNG
>>968
>scanf; と (int (*a)(); としたあとの) a; の違いを示せって言ってんの

へ?何が違うの?
0976950NGNG
警告 W8019 a.c 5: コードは効果を持たない(関数 main )
と出る。

>>968
scanf; は文だって…
例えば
int (*a)(const char *, ...);
a = scanf;
として
a(どうのこうの);
とすればscanfとして動く。
a = printf;
と、途中で変えることもできる。

ようは
int a[256];
と
int *a;
との違いみたいなもん。
0977デフォルトの名無しさんNGNG
問題がすりかわってる悪寒・・・
0978日下部陽一NGNG
http://pc.2ch.net/test/read.cgi/tech/1022402165/
新スレです。移動願います
0979サンプルNGNG
#include <stdio.h>

int main(){
int (*a)();
int hage;
a = scanf;
a("%d",&hage);
a = printf;
a("%d\n",hage);

scanf = printf; /*エラーだよ*/
return 0;
}
こんなもんで。
あとは邪推してくれ。
0980デフォルトの名無しさんNGNG
前スレ900は何を教えて欲しいのかもう一度説明するべきだと思うな。
俺は「scanf;が関数呼び出しだと思っていた」に一票だが。
0981デフォルトの名無しさんNGNG
>>980
単なる()の付け忘れだろ。何をそんなに熱くなってるんだか・・・。

しかし、scanf;でコンパイル通るのか。
関数ポインタがごろんと転がっているだけの感じだがな。
0x44548883;
とかいう感じで。
0982デフォルトの名無しさんNGNG
前スレ900?
0983デフォルトの名無しさんNGNG
熱いのは900れす
0984デフォルトの名無しさんNGNG
>>979
int (*a)(cont char *,...);じゃなくていいの?
0985980NGNG
新スレに書いたつもりが誤爆しました。
http://pc.2ch.net/test/read.cgi/tech/1022402165/10
に書き直した。
0986950NGNG
>>977
・・・正解!

まあ scanf; a; ってのはたいした違いは無いよね。
1; と 2; の違いを言えってなもんだし。
むしろ
printf("hoge\n");
a = 3;
とかとも違いが無い(printfもintを返すし、代入式も値がある)。
つまり値が返されても値を受け取らなかったらそれは無視されるってこと。

俺は疲れた。
アセンブリ勉強してくれ。
pascalはやらないでくれ。
0987デフォルトの名無しさんNGNG
あれは900宛てじゃ
0988デフォルトの名無しさんNGNG
      ,, ,=、  ,, , =、
     ff | }!、,、〃 / ″このスレ怖いー!!
      ,リ/ .ノ*´jコ`)'〃
    {{ { ′   v' 《
     ヾ.\.   \ヾ
     _,,二、》   ;  \. 三,_
  (( ゙ー=、`″〃 \. \-‐' ,))
        ゙ー=″     ゙' 一'
0989デフォルトの名無しさんNGNG
>>984
int (*a)();
という宣言なら、どんな実引数で呼び出しても文法上はOK。

ただしこの宣言だと、可変長引数のプロトタイプ宣言をされた
関数は呼び出せない。(呼び出すと未定義の動作になる。)
0990デフォルトの名無しさんNGNG
とある質問だけで、100レスもつくとは。。。。
(((( ;゚Д゚))))ガクガクブルブル
0991デフォルトの名無しさんNGNG
>>990
おいおい、NULLの話なんかいくつレスが付いたと思ってるんだ?
0992900NGNG
>>973
> 900は「scanf();はエラーになるのにscanf;やa();がなぜ
> エラーでないのかワカリマシェン。誰か教えて〜(泣」
> って言ってるんじゃないの?
バカ。>>920 見ろ。俺が言いたいのは、scanf; が警告出るのに、a; が警告
でないのは、何でだ。ってことだ。(要は、VC は (この点に関しては) バカ
だと言ってるだけだよ。)

いいかげん、scanf(); と scanf; の違いを偉そうに語るのはやめてくれ。

>>976
なるほど、BCC はちゃんと警告出るわけだ。int a; a; でもてるんだろう
なァ...。
0993900NGNG
>>902, >>904
関数プロトタイプ知らんの ? だったら、何で scanf(); はエラーに
するのか説明しろよ。
0994デフォルトの名無しさんNGNG
>>920の時点で問題がすりかわってる罠
0995デフォルトの名無しさんNGNG
900さん熱いね。
よーし、パパどうでもいい話なのでこのままコソーリ1000狙ちゃうぞー
0996デフォルトの名無しさんNGNG
>>900もまだ反論あるなら
http://pc.2ch.net/test/read.cgi/tech/1022402165/に移動して下さい。
0997デフォルトの名無しさんNGNG
      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
0998デフォルトの名無しさんNGNG
ああ、そういうこと。VC++の警告メッセージが違ってると。ふーん。

あれ、ひょっとしてVC6って、
scanf;
でscanf();と同じコードが出るの?
だったらコンパイラのバグだね。
0999デフォルトの名無しさんNGNG
いまだ!
1000900NGNG
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。