トップページ⇒tech
985コメント261KB

祝49回 C言語ならあっしに聞け

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
俺に答えられることなら何でも聞いとくれ
0002デフォルトの名無しさんNGNG
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しろ。
むしろ質問する前にWEBで検索するのが常識だ。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。

コンパイラを探しているなら >>2 を見よ。

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

C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
0003デフォルトの名無しさんNGNG
23 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1020/10207/1020756993.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html
0004デフォルトの名無しさんNGNG
46 http://pc3.2ch.net/test/read.cgi/tech/1039328710/
45 http://pc3.2ch.net/test/read.cgi/tech/1038405432/ (待機中)
44 http://pc3.2ch.net/test/read.cgi/tech/1037796472/ (待機中)
43 http://pc3.2ch.net/test/read.cgi/tech/1037281411/ (待機中)
43 http://pc3.2ch.net/test/read.cgi/tech/1037134356/ (待機中)
42 http://pc3.2ch.net/test/read.cgi/tech/1037101156/ (待機中)
41 http://pc3.2ch.net/test/read.cgi/tech/1036876790/ (待機中)
40 http://pc3.2ch.net/test/read.cgi/tech/1036673739/ (待機中)
39 http://pc3.2ch.net/test/read.cgi/tech/1036409391/ (待機中)
38 http://pc3.2ch.net/test/read.cgi/tech/1035729526/ (待機中)
37 http://pc3.2ch.net/test/read.cgi/tech/1035623265/ (待機中)
36 http://pc3.2ch.net/test/read.cgi/tech/1035211039/ (待機中)
35 http://pc3.2ch.net/test/read.cgi/tech/1034337064/ (待機中)
34 http://pc3.2ch.net/test/read.cgi/tech/1033240509/ (待機中)
33 http://pc3.2ch.net/test/read.cgi/tech/1032606064/ (待機中)
32 http://pc3.2ch.net/test/read.cgi/tech/1031905402/ (待機中)
31 http://pc3.2ch.net/test/read.cgi/tech/1031340950/ (待機中)
30 http://pc3.2ch.net/test/read.cgi/tech/1030786546/ (待機中)
29 http://pc3.2ch.net/test/read.cgi/tech/1029605182/ (待機中)
28 http://pc3.2ch.net/test/read.cgi/tech/1028495798/ (待機中)
27 http://pc3.2ch.net/test/read.cgi/tech/1027160374/ (待機中)
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html
25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
0005デフォルトの名無しさんNGNG
48 http://pc3.2ch.net/test/read.cgi/tech/996171508/
47 http://pc3.2ch.net/test/read.cgi/tech/1040048202/l50
0006デフォルトの名無しさんNGNG
スレッドの立て方が気持ち悪い…
>>2で「>>2 を見よ。」なんて書いてるし…
0007名無し募集中。。。NGNG
>>7
空域読め
0008デフォルトの名無しさんNGNG
>>8の言う通りだぞ
0009デフォルトの名無しさんNGNG
>>9は世界一の美少女
0010デフォルトの名無しさんNGNG
>>9
もう冬休みは終わっただろ
冬厨は学校に備えて寝ろ
0011デフォルトの名無しさんNGNG
>>10
お前もな
0012前スレの930NGNG
imlibっていまどこにあります?
いろんなサイト探したんですが、リンク切ればかりだったので。。
0013デフォルトの名無しさんNGNG
>>13
何故分かった!?
0014Cというより国語ですNGNG
K&R本のまえがき�Cで
ポインタのような大事な機能の説明は改善した。元の例題をさらに洗練させ、
いくつかの章で新しい例を追加してある。
(ここまでは分かる)
例えば、複雑な宣言の扱いは、宣言をことばに、
あるいはその逆に変化するプログラムで補った。

よく分からない・・・。
0015デフォルトの名無しさんNGNG
>>12
tarball でよければここに。
http://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/

