C言語なら、俺に聞け! <19>
■ このスレッドは過去ログ倉庫に格納されています
0001ともっち
NGNG・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
・前スレ
<18> http://pc.2ch.net/test/read.cgi/tech/1020260813/l50
リンクは>>2-3
0002ともっち
NGNGいろいろな言語を極めたが、一番手になじむのはCだった。
Cのことならすべてわかるから、疑問な点があったら漏れに聞け。
だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。
・comp.lang.c Frequently Asked Questions
http://www.eskimo.com/~scs/C-faq/top.html
・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART3
http://pc.2ch.net/test/read.cgi/tech/1016722820/
C言語なら、俺に聞け!
<17> http://pc.2ch.net/test/read.cgi/tech/1019372139/l50
<18> http://pc.2ch.net/test/read.cgi/tech/1020260813/l50
0003ともっち
NGNGタダで使える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
0004デフォルトの名無しさん
NGNGともっちかよ!
0005デフォルトの名無しさん
NGNGともっち 38 かよ!
0006_
NGNG0007デフォルトの名無しさん
NGNGほとんど一緒。
天と地ほどの差しかない。
0008デフォルトの名無しさん
NGNG生ハムと生肉くらいの違いです
0009_
NGNGなんかコボルというのは前時代のプログラムで
こんなの学んでも食えんと言われてしまいました。
0010デフォルトの名無しさん
NGNGいやコボルだろ〜
CはUNIX記述用言語として生まれただけあってUNIXと制御系でよく使われる。
0011_
NGNGソフトを開発する仕事のことですか?
あと、10氏レスを見ると、UNIXを学ぶなら、先にC言語を学んだほうがいいみたいな
感じですね
0012デフォルトの名無しさん
NGNG一緒でいーんじゃねーの
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGエンジン制御とか埋め込み系じゃなか?
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGまじかよ!
Emacs Lispとか?
0017デフォルトの名無しさん
NGNG>ソフトを開発する仕事のことですか?
違う。
>制御系ってOSとかじゃないの?
それも違う。
厳密な定義がある訳じゃないけどある特定の機械を動かすためのプログラムをさして
制御系とか組み込みなどという。いま身の回りにある電化製品はほとんどICが入っていて
これを「制御」しているのもやはりプログラムなわけです。
Cはこの制御系でよく使われるのですがそれは言語仕様が小さくてプログラム全体が
小さくできるからです。
0018デフォルトの名無しさん
NGNG> 小さくてプログラム全体が小さくできるからです。
比較的低水準だからだとオモテタ
0019デフォルトの名無しさん
NGNG逝こう・・・
0020デフォルトの名無しさん
NGNG前橋さんの本でちょこっとかいてあったんですけど、「テレビのリモコンに使う組み込みチップ」
などは実務における、Cのよくある使い方の1つなのですか?
初心者丸出しの質問で申し訳ないですが。
0021デフォルトの名無しさん
NGNGだからプログラムを小さくできるということでは。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG巨大も部分による。
予約後が莫大=巨大というとらえ方もあるし
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGで、Cは出力されるコードが予想やすい言語仕様だから、小さく作りやすい、って事でないのかな?
あとライブラリが切り離せるとかもあるかな。
0026デフォルトの名無しさん
NGNGwhile(1){
if(PeekMessage(&msg,(HWND)NULL,0,0,PM_REMOVE)){
if(msg.message == WM_QUIT) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}else{
MainLoop();
}
}
というふうにループ構造を作って,
void StartInit()
{
printf("はじめ\n");
MainLoop=SecandInit;
}
というふうにしているのですが、危険でしょうか?
0027デフォルトの名無しさん
NGNGぜんぜん平気。
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNGガ━━Σ(゚д゚lll)━━ン
0030デフォルトの名無しさん
NGNGそう言う風にする危険性より、MainLoop と言うへんてこな変数名や
SecandInit とか言う Manoy に匹敵するスペルミスが、あなたの
プログラムを糞なものにする危険性のほうが高いでしょう。
0031デフォルトの名無しさん
NGNGガ━━Σ(゚д゚lll)━━ン
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄( ゚Д゚) ̄ ̄| < もう寝るよ。おやすみ。
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0032デフォルトの名無しさん
NGNGリアクションに ワラタ
0033デフォルトの名無しさん
NGNGスレの流れを読んでよ。制御系の話でしょ。
制御系と言うことはOS上で走らせるプログラムじゃないんだから汎用的なコンパイラの
最適化は無意味じゃん。
22にわかりやすく言えばOS(組み込みにOSも何も無いんだけど)に当たる部分も書かなきゃ
いけないということ。
0035デフォルトの名無しさん
NGNG> 制御系と言うことはOS上で走らせるプログラムじゃないんだから汎用的な
> コンパイラの最適化は無意味じゃん。
ハァ ?
> 組み込みにOSも何も無いんだけど
ハァ ? (まあ、ない奴もあるけどさ...。)
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG(つまりソースがある程度低レベルな方が)組み込みのデバッグが楽」
といいたいのかも知れん。
0039デフォルトの名無しさん
NGNG最適化のこと分かった気になって、ついつい2chでかたりはじめちゃう連中、
ほのぼの。
0040デフォルトの名無しさん
NGNG> つまりソースがある程度低レベル
お前のプログラムみたいだな。(藁)
0042デフォルトの名無しさん
NGNG2ch の古参でうれしいの ?
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG新 参 者 必 死 だ な ( 藁
0045デフォルトの名無しさん
NGNG004642(騙り
NGNG004735
NGNGそんな変な取り方すんなよ。
別に制御系と言ったって、特殊なコンパイラ使ってるわけじゃない。まあ、
CPU が普通と違うとか、いろんな領域のアドレスがちゃんと指定できる
(どっちかってーと、リンカの仕事もあるけど) 等の機能はあるけど、
最適化に関しては、普通のコンパイラと同じだよ。
「組込に OS も何も無いんだけど」に至っては、何年前の話だ ? って感じが
する。まあ、俺もテレビのリモコンなんかは手がけたこと無いから、そのクラス
だとそう言うこともあるとは思うが、ちょっと大き目の LBP とか、銀行の端末
とかなら最近は、OS 乗せるのが普通。特に、GUI と Net (.NET では無いぞ。
TCP/IP とかのことだよ。) と ファイルシステムを備えるものなら、まず OS は
載っている。ちなみに、携帯電話用の OS もあるのは、知ってるよね。
0048綾ナムナム(´人`)
NGNGここがどんな場所だかわかってるの?
0049デフォルトの名無しさん
NGNG>する。まあ、俺もテレビのリモコンなんかは手がけたこと無いから、そのクラス
>だとそう言うこともあるとは思うが、
いやまさにそういうレベルの話だったんだけど自分の周りの方が特殊だったんだ、、。
おはずかしぃ。
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG善意の方も悪意の方もネタの方もそのつもりでお願いします。
#いや善意にとってくれた人が自己弁護しているようにとられているから申し訳なくて、、。
0052デフォルトの名無しさん
NGNG仕事でブッちぎれたときはHello,world.
標準出力がある幸せ
0053デフォルトの名無しさん
NGNG005447
NGNGあらあら、言い訳にしか取れなかっただね。ごめんな、あんたにはちょっと
難しすぎたみたいね。
>>49
まあ、そう言う世界もあるらしいけど、制御系一般の話としてはちょっと
ね。ところで、OS 云々はいざ知らず、そう言うクラスの話だと、
「汎用的なコンパイラの最適化は無意味」なのか ? メモリーが少なそう
だからプログラムサイズを最優先にするとかのことを言ってるのか ?
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG相手の解釈がどうのこうの言わずに自分の表現を変えてみたら?
0057デフォルトの名無しさん
NGNG誰に言ってるんだ。誤爆か ?
0058デフォルトの名無しさん
NGNGstruct node {
int data;
struct node *next;
};
なる構造体を定義し、メモリを確保する際に、
struct node *p_new;
p_new=(struct node *)malloc(sizeof(struct node));
とC言語の本に載っています。しかしながら、別の本には、
p_new=(struct node *)malloc(sizeof(struct node)+4);
のように+4、あるいは+8などしているのですが、これは
なぜでしょうか?何のためでしょうか?教えていただけませんか?
いずれにしてもコンパイルは出来ますし、実行も正常にできます。
0059グリーン
NGNGWindowsプログラムで、エクスプローラでフォルダを選択して右クリックの[共有]で開く画面(フォルダ共有設定をする画面)を出したいのですが、方法はないものでしょうか。
0060デフォルトの名無しさん
NGNG一般的に言って足す必要なし。
+4してる本に特殊な状況であることについての説明があるんじゃないの?
もしなければその本がクソ。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGC言語じゃ無理だね
0063デフォルトの名無しさん
NGNGワラタ
0064デフォルトの名無しさん
NGNGメモリー屋さんの陰謀かもしれん。その本の題名と著者をさらせ。
と言うのは、おいといて...
struct node {
struct node *next;
int data[1];
}
って定義して (next と data の順序に注意)、
p_new = (struct node *)malloc(sizeof(struct node) + 4);
なら、p_new->data[0〜1] が使えて
p_new = (struct node *)malloc(sizeof(struct node) + 8);
なら、p_new->data[0〜2] が使える。と言う方法は昔あったけど...。
ちなみにこれは、sizeof(int) == 4 を仮定してるから、普通は...
p_new = (struct node *)malloc(
sizeof(struct node) + (n - 1) * sizeof(int));
と言うようにやる。
0065デフォルトの名無しさん
NGNGコンパイラ(visual C++.NET)は
どうしてレジストリいじくっちゃうんですか?
仕組みわかる人教えて
0066デフォルトの名無しさん
NGNGAPI。アフォか。
0067伊集院光
NGNGゲームWAVE見てね。
0068デフォルトの名無しさん
NGNG前まで見てたけどお前アフォなので見なくなった
0069デフォルトの名無しさん
NGNGむかしむかし小さなメモリブロックをアロケートすると4だか8だかの倍数の
大きさにメモリブロックのサイズを調整しようとした時にバグになる処理系があった。
もしかしたらそれのトラウマが感染してるんじゃなかろうか?
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNGTurboC++っていうコンパイラソフトで、
複数のファイルからなるプログラムをコンパイルする時はどうすればいいのでしょうか?
初心者なので優しく教えてね。よろしくお願いします。
0074デフォルトの名無しさん
NGNGtcc file1 file2 file3...
もしくはmakeを使う。
0075デフォルトの名無しさん
NGNGIDEからやりたいのなら、プロジェクトにコンパイルしたいファイルを追加する。
しかし、Turbo-C++のIDEのプロジェクトにはバグがあって、よく泣かされたな・・・・
(遠い目)
0076デフォルトの名無しさん
NGNGレスありがとうございます!
出来ればtcc file1 file2 file3...、メイクの使い方を詳しく教えてください。
たびたびすいません。
0077デフォルトの名無しさん
NGNG例えばfile1.cとfile2.cとfile3.objをコンパイルしたければ
tcc file1.c file2.c file3.obj
file1をオブジェクトファイルにコンパイルしたければ
tcc -o file1.c
makeはmakefileに次のような内容を編集する。
file.exe: file1.obj file2.obj file3.obj
0078デフォルトの名無しさん
NGNGスマソ。tccのオブジェクトファイル作成は
tcc -c
だったです。
0079デフォルトの名無しさん
NGNG何回やってもエラーが出ちゃいます(泣
tcc -c file1.c←あんまり意味がわかりません。。。すません。
根本的にどう繋げればいいか教えてくれると嬉しいです!
0080デフォルトの名無しさん
NGNGレスありがとうございます!
それって単純に複数のプログラムを開いてコンパイルのボタン押すだけのことですよね?
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNG0083sa
NGNG10 15
5 → 10
3 を 5
3
というふうにファイル(.txt)の先頭に書き込みしたいのですが、
fseekでストリームのファイルの位置をを先頭にもってきて書き込みすると、
15
5 と2行目が削除されてしまいます。
3
どうしたらうまくいくでしょうか?レス頂けるとありがたいです。
0084デフォルトの名無しさん
NGNG読み込んだ内容を戻してやったらだめなの?
0085デフォルトの名無しさん
NGNGいきなりファイルの上で挿入する手段は無い。
>>84のいうとおりメモリ上で挿入してからファイルに書くか、もう1つファイル使え。
0086デフォルトの名無しさん
NGNGVC6.0にてfopen()を発行するとerrnoが12(ENOMEM)でエラーになってしまいます。
また、この現象が起こるPC、起こらないPCがありまして、
エラーとなっていたPCでも電源を切って翌日になると成功し始めたりします。。。
対策方をご存知でしたらおしえてください。おねがいします。
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNGDLLかなんかがぶっ壊れてるか、マシンの日付が未来になってるとか。
新規インストールのOSと新規インストールのVCで動作確認しる!
再現性がないやつは特定が困難かもなぁ。
0089デフォルトの名無しさん
NGNGそれとも、ディスクが足りなくなってるとか、リソースが尽きてるとか、ファイルを開きすぎてるとか(閉じてないとか)、それ系のエラーかと。
0090デフォルトの名無しさん
NGNGコンパイル時ではなく、実行時のエラーです。
ちなみに、一度エラーが起こらなくなるともう大丈夫なようです。
0091デフォルトの名無しさん
NGNG同じスペックのマシンでも動く動かないがあるので、メモリは大丈夫なので、
リソースなのかなぁ。。。。?
0092デフォルトの名無しさん
NGNGCRTのソースのfopen関係のあたりでENOMEM検索してみれば
いいんでない?
0093デフォルトの名無しさん
NGNGfor(i=0;i<20;i++){
Num[i]=i;
}
を
for(i=0;i<10;i+=2){
Num[i]=i;
Num[i+1]=i+1;
}
としたほうが早くなるよ。
都かいてあったのですが,皆さん使ってますか?使ったほうがいい?
0094デフォルトの名無しさん
NGNGloop unrollingだな。
オプション付ければコンパイラがやってくれるよ。
0095デフォルトの名無しさん
NGNGこの程度はコンパイラが最適化するだろ。
バグを生みやすい意味不明のコーディングは逝ってよし!
0096デフォルトの名無しさん
NGNG実際の性能改善だと
そんな細かい小細工以前に
やる事がたくさんある。
0097デフォルトの名無しさん
NGNGchar *ReturnMoji(int i)
{
if(i==1)
return "1だよ"
if(i==2)
return "2だよ"
if(i==3)
return "3だよ"
}
というふうにして,char Text[256]; char mes[256];
Text=ReturnMoji(1);
sprintf(mes,"答えは%sです",Text);
DrawText(hdc,mes,-----);
としているのですが,%sの部分が変な文字で表されます。
どうしたらいいでしょうか?
0098デフォルトの名無しさん
NGNGそれでコンパイルが通るはずが無い。
ちゃんとコンパイル済のソースを賭。
0099デフォルトの名無しさん
NGNGその方法では無理なので
char *ReturnMoji(char *buf,int i)
{
〜
return *buf;
}
な感じで
0100デフォルトの名無しさん
NGNGchar Text[256];
Text=ReturnMoji(1);
constの配列にポインタは代入できまへん。
■ このスレッドは過去ログ倉庫に格納されています