C言語なら、俺に聞け! lt;50gt;
■ このスレッドは過去ログ倉庫に格納されています
0001鼻から悪魔でますた
NGNGむしろ質問する前に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/
00021
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
【ライセンスや機能などに問題あり】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
00031
NGNGC言語なら私に聞いてYO! 49
http://pc2.2ch.net/test/read.cgi/tech/1042646178/
祝49回 C言語ならあっしに聞け
http://pc2.2ch.net/test/read.cgi/tech/1042640474/
00041
NGNG48 http://pc3.2ch.net/tech/kako/1041/10411/1041127646.html
47 http://pc3.2ch.net/tech/kako/1040/10400/1040048202.html
46 http://pc3.2ch.net/tech/kako/1039/10393/1039328710.html
45 http://pc3.2ch.net/tech/kako/1038/10384/1038405432.html
44 http://pc3.2ch.net/tech/kako/1037/10377/1037796472.html
43 http://pc3.2ch.net/tech/kako/1037/10372/1037281411.html
43 http://pc3.2ch.net/tech/kako/1037/10371/1037134356.html
42 http://pc3.2ch.net/tech/kako/1037/10371/1037101156.html
41 http://pc3.2ch.net/tech/kako/1036/10368/1036876790.html
40 http://pc3.2ch.net/tech/kako/1036/10366/1036673739.html
39 http://pc3.2ch.net/tech/kako/1036/10364/1036409391.html
38 http://pc3.2ch.net/tech/kako/1035/10357/1035729526.html
37 http://pc3.2ch.net/tech/kako/1035/10356/1035623265.html
36 http://pc3.2ch.net/tech/kako/1035/10352/1035211039.html
35 http://pc3.2ch.net/tech/kako/1034/10343/1034337064.html
34 http://pc3.2ch.net/tech/kako/1033/10332/1033240509.html
33 http://pc3.2ch.net/tech/kako/1032/10326/1032606064.html
32 http://pc3.2ch.net/tech/kako/1031/10319/1031905402.html
31 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
30 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
29 http://pc3.2ch.net/tech/kako/1029/10296/1029605182.html
28 http://pc3.2ch.net/tech/kako/1028/10284/1028495798.html
27 http://pc3.2ch.net/tech/kako/1027/10271/1027160374.html
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html
00051
NGNG24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
23 http://pc.2ch.net/tech/kako/1023/10230/1023024817.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
00061
NGNGいつの間に、タイトルに< >使えなくなってたの
鬱
0007デフォルトの名無しさん
NGNG┗┳┳━ |_| ━━━┳┳┛
┃┃ / ヽ ┃┃
┏┻┻ |======| ━━┻┻┓
┗┳┳ ヽ__ _ ノ ━━┳┳┛
┃┃ (/) ┃┃
┃┃ (/) ┃┃
凸┃┃ (/) ┃┃凸
Ш┃┃ (/) ┃┃Ш
.|| ┃┃ (/) ┃┃.||
∧_∧ (/) ∧_∧ ∧ ∧
( ・∀・) (/)(´∀` ) (゚Д゚ ) Part50スレが他に立ちませんように
(つ つミ (/)(⊃⊂ ) ⊂ ⊃
|_|_|_�I(/)_|_|_|__| |
/////ノ,,,,,,ヽ ////|| |〜
//////////// |∪∪
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 奉 納 |
0008デフォルトの名無しさん
NGNG引き続きがむばります
0009デフォルトの名無しさん
NGNG乙カレー。
>>7
だよねー。
0010デフォルトの名無しさん
NGNGちゃんと正誤表は確かめたか?
0011デフォルトの名無しさん
NGNG今日確かめます
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG>>1乙
0014デフォルトの名無しさん
NGNGまた、どんな方法を利用しているのでしょうか?
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG引き続きがむばります
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG書くようになって気付いたことが。
一つのモジュール内で、やたらと深い&多数のループを回すプログラムを作るとき、
皆さんはループ用の変数をどう確保してるのか、ということです。
今のところint i, j, k, m, l ........てな感じでやってるんですが、なんか無駄が多いような・・・・・
それともこれが最善のやり方なんでしょうか。
0026デフォルトの名無しさん
NGNGfor (int j = 0;
for (int m = 0;
for (int l = 0;
0027デフォルトの名無しさん
NGNGどの辺が無駄なのか説明してくれないか?
0028デフォルトの名無しさん
NGNGグローバル変数で、i j k定義したよ。
//良い子は絶対真似しないこと。
0029デフォルトの名無しさん
NGNGできの悪いの自慢してどうする
0030デフォルトの名無しさん
NGNGちゃんと変数名考えて定義しろよ。
それぞれのループごとに意味あるんだろ?
0031デフォルトの名無しさん
NGNGfor (x.i=0; …
for (x.j=0; …
for (x.k=0; …
for (x.l=0; …
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGiだとインクリメンタルサーチが面倒だと言うのが一番の理由。
で、二重ループは大抵意味があるのでその意味を反映させる。
例えば、ix, iy など。
一つの関数で三重以上のループになることは余りないかな?
その場合も二重ループと同様。
ちなみに、>>31のような書き方をすると処理速度はがた落ちになる罠。
0035デフォルトの名無しさん
NGNG何のメリットがあるんだ ?
0036デフォルトの名無しさん
NGNGスタックポインタ相対アドレッシングのないCPUでは、自動変数より
グローバル変数の方が処理速度もメモリ効率も上がるだろうね。
0037デフォルトの名無しさん
NGNGそこまで考えてないと思われ。単なる手抜きかと。
多くのプロセッサでは、自動変数でループカウンタとして使うなら
レジスタに割り当てられる事が多いし。
グローバル変数は、コンパイラの最適化を阻害するケースが多い。
0038デフォルトの名無しさん
NGNG∧∧ ミ _ ドスッ
( ,,)┌─┴┴─┐
/ つ. 終 了 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
003938
NGNG0040デフォルトの名無しさん
NGNGLoadlibraryでロードしても関数を呼び出す方法しか見当たらないのですが
ヘッダもライブラリも無いので何とか動的にリンクしたいのですが
004140
NGNG環境はVC++でwin32です
0042デフォルトの名無しさん
NGNG果てしなくスレ違い
004340
NGNG0044デフォルトの名無しさん
NGNGそれは C++ だ!
>>28
int i;
void foo(int *array, int size) {
for(i = 0; i < size; ++i) {
printf("(%d\n", i);
bar(array[i], size);
printf("%d)\n", array[i]);
}
}
void bar(int elem, int size) {
for(i = size; i >= 2; --i) {
printf(" %d: %d\n", i, elem * i);
}
}
で、どうするよ。
>>29
行列とか扱ってるとどうしても深くなってしまうこともある。
>>25
でも、そういうのでなければ関数に分けたりして
ループを浅くするのがよい。
0045デフォルトの名無しさん
NGNG>>>26
>それは C++ だ!
C99だとできたりする。
0046デフォルトの名無しさん
NGNG配列の大きさの指定には変数は使え
ないとかsnprintfは標準関数じゃないとかいうと厨房扱いされるんだぜ。
まじうぜーーー!!
こんな時代遅れな言語は新たに規格を策定しなくてもよかったと思うんだけど。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNGC99が必要無いと思うのは勝手だけど
自分のミスを規格のせいにしてはアカンよ
0050デフォルトの名無しさん
NGNG「〜は使えない」→「C99ならデキルヨ!アナタシラナイノ?ぎゃは」
とかいう会話がまじうぜーーーのではないでしょうか?
005144
NGNGいやまあ、現状C99を実装してる処理系ってほとんどないだろうし、
移植性を考えたらC99の機能はまだ使うべきではないだろう。
いまだに
void afo(mona)
int mona;
{
/* */
}
式の関数を定義する場合もあるわけで。
ただ、Cの機能じゃないと言い切っちゃうのは、さすがに嘘だと思ったんでな(w
005248
NGNGいや、俺もC99の環境は持ってないし
多分、実装された環境を手に入れる事は暫く無いだろうなと思うし
たま〜に、ウザイと思う事はあるよ
でも、Cの規格にC99があるんだから、しょうがないじゃん
教える時や、間違えを指摘する時に
釣りでも無いのに、C99の規格の事を忘れてはアカンと思うのよ
まぁ、別に争う気は無いので、ここら辺で
0053デフォルトの名無しさん
NGNG区別するのが今の風潮じゃないか?
0054デフォルトの名無しさん
NGNG0055本当の44
NGNGあなた、>>45 じゃないですか?
えーと、C99 でできるのは知ってましたが、
>>53 のようなスタンスで書いちゃいました。
C99 なんていらんわ! とかいうつもりはないです。
というか、むしろ普及してくれた方が嬉しいです。
でも、実際の現在の普及率を考えると、
「あー、そういうことできるんだ」と思って試した人が
「できねーじゃんかYO!」となるのは必至なので
別物扱いしておいた方が妥当なんでは、と。
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG本当はC99スレを立てるのが良いと思うけど
ただでさえC関連スレは乱立してるから
反発の方が多そうなので現状維持で仕方ないかと…
0058デフォルトの名無しさん
NGNGもー立ってたりして。寂れてるけど。
http://pc2.2ch.net/test/read.cgi/tech/1044351696/l50
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGchar A1;
char A2[3];
int A3;
}A;
struct b{
char B1;
char B2[3];
int B3;
}B;
上記のように複数個の構造体があったとして
同じファイルにバイナリでライトしたいのですが
いかようにすればよろしいのでしょうか?
引数の記述方法がよくわからずコマっております。
御教授お願い致します。
0061デフォルトの名無しさん
NGNGストリームにfwriteで書き込める。
0062デフォルトの名無しさん
NGNG006360
NGNGアリガ�d
質問のしかたが悪かったでし、、、
構造体を丸ごとドカンと
書きこみたいのっす。
スイマソン
再度の御教授を〜
0064デフォルトの名無しさん
NGNGコンパイラは、gccっていうのをどうやって入手するか分かりません。
borlandのなんとか55っていうのはできたけど、.exeになったけど、
ひらくと、有効なwin32アプリケーションではないって言われて実行できません。
0065デフォルトの名無しさん
NGNGchar c;
int i;
} a;
int main()
{
fwrite(&a, sizeof(a), stdout);
return 0;
}
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGボーランドのなんとか55で
何をやったらそうなった?
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGすみません。できました。意味も無くobjふぁいるにilink32施してました。
でもなんでobjとか出てくるんですか?
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG行う関数を作りたいんですが、そんなことできますか?
0073デフォルトの名無しさん
NGNGvoid func(T& t)
{
//...
}
void func(wchar_t* pt)
{
//...
}
0074デフォルトの名無しさん
NGNGC++で関数の多重定義を使え。
もしくはvoid *で渡しておき、パラメータで切り替える。
void func(void *p, int i)
{
double d;
switch (i) {
case 1:
d = *(double *)p;
break;
]
}
0075デフォルトの名無しさん
NGNGスレ違い
0076デフォルトの名無しさん
NGNGこれ以外のうまい方法はないんでしょうか?
あとC++はできないんで、Cでお願いします・・
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGないから関数名に型名を付加しろ。
C++の関数のオーバーロードも内部では同じようなことをしている。
0080デフォルトの名無しさん
NGNG> これ以外のうまい方法はないんでしょうか?
0081デフォルトの名無しさん
NGNG別にC++の全ての機能を使わなければならないというわけじゃないでしょ。
C++の機能はオーバーロードだけ使って、あとはCの機能だけで書けばいいでしょ。
それとも、C++コンパイラがないとか??
0082デフォルトの名無しさん
NGNGvoid func(VTYPE vt, ...)
{
va_list arg;
va_start(arg, vt);
switch (vt)
{
case TYPE_CHAR.:
...
}
va_end(arg);
}
008376
NGNG色々試してみます
0084デフォルトの名無しさん
NGNG関数名の違う関数を用意しる。
#define で展開してもいいが。
0085デフォルトの名無しさん
NGNGint t;
t=*pa0;
*pa0=*pb0;
*pb0=t;
}
すいません、これって何をしているのですか?
0086デフォルトの名無しさん
NGNGswap()の名前そのままの通りの事をしている。
*pa0と*pb0が指すintの値を交換している。
0087デフォルトの名無しさん
NGNG関数の方は void にすべきだと思う。
0088デフォルトの名無しさん
NGNG関数の値は〜
の間違い(;´Д`)
008985
NGNGありがとうございました!
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGtypedef struct {
enum {INT, FLOAT} type;
union {
int i;
float f;
} v;
} giko_t;
void sii(giko_t g) {
switch (g.type) {
case INT:
:
0092デフォルトの名無しさん
NGNGそれを言うなら「関数の型は」ではないかと。
#っていうか、関数の値って何さ。void型には値はないっしょや。
0093デフォルトの名無しさん
NGNGそうとも言う。
スマンそれが正解。どっから方が出てきたのか自分でも不思議だったんだが
型と変換しようとしてミスったんだな…。
0094デフォルトの名無しさん
NGNG>>74みたいに使うのが普通の使い方なのでしょうか?
0095デフォルトの名無しさん
NGNGあくまでおれの考えだが、>>74みたいなコードはよくないと思う。
Cにはきっちりとunionという機能があるわけだから。
キャストで解決するのは最小限にすべきだとおれは考える。
んで、void *ってのは型はわからんがとにかくポインタを渡したいときに使う。
具体的にはmallocなんかいい例だ。mallocは言われたとおりの大きさのメモリを
確保してその先頭のポインタを返す関数だが、そのメモリの領域が何の型であるか
というのは事前に(malloc作成時に)は決められない。こういうときにvoid *を使う。
0096デフォルトの名無しさん
NGNGstr系関数と違って渡すポインタがchar *とは限らないから、void *にしておかないと
コンパイル時に警告が出てしまう。
0097デフォルトの名無しさん
NGNG>>74そのままではないが、不特定の型を取り扱う場合
unionだとdoubleに合わせることになって困ることも多い。
なので、>>74は(そう言う場合には)妥当解だと思う。
それにしても、
void と void * は別の語にするべきだったんじゃないかと思うんだけどね。
009895
NGNGうん、もちろん特別な場合というのももちろんあってそうする必然性があれば、
>>74のように書くのも一向に構わないと思ってる。ああいう風にしか書けない
場合もあったりするしね。
>void と void * は別の語にするべきだったんじゃないかと思うんだけどね。
staticもそうだな。可視性と記憶クラスの指定には別の語を割り当てるべきだった。
0099デフォルトの名無しさん
NGNG書く場所によって全然効果が違うじゃないか。
片方はinternにすべきだったと思う。
0100デフォルトの名無しさん
NGNGだからいいんじゃない?
0101デフォルトの名無しさん
NGNGstdio
atdlib
malloc
extern
strcomp
これらをなんて読んでますか?俺は↓のように読んでますが・・・
stdio.h → ストゥディオエイチ
stdlib.h → スタドリブエイチ
malloc → マロック
extern → イクスターン
strcomp → ストルコンプ
間違ってると恥ずかしいのであまり他の人には言えません。
■ このスレッドは過去ログ倉庫に格納されています