RPM ならデストリビュータのサイトでさがせばあるはず。
その場合は開発版もインストールすること。

また、それぞれのフォーマットを表示するのに
libjpeg, libtiff, libpng, libgif などのライブラリを必要とする。

つか、いまどきの Linux ならどれも入ってない?
0016名無しさん@XEmacsNGNG
>>14
読み進めていけば分かるはず
0017デフォルトの名無しさんNGNG
>>14訳者がへぼいんだよ。
つーか英文科卒の訳者じゃしゃーねーよ。
0018デフォルトの名無しさんNGNG
>>17
ソースは?
0019デフォルトの名無しさんNGNG
恐らくコンピュータ畑の人でもないと思うんだけど
一体どんな経歴で




と思ったら略歴に東大の計算機センターって書いてあるな…
0020デフォルトの名無しさんNGNG
自分の文章読解力の無さを棚に上げて訳者批判とは......笑える(w
002112NGNG
いや、俺窓です。
で、インストールしてhttp://larse-gtk.hp.infoseek.co.jp/imlib/image.htmlここの
プログラムをコンパイルしてみたら、そもそもgdk_imlib.hが無いとか
言われたんで、むりやりPATH通ってるフォルダにそれをコピーしたら、
こんどは、リンク先のプログラムのgdk_imlib_get_colormapとか
gdk_imlib_...系のが全てundefinedと言われてしまうのですが、何が
まずいんですか?
0022デフォルトの名無しさんNGNG
量子コンピュータで C は使えますか?
0023デフォルトの名無しさんNGNG
200刷超えてもミスプリが直らないのは仕様ですか?
最近のは直ってるのかなぁ。
0024デフォルトの名無しさんNGNG
>>22アリエナイ
0025デフォルトの名無しさんNGNG
アリエール
002612NGNG
なんとかhttp://larse-gtk.hp.infoseek.co.jp/imlib/image.html
このプログラムをコンパイルさせたいのですが、何がいけないか分かりません。
imlibをインストールしたときは
% gzip -dc imlib-1.9.14.tar.gz | tar -xf -
% cd mlib-1.9.14
% env CFLAGS=-O2 ./configure
% make
# make install
としています。
ちなみにGTKはhttp://larse-gtk.hp.infoseek.co.jp/gtk/clist.html
こーゆのがきちんとできるので、問題ないと思います。
0027デフォルトの名無しさんNGNG
>>26
コンパイルするときのコマンドラインと出力教えれ
おそらくインクルードパスが足りないかと。
0028デフォルトの名無しさんNGNG
量子コンピュータでアセンブラ(ry
0029デフォルトの名無しさんNGNG
0 と 1 が表現できるなら大体何でもエミュレートできるだろ
003014NGNG
レスありがとうございます。
とりあえずもう少しだけ読む勧めていこうと思います。
0031デフォルトの名無しさんNGNG
あいまいな質問でも、答えてくれるかしら?うふっ?
0032デフォルトの名無しさんNGNG
>>31
まかせろヴぉけ
0033デフォルトの名無しさんNGNG
>>29
量子コンピュータは0と1を使わない。
1キュービットは、[0|1]こんなんだ。
0034デフォルトの名無しさんNGNG
え〜と。
age。
0035デフォルトの名無しさんNGNG
>>33
要するに2ビットですか?
0036デフォルトの名無しさんNGNG
最近よく聞く粒子コンピュータってナノテクですか?
0037デフォルトの名無しさんNGNG
りゅうこ。
0038デフォルトの名無しさんNGNG
>>35
いえ、キュービットはnビットの転送ができる確率分布です。
量子コンピュータは、2^nビットの演算を一度に出来ると期待されています。
少なくとも、整数を素数へ因数分解することがP時間でできることが証明されています。
ただし、それ以外のいわゆる「普通の計算」が可能かどうかは、実は不明です。
もちろん汎用化してC言語の環境が整えられることは間違いないでしょうが、
それは早くても2050年以降になることでしょう。
0039デフォルトの名無しさんNGNG
 タートルグラフィックスのプログラムなのですが、  
#include <stdio.h>               
#include <ctype.h>
#include <stdlib.h>
int x,y,dx,dy;
void put_mark(int x, int y)
{ move(x-2,y-2); cont(x+2,y+2);
move(x+2,y-2); cont(x-2,y+2);
move(x,y);
}
void forward(){
x=x+dx;
y=y+dy;
cont(x,y);
put_mark(x,y);
}
void left_turn(){
int tmp;
tmp=dx; dx=-dy; dy=tmp;
}
void right_turn(){
int tmp;
tmp=dx; dx=dy; dy=-tmp;
}
004039の続きNGNG

void analysis(ch)
{
switch(ch){
case 'F': forward(); break;
case 'R': right_turn(); break;
case 'L': left_turn(); break;
}
}
void turtle()
{
int ch;
while((ch=getchar())!=EOF){
if(isalpha(ch)) analysis(ch);
}
}
int main()
{
openpl();
space(-300,-300,300,300);
x=0;
y=0;
dx=0;
dy=10;
put_mark(x,y);
turtle();
closepl();
return 0;
}


004139の続きNGNG
これをいじって数字を入力したらそれたを数値として読み取り、次のコマンドを繰り返し実行するようにしたいのですが、
どこをどうすればいいですか?例えば、5Fと入力するとFFFFFとおなじ動きをする。さらに@と#でくくった部分を!で呼び出せるようにしたいんですが。
できるだけ初心者でもわかるような簡単なぷらぐらむでおねがいしたいんですが。for文とかwhileぶんとかif文みたいなので。
わがままでスマソ。
0042デフォルトの名無しさんNGNG
>>41
何が一番わがままかって、このスレは基本的にソース丸投げ禁止だぞ。
0043名無し@沢村NGNG
>量子コンピュータ

佐野量子が使うPCのこと
0044デフォルトの名無しさんNGNG
以下の2つのマクロに意味的に何か違いはありますか?
ただ好みの問題でしょうか?
do { ... } while(0) か { ... } だけかってことなんですが。

#define MACRO1() {\
 var1 = foo; \
 var2 = bar; \
}

#define MACRO2() \
 do { \
  var1 = foo; \
  var2 = bar; \
 } while (0)
0045デフォルトの名無しさんNGNG
>>39
同じ人?
http://pc3.2ch.net/test/read.cgi/tech/1041992392/254-258
0046デフォルトの名無しさんNGNG
>>44
散々出てくるFAQなんだがそれ。

if (condition)
 MACRO1();
else
 foo();

とやったときのことを考えてみれ。
0047デフォルトの名無しさんNGNG
C言語をはじめたばかりであまりわからないのですが、
ビットシフトはなんの役に立つのでしょうか?
0048デフォルトの名無しさんNGNG
>>47
C言語をもっと勉強してからもう一度来てください。
0049デフォルトの名無しさんNGNG
>>47
それはもちろん
ビット演算です。
005047NGNG
>>49
具体的にはどんなときでしょうか?
0051デフォルトの名無しさんNGNG
>>49
ビット演算はなんの役に立つのでしょうか?
0052デフォルトの名無しさんNGNG
2で割るとき。
//まあ、最適化があるから、ふつーは意識しないのだが。
0053デフォルトの名無しさんNGNG
フラグ、ラスタオペレーション、RGBマクロ、ウィンドウメッセージの分解、擬似乱数生成
などなどなどなど…
0054デフォルトの名無しさんNGNG
>>51
ハードウェアレベルで絶対に必要
0055_NGNG
教えてください

Cでsnprintfを自作することになりました。
参考になる資料とかありましたら教えてください。
フリーで使えるソースが何処かに落ちていると良いのですが。
0056デフォルトの名無しさんNGNG
>>55
vsnprintf 呼んじゃえ。

というのは冗談で。

というか、他人のソースに頼っちゃダメー。
そんなに難しくないはずだぜ。
面倒なだけで。
0057デフォルトの名無しさんNGNG
>>55 はマルチですので放置で。
0058デフォルトの名無しさんNGNG
>>55
あー、ちくしょー、マルチかよ。
0059デフォルトの名無しさんNGNG
9 名前:通りすがりのマルチ ◆CHii/cVw [sage] 投稿日:02/08/30 02:32 ID:o6nfHHaL
>>2
あんまり言いたくないが、人の二番煎じのネタでゲッターやって楽しいか?
舞みたいにオリジナリティ出したら。

【社会】少年チャンピオンで連載中の漫画家を中傷した元同級生男に550万円賠償命令
http://news2.2ch.net/test/read.cgi/newsplus/1030642180/
http://news2.2ch.net/newsplus/kako/1030/10306/1030642180.html
0060デフォルトの名無しさんNGNG
マルチっちゅーか、
No.49のスレが2つあるのが問題なのでは?
0061ageNGNG
age
0062デフォルトの名無しさんNGNG
double a[8];
a[0] = 0.0;
として、a[0]に0が入らないってどういうこと?
0063デフォルトの名無しさんNGNG
>>62
その後の何かの処理で書き換えた、とか。
0064デフォルトの名無しさんNGNG
>>62
それはあなたの脳みそが暴走しています。
0065デフォルトの名無しさんNGNG
>>63
書き換えてる箇所なんてないのに勝手に
変わるんです。
a[0]=0.0;とした直後は0.0が入っていて
ある行でいきなり変な値が入って・・・。
わけわからん

0066デフォルトの名無しさんNGNG
double b[8];
double a[8];
a[0] = 0.0;
printf("%f\n", a[0]);
b[8] = 1.0;
printf("%f\n", a[0]);
0067デフォルトの名無しさんNGNG
short x;
double[8];
double[0] = 0.0;
*((int*)&x) = 3.8;
0068デフォルトの名無しさんNGNG
int x[8];
double[8];
double[0] = 0.0;
x[8] = 3.8;
0069デフォルトの名無しさんNGNG
どっちだ?
0070デフォルトの名無しさんNGNG
double b[1], a[8];
b[1] = 1.1;
007165NGNG
for(i =0; i<8; i++){
a[i] = 0.0;
}
u_int XX, YY, U_bar, V_bar;
u_int *X, *Y, *u_bar, *v_bar;
X = &XX; Y = &YY; u_bar = &U_bar; v_bar = &V_bar;

X[0] = 355; Y[0] = 435;
X[1] = 747; Y[1] = 429;
X[2] = 747; Y[2] = 453;
X[3] = 355; Y[3] = 458;
X[4] = 97; Y[4] = 281;
X[5] = 889; Y[5] = 256;
X[6] = 882; Y[6] = 326;
X[7] = 10; Y[7] = 347;
というコードにしてて、
X = &XX; Y = &YY; u_bar = &U_bar; v_bar = &V_bar;
をなくすとa[]が書き換えられなくなりました。
どういうことなんでしょうか?
0072デフォルトの名無しさんNGNG
こりゃ重症だあ
007365NGNG
>>72
どこが悪いのでしょうか?
0074デフォルトの名無しさんNGNG
>>65
ネタだと思いたい・・・
C言語の配列は0から始まるって知ってた?

つまりどういうことかというと
int ary[16];
と宣言すると
ary[0] から ary[15] までの範囲が使えるの
007565NGNG
>>74
0から始めてると思うんですけど?
どういうこと?
0076デフォルトの名無しさんNGNG
>>62
printf("%lf",a[0]);
'l'を付けて出力して見て。
double で、宣言しているわけだから。
0077デフォルトの名無しさんNGNG
0から14で、15個
double a[8];なら
8個のdouble型を0から7番地まで確保。
0078デフォルトの名無しさんNGNG
>>75
XXとYYが配列で定義されてないから、X[0]〜X[7]とY[0]〜Y[7]も存在しません。
存在しない物に代入しようとすれば、結果は神のみぞ知る。
007974NGNG
>>65
じゃぁ >>66 は何かね?

double b[8];
(中略)
b[8] = 1.0;

b[7] までしか使えないんだってば
0〜7まで指折りながら数えてみろ
0080デフォルトの名無しさんNGNG

    ∧ ∧___  ダッコ♪
  /(*゚ー゚) /\
 /| ̄∪∪ ̄|\/
 |     |/
     ̄ ̄ ̄ ̄

0081デフォルトの名無しさんNGNG
正確にはX[0]とY[0]は存在するか。
X[1]〜X[7]とY[1]〜Y[7]はどうなってるか知らないよ。
0082デフォルトの名無しさんNGNG
>>80
おとなしくしてろ
0083デフォルトの名無しさんNGNG
??:「大人しくしていろ>>83」

83:「はい」
0084デフォルトの名無しさんNGNG
>>73
要するに、ポインタってのが何なのかが分かってないってこと。
まぁ、初心者が大抵陥る状況なわけだが。
0085デフォルトの名無しさんNGNG
>>65
ポインタと配列は違います
そこを中心に、もう一度、出直しましょう
0086デフォルトの名無しさんNGNG
>>76
printf("%lf", f);
printf("%f", f);

どちらも同じです。

printfのプロトタイプは
 int printf(const char *, ...);
なので、...の部分は型情報がありません。
したがって、Cの規約により、...の部分に置かれた
float型の値は格上げされ、doubleで渡されます。
0087デフォルトの名無しさんNGNG
ポインタが分からん奴はアホ。
0088デフォルトの名無しさんNGNG
ポインタを勉強する前にまず
パソコンを分解してマザーボードの仕組みを勉強しよう。
0089デフォルトの名無しさんNGNG
ディスプレイとキーボードとマウスとスピーカーとマイクと
ADSLモデムとプリンタと本体に分解しました。
0090デフォルトの名無しさんNGNG
>>89
ディスプレイとキーボードとマウスとスピーカーとマイクと
ADSLモデムとプリンタ
はパソコンではありません。
0091デフォルトの名無しさんNGNG
液晶とボディとスマートポインターと赤外線ポートとカメラと
モデムとUSBとその他中身に分解しました。
0092デフォルトの名無しさんNGNG
>>91
それでは仕組みの勉強を始めてください。
0093デフォルトの名無しさんNGNG
QAスレなのにツレねーな
ここは単発質問スレ防止・厨房吸収スレじゃねーのか?
答えたくないなら無視するだけで煽るなや
0094デフォルトの名無しさんNGNG
>>93
どこにQがある
0095デフォルトの名無しさんNGNG
>>94
>>2と>>46と>>93と>>94
0096 NGNG
>>1
またテンプレ貼らなかったのか・・・
いつになったら冬厨は消えてくれるんだ。
0097デフォルトの名無しさんNGNG
>>86
long double はどうなりますか?
0098デフォルトの名無しさんNGNG
>>96
>>1-6
0099デフォルトの名無しさんNGNG
>>97
gccなら"%Lf"
0100デフォルトの名無しさんNGNG
>>99
そういう意味じゃなくてlong doubleを...に渡すとどう型変換されるかということについて聞いているんだと思うけど。
0101デフォルトの名無しさんNGNG
>>100
VC++ のヘルプだと...

・実引数が float 型であると、関数呼び出しの前に double 型に拡張されます。
・符号付きまたは符号なしの char型、short 型、列挙型、ビットフィールドは、整数の上位変換によって符号付きまたは符号なしの int 型に変換されます。

しかないから、多分そのまま渡されるんだろ。
■ このスレッドは過去ログ倉庫に格納されています