NULLってなんですか?
#define NULL 0 ポインタとかメモリアドレスを聞かれてる時にはnullptrつかうとええよ
NULLってのはポインタ使わない限り使わないよね ポインタって基本的に使わない配列があるし
?
___ ━┓ / ― \ ┏┛ / (●) \ヽ ・ / (⌒ (●) / /  ̄ヽ__) / . /´ ___/ | \ | |
>>7 0 と書いて全然OKだから、私は NULL でさえ使わない。
0がぬるぽになるとか悪魔の仕様だよね 何で最初にキーワード導入しなかったんだろうと思ったが 当初ぬるぽのビット表現が0にならない環境とか無考慮で0を入れるようにしてて その時代との互換性とかなんだろうか
リテラルの0と 数値の0と アドレスの0と ポインタのNULL 違いが分かる人は好きにすればいいんじゃない? わからない人はきちんと使い分けましょう
>>8 >>9 配列の場合
a[i]=NULL;→エラー
ポインタの場合
int *a=NULL;→不エラー
リテラルの0だけ仲間はずれ感があるけど気のせいか
C/C++の仕様を洗練した低レベルでネイティブな言語てないの?
どういうところを洗練すればいいと思うの?
ぬるぽになるのはリテラルの0に限らないぞ 計算して0になれば複数のリテラルからなる式でも構わない
D言語は魔改造を繰り返した結果、 C++より遥かに邪悪な黒魔術が使えるようになってしまった
C#によく似た文法のCトランスレーターなら名前忘れたが有ったような
CとC++を同一に考える時点でアホ
アドレスの0とポインタのNULLは普通のパソコンなら同じ意味じゃないの
うん
Cなら普通のパソコンでビット表現が0にならない事はほとんどないと思われるが、 C++ならg++だとメンバ変数ポインタのNULLはのビット表現は0じゃなく-1
むしろどういう環境だと変わってくるの? CPUによるものなのかOSによるものなのか。 普通のパソコンでの当たり前が当たり前じゃない例を知らないから 想像しようとしてもよく分からないんだよね・・・
0番地が普通に使える環境だったらダメそう。なさそうだけど。
DOS時代は普通に使えてた気がする
Null Pointer Assignmentのメッセージを出すために使われてたね。
array[]= {15,78,98,15,98,85,17,35,42,15}; int main(void) { int *p_array=array; int sum= 0; while(p_array<array+10) { sum += *p_array++ ; printf("sum %d\n",sum); } printf("average %d\n",sum/10); return 0; } sum += *p_array++ ここが疑問です。 実際にはsumへの加算が終わってから、ポインタが移動しているようなのですが、 演算の優先順位( ++ > * > =)に従うとポインタが先に移動してから加算される気がしますが、そうなってはいません。 なぜこうなるのでしょうか。
ぬるぽが正しくつかわれているのを久々に見た
>>29 演算子の優先順位は ++ → * → += であるのは間違いない。
ここで *(p_array++) であるが、値は、副作用++が適用されるの前の値となる。
したがって ++ が先に適用されるにしても、加算に供される値は、++ 実行前のものとなる
キーワード「後置インクリメント」
>>29 ++と*は同じ優先度で、右から左の結合でしょ?
つまり、* ( p_array++ )
インクリメントを分離しろ
演算の優先順位と、インクリメントが行われるタイミングは別の問題
35 :
デフォルトの名無しさん :2013/03/10(日) 13:17:05.06
インクリメント使わずにa=a+1方式使えばいいだけの話じゃ……
・ポインタ演算は避けられるなら避けるべき。 ・forが自然に使えるなら使うべき。 ・型指定のintはunsigned intのようなケース以外は省略すべきでない。 いずれにしても、アナクロなコードだ。 それと、sumの出力はループの外ジャマイカ。
みなさま、有難うございます
>>31 >>32 >>34 インクリメント演算子についてしらべたところ、
「値を1増加させるという意味は同じものの、増加させるタイミングが異なる。
後置のものは値を使った後に増加させ、前置のものは値を増加させてから使う。」
だからちゃんと1番目の数値がsumに代入されていたんですね。ちなみに
>>29 で前置インクリメントにしてみたら暴走しました。
逆にデクリメントするのだったら前置にしないと変な値になるんですね。
int *data = array + 10;
int sum = 0;
do {sum += * --data;
}while (data >array);
>>33 sum += * p_array++ ;は、
sum += * p_array;
p_array++;
と同じになりますね
>>35 >>36 for(i=0;i<10;i=i+1) {
sum = sum + array[i];}
普通は配列の合計値はこうして出した方が素直ですよね。(sumの出力は代入の確認で、配列のint宣言はコピーし忘れてました。)
自分は昔のCPU用のプログラムをいじってみようと思っています。
ポインタ演算は使うと速くてサイズも小さくなるそうなので、使ってみようと思います。
>ポインタ演算は使うと速くてサイズも小さくなる 残念ながら、これ自体が過去のもの。 却って素直にforと配列アクセスで書いた方がコンパイラが最適化してくれる可能性もある。
そうなんですか。ちょっとでも速く出来ればなと思ったんですけど。 やたら構造体が多くて、下手にポインタを使うと型が一致しなくなりそうなので、リスクの割りに効果がないならやめときます。
くだらない最適化より先にやる事がある
というより、最適化は最後の手段。
最適化のコツ: 初心者は最適化などに色気を出さないこと。 ベテランも最適化のことは忘れること。
最適化のコツ ・ポインタより配列を使う ・コンパイラの最適化オプションを吟味する ・GPGPUを検討する
最適化の骨 ・三日後の自分が簡単に理解できるコードを心がける
最適化の落ち ・馬鹿の考え休むに似たり
初心者は、「最適化」と「あるべき姿のコード」の区別がつかない。 読み易いなコードを書けと言うと、シンプルなコードではなく、冗長なコードを書く傾向がある。 これは「非最適化」とされ、要するに初期悪化なので注意。
お前好みのコードになってるかそうじゃないかだけだろカスwwwww
#include <stdio.h> int main(void) { int a=1,b=2; /* 「a=1」、「b=2」とする。 */ if ( a = b ) puts ("YES"); /* 1=2ならYESと表示する。 */ return 0; /* 終了する。 */ }
if (a == b) だろ、ボンクラ
51 :
デフォルトの名無しさん :2013/03/11(月) 00:47:30.23
Cを勉強中1週間目の超ド素人です。 数値を文字列に変換し、下記のようにくっ付けるなんて関数はありますか? 例 "123" + "456" + "789" ↓ 123456789 こんなふうにできますか?よろしくおねがいします。
sprintf strcat
リテラルなら並べときゃくっつくが、 まあそういうハナシじゃないよな。
例だと文字列から数値に変換したいようにも見えるが
文字列として連結した結果をさらに整数型に変換しろって問題?
56 :
51 :2013/03/11(月) 01:07:24.75
すみません言葉足らずでした 整数A,B,Cを、文字列に変換し、ABCという文字列にしてから、ABCという整数に変換したいです
strtol()でも使えばええやん
>>56 整数100,200,300,....を <= 入力整数の個数は?
文字列の"100200300...."にして <= 出力
更にこれを整数100200300....にする <= 出力
こんな関数あるかと?
59 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/03/11(月) 01:18:09.84
int abc; char s[256]; sprintf(s, "%d%d%d", a, b, c); abc = atoi(s);
>>59 いつものようにさりげなく嘘書くな
>int abc;
なんだよこれ
>>60 それは
>>56 の整数ABCを宣言したものです。何か間違いでもありますか?
62 :
デフォルトの名無しさん :2013/03/11(月) 01:33:15.76
C言語でDXライブラリ無しでゲーム作るとしたらどの程度のゲーム作ることできる? 普通に2Dとかのアクションゲームやらシューティングやら作れる?
OpenGL+C言語+SDLで3Dに挑戦!
DXライブラリなしならDirectXを直接叩けばいいのでは
しかしながらDirectXは、Windowsプログラミングをある程度こなせるようになる必要があるし さらに数多くの引数や初期化で頭がパンクして、画面に描画するのですらめんどくさいしで ゲーム作ろうと思うと線形代数が必要になってと、ものすごく覚えることがあるし 確実に艱難辛苦が待ち受けているからな、そういう意味では2Dのゲームを作るのならDXライブラリで十分だと思う
2DならGDIとMCIしてれば十分
とりあえず「DXライブラリ」利用者は 「C言語」やら「2Dのゲーム」などのように 全角英数字を使う事への抵抗が皆無なのは分かった
>>51 × int abc;
○ int abc, a, b, c;
それだけでa,b,cは未初期のまま使われてて意味ない /* a,b,cは以上宣言されて初期化もされている */ というコメントが入れられてたら納得できたか
>>56 文字列にする必要はあるの?
abc = ((a * 1000) + b) * 1000 + c; じゃだめ?
イマイチ何がしたいか分からない
a、b、cが3桁固定とは限らないだろ
なら調べればいい
そのうちlong int超えるケタになって まーた動かないとか言いだすぞ
桁数調べて*10再帰
>>75 連結するからすぐにそうなるだろな
入力の整数の最大値はint指定で入力整数の個数から、桁数を計算するぐらいしないと駄目かも
スイーツ(笑) { while(ナタデココ) main(); } }
doubleの使えなさは以上 精度糞スギ
まじプロフェッショナルは多売長整数使うからヨロシク
doubleが使えないならBigDecimalを使えばいいじゃない
15桁以上の精度が必要ってどんな領域よ。 本来、多倍長整数使うべきところでで浮動小数点使ってるだけじゃないのか?
(1+√(5))^n = a[n]+b[n]√(5) としたときの整数a[n],b[n]の一般項は a[n] = (1/2)((1+√(5))^n+(1-√(5))^n) b[n] = (1/(2√(5)))((1+√(5))^n-(1-√(5))^n) この値を整数演算だけでO(log n)で算出する方法があれば教えて下さい。
>>84 でも、多倍長実数は使わずに妥協するんでしょ。結局必要ないじゃん。
GMP使えば計算できるんじゃないかな? ただ難解な物理をやりたいならマセマティカ買った方がいいんでない?
>>83 a(1)=1 b(1)=1
a(2)=6 b(2)=2
a(3)=56 b(3)=24
a(4)=6016 b(4)=2688
a(5)=72318976 b(5)=32342016
符号付32bit整数だと n=6 でオーバフロー
こんだけでいいならテーブルで持てばいいけど
多倍長演算するなら桁数が n^2 オーダーで増えるから
O(log n) ってのは無理じゃね?
n^2 オーダーじゃなくて n*2 オーダーだった
O(n) で増える桁数をセットするためにはどうしても O(n) オーダーの時間がかかると思う どう転んでも無理ぽ
>>86 いや、出来る出来ないじゃなくて性能的な問題。
規模と精度で折り合いつけると倍精度で妥協する事になるでしょ。
桁数のオーダー O(2^n) じゃね?
>>73 むしろ固定じゃないものを連結するってどういう状況なんだ
めんどくさい奴らだな typedef char d[10000] で1万桁だ
で?
InitCommonControlsEx イニットコモンコントロールセックス
a[n]=a[n-1]*a[n-1]+5*b[n-1]*b[n-1]; b[n]=2*a[n-1]*b[n-1];
98 :
デフォルトの名無しさん :2013/03/12(火) 18:56:31.54
ランダム・アクセスでの読み込みについて聞きたいです まず、バイリファイルを作成し、それを読み込もうと思ったのですが、どうしてもできません どこが間違ってるか教えてください。
100 :
デフォルトの名無しさん :2013/03/12(火) 18:59:25.51
続き まず↓で作成 #include <stdio.h> int main(void){ FILE *fp;int i; float height[3] = {170.5, 169.0, 178.5}; fp = fopen("C_Gengo.bin", "wb"); if(fp == NULL){ printf("ファイルのオープンに失敗しました\n"); return -1;} else{ printf("ファイルのオープンに成功しました\n"); } for(i=0; i<3; i++){ fwrite(&height[i], sizeof(float), 1, fp); } fclose(fp); return 0; }
101 :
デフォルトの名無しさん :2013/03/12(火) 19:01:46.98
つぎに、↓で読み込み #include <stdio.h> int main(void){FILE *fp;fIoat num;fp = fopen("C_Gengo.bin", "rb"); if(fp == NULL){ printf("ファイルのオープンに失敗しました\n"); return -1; } else{ printf("ファイルのオープンに成功しました\n"); } fseek(fp, 2*sizeof(float),SEEK_SET); fread(&num, sizeof(float), 1, fp); printf("%.2f\n", num); fclose(fp); return 0; }
俺はできた!
104 :
デフォルトの名無しさん :2013/03/12(火) 19:10:20.61
Visual C++ 2010 Expressdeで 101の3行目のfloatが定義されていませんとでます
105 :
デフォルトの名無しさん :2013/03/12(火) 19:12:26.27
103さん なんでエラーでたんだろ?
fIoatってなんだよ?
セリフつきでないと分からんな
108 :
デフォルトの名無しさん :2013/03/12(火) 19:16:56.28
100と101のコードを書けば、 実行結果に ファイルのオープンに成功しました 178.5 っと出ると教科書に書いてあるのですができません
× fIoat ○ float
111 :
デフォルトの名無しさん :2013/03/12(火) 19:20:54.27
質問者です すみません。解決しました。 floatがfIoatになっていたので、出来ませんでした。 ありがとうございます
>int main(void){FILE *fp;fIoat num;fp = fopen("C_Gengo.bin", "rb"); fIoat => float で終了。 エディタ上で「I」と「l」の区別がつかなかったと思われる。(あるいは書籍からの写し間違い) 型を強調表示してくれるエディタかIDEで作成するべし。
コンパイルエラーに気づかないのはIDEのせいじゃね?
フォントか? (Iとlの区別)
>>83 a[n+1] = a[n]+5b[n], b[n+1] = a[n]+b[n]
行列表記ではA = {{1,5},{1,1}}
{a[n+1],b[n+1]} = A{a[n],b[n]}
ゆえにA^n = {{a[n],5b[n]},{b[n],a[n]}}
行列n乗をバイナリ法で計算すれば対数時間で求まる。
http://codepad.org/HlpiBOR4 39乗以上は64bitオーバーフローする
>>113 窓がいっぱいあり、エラーを表示する窓がどれかわからないのかも
エラー行さえわかれば1分でなおせるだろこんなもん
linux上でマルチスレッドのプログラムに動作中デバッグ機能として コマンドラインから文字の入出力をしたいんだけど。 scanfしたらスレッド止まっちゃう?
>>118 scanf するスレッドだけ止まっちゃう
じゃあデバッグ用に新規にスレッド作ります。 ただマルチスレッドライブラリのスレッド使ったことないんで時間かかると思うわ。 人の作ったプログラムを別用途にも使えるように拡張しんさいって言われたんよ
unixでもwinでもmacでもない linuxのスレだかんな そこんとこ間違えると取り返しのつかない酷いことになんぞ
まあデバッグ用途ならそれほど難しくないと思うぞ。
ああ、scanf かあ…
>>118 int oldf
oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);
としてノンブロッキングモードにすれば良いよ。
127 :
デフォルトの名無しさん :2013/03/13(水) 18:17:25.52
codepadでファイル扱えたっけ? まずtext1.txtってのがどこにあるんだよw 自分のOSに入ってる環境でプログラム組めよ
>>127 strlen(test1+1)はNUM または、sizeof(test1)/sizeof(test1[0]) じゃないか.
printf("%d\n",*str);はprintf("%p\n",str);じゃないのか
それ以後は間違っているところわからんが、fgetsの使い方も変じゃないか
>>131 そのテキストファイルには幽霊が潜んでいるのか、ガクガクブルブル
PCがウイルスに感染してるんじゃない。おそロシア
*(str+i) = test1[i];
のあとに
printf("%x \n", test1[i] ); つけて幽霊の正体探す
ついでに、これにも\n幽霊がいる
>>131 fgetsは改行コードを消さないから7なのはそのせい
rbにすると8になるはず
今帰ったお(´・ω・`) 床屋に行ったんだけど 「揚げ物ください」って言ってしまった 「刈り上げでお願いします」って言おうとしただけなのに 死にたいorz
刈り上げてwいつの時代だよw
毛がなくなる前の時代
>>131 1. fgets(test1,NUM-1,fp);
なんでNUM - 1をする必要があるのでしょう?
NUM [byte]確保しているのだから、NUMと堂々と言えばいいと思います。
('\0'も含めてNUMとしてくれます。)
2. printf("メモリ確保失敗\n"); return 1;
その前にfopenが成功しているのでfcloseするべきです。
3. *(str+box) = '\0'; 前のfor文でi<=boxとしているのにもかかわらず、再度代入するのは意味があるのでしょうか? また、strlen関数を使うと言うことは'\0'が終端に含まれることを確信されていると思うのですが、 そのstrlenに渡したtest1をコピーしたstrの文字列終端に'\0'を代入する必要はあるのでしょうか? 4. printf("確保したバイト数\t%d\n\n",*str); メモリ確保した0番目のchar型データを出力しています。 確保したバイト数は「sizeof(char) * box+1」ではないんですか?
int i=10; while(i--) 以下略 というコードを見たのですが、i<0になるまでiを減算していくという意味らしいです。 一見して分かりにくい。入門書にはこんなコードは出てきません。そこで質問です。 こんなことをするメリットはあるのでしょうか?悪い手本でしょうか。
俺ならforを使いたいところだな
慣れればそっちのほうがわかりやすいんだよ あとクロックがしょぼい時代は少しでも速くなるおまじない程度の事
手本にはしないほうがいいけどそれくらいはさらっと読めるようになってもいいんじゃないかな
i--の評価は、iです。その評価が終わった後にiを1減らします。 つまり、iが真の間だけ繰り返します。この場合i > 0の間と読み替えてもいいでしょう。 (a) for(i = 9; i > 0; i--) (b) while(i > 0){ ... i--; } と書くことが出来ると思いますが、実際にメリットはタイプ数が少ないくらいしかありません。 個人的にですが、応用が利きませんしバグの原因となるのでそのような書き方は避けるべきと思います。 同様にif(var)と評価するのも余り好きではありません。 理由はC言語には真理値を表す型が存在しないからです。
一個はみ出たマジックとか逆順アクセスとか悪い例過ぎるな
> while(i--) これな CPUの話だよ 機械語・アセンブラの方面だよ インクリメント/デクリメント専用のレジスタと命令があって さらにはゼロレジスタまでもがある 真理値を表す型が無い……のではなく、 CPUのフラグをそのまま使ってた
>>145 -- や ++ がマシン語のインクリメントとデクリメントに対応して導入された
というのは大間違いの都市伝説
一見して分かりにくいとかは、慣れの問題だから。 その程度でバグが増えるとか言ってるやつ程、バグ出してる気がするわ。 ちなみに俺はどちらでも構わない。 ただ、議論するのもくだらないから、文句言うヤツの意見に合わせてる。
昔から使われてるイディオムだからな
149 :
139 :2013/03/13(水) 23:55:02.05
みなさま、お答えありがとうございます。 while(i--)は、比較する0が条件式に出てこないし、判定をした後にデクリメントするというのも知らないと変な勘違いしそうです。 「i<0になるまで」というのも勘違いで、「iが0で無い間だけ」ループするというのも気づきました。 うっかり初期値をマイナスにしたらひどい事になるので怖いですね。 真似はしないでおきますが、トリッキーなので、知っておかないと出てきたときはお手上げですね。
うっかり初期値をマイナスにしたのに気づかないまま突き進むよりよくね?
さすがにデバッグで気付くだろう
>>149 頭で考えるタイプじゃなくて、目で見るタイプの、慣用句なんだよね。
慣れれば、一瞬でなにやってるか判別可能。
>>150 そういう時のためにassertがあるのだが。
>>149 初心者が積極的に使う必要がないだけで
とくにおかしな書き方じゃないから、そこは
勘違いしないように
#define BeginDec(ITER, M, N) do { int ITER = max((M), (N)); int const END = min((M), (N)); while(ITER != END) { int const ITER = --ITER; #define EndDec } } while(0) ; BeginDec(i, 0, 10) printf("%d\n"); EndDec このコードをインクルードしたので 降順列挙にwhileを使う必要はもうなくなり 僕はバグから解放されたのであった
なにその黒魔術
やだキモイ・・・
同じ黒魔術なら #define RFOR(a,b) for(int i##a=0;i##a<b;++i##a)switch(const int a=b-i##a)default
160 :
デフォルトの名無しさん :2013/03/14(木) 16:59:48.25
お前らちゃんとお返ししたか? 今日はホワイトデーだぞ お返しもしない奴は人格的に問題がある、プログラミングやってる場合じゃない
プレゼントは自製アプリ
お返しする相手がいないんですがねえ?
白濁液でお返しした
お返しする人はいないけど仕返ししたい人ならたくさんいる
お菓子のホームラン王を買った
現代の日本人より大日本帝国時代の日本人のほうが政治参加への意欲が高かった
そらそうよ
宿題スレからきますた 現在日時から1時間前の日時を求めるにはどうすれば? 2013.03.15 14:30 ⇒ 2013.03.15 13:30 2013.03.15 00:30 ⇒ 2013.03.14 23:30 2013.01.01 00:30 ⇒ 2012.12.31 23:30 こんな繰り下がりを自前で計算しないとダメなの? AddHours(-1)みたいなのはない?
169 :
デフォルトの名無しさん :2013/03/15(金) 15:10:36.51
sageちゃったのでage
>>168 まずカレンダーの定義から始めないといけないけど
具体的な仕様は決まってるのか?
もしかしたらコイツやばいんでないの たんに変換して3600引くだけじゃん それシラネーってことは エポックとかも絶対にしらねーだろ 単に時間の計算とかだけじゃねぇ コイツ、コンピュータに関わる常識一般が全く、 全然頭ン中に入ってない ソースコード見る以前の話 半年ROMってろアホ
>>170 ドンピシャですた
>>171-172 無駄にレスさせて申し訳ない
time_t timer;
struct tm *t_st;
time( &timer );
timer-= 3600;
t_st = localtime( &timer );
system("date");
printf("%04d/%02d/%02d %02d:%02d\n",
t_st->tm_year+1900,
t_st->tm_mon+1,
t_st->tm_mday,
t_st->tm_hour,
t_st->tm_min,
t_st->tm_sec );
return 0;
}
#include <stdio.h> #include <time.h> char *strtime(char *buf, time_t t) { strftime(buf, 20, "%Y.%m.%d %H:%M", localtime(&t)); return buf; } int main(void) { time_t c; char cbuf[20], pbuf[20]; time(&c); printf("%s -> %s\n", strtime(cbuf, c), strtime(pbuf, c-3600)); return 0; }
>>173 お前が言ってるそれは未規定動作であることもしらねーのかよ
半年ROMってろアホ
177 :
デフォルトの名無しさん :2013/03/15(金) 16:30:52.08
初心者は回答するな
ここで正論入りました
日本語理解できないニダ
未定義は聞いたことあるけど未規定は初耳だな。
ミキティ
未定義とあともういっこなかった?
不定とか?
規格読んだらええプログラム書けんのかって話なんだけどな。
未規定はJISの方言らしい
意味が伝わればいいじゃん、めんどくさい奴らだな #define 未規定 未定義
> 意味が伝わればいいじゃん、めんどくさい奴らだな と言うヤツに限って 意味を取り違えてプロジェクトを取り返しのつかない局面にまで追い込む 真性のアホでありクズ もう喋るなks
パソコン持ってないんですけど…
>>189 お前アンカもまともに打てないのか?
初期のyahoo掲示板かよw
「トピずれだぞアンチは出てけ」
ってかwwwww
やっぱ糞スレは保守するのに必死だな。sageる余裕もないのか。
糞スレ
マジで糞スレ これは言い訳のしようがない
ん?反論がなければ俺の勝ちだが?
かそ
そか
構造体のことで質問します 64bit linux gccで、構造体のサイズが8バイトを超えるとprintf("%p", &a);したときの値が 格納されているデータの値になったりするのですが 内部で何が起きているのですか? %pの表示が壊れていても&aで関数にポインタを渡せる原理が知りたいです ぐぐると幸せになれるキーワードとかあったら教えていただきたいです
>>198 たぶんあなたがどこかで勘違いしているだけだと思う。
これ以上はコードを出してくれないとわからない。
すいません原因が分かりました 一緒に構造体を無理矢理表示してたのが原因でおかしくなってたみたいです #include <stdio.h> typedef struct { int no1, no2, no3; } test; int main(){ test x = {0x12345678, 0x87654321, 0xABCDEF00}; printf("x=%x, &x=%p\n", x, &x); // 表示が崩れる printf("&x=%p\n", &x); return 0; } 出力: x=12345678, &x=0xabcdef00 &x=0x7fffeaab81b0
なんでintに0x突っ込んでんだ? ヴァカか?
お前が馬鹿
何が悪いんですか?
頭じゃないでしょうか。203の。
俺の知らないヴァカという技法の話だろう
ダブルポインタと言う用語を使うのはもれなくうんこ。
スレチになるかもしれないんだけど C言語の勉強って最初どういうふうに入ったほうがいいの? ひたすらプログラム書けと言われたけど書き方すらわからない
入門書があるだろ それ進めていけ
>>210 苦しんで覚えるC言語というのを買おうと思っている
>>198 ,202
ぐぐるなら「c言語 関数 引数 スタック」
実際の内部動作は実装依存っぽいけど、概念的にはこんな感じ。
@引数を後ろからスタックに積む
[メモリ下位アドレス]
:
"x=%x, &x=%p" →(A)
12345678 →(B)
87654321 →(C)
abcdef00
(xのアドレス)
:
[メモリ上位アドレス]
Aprintfが書式解析して(→A)、%x=4byte(→B), %p=4byte(→C)でスタックのデータを使用する。
&xの値も積んであるんだけど、表示指定子が4byteだから間違った場所のデータを使用することになる。
って書き終わった後に「原因がわかりました」を読んだ。せっかくだから書き込むけど既知だったらすまんこ
苦しんで覚えるC言語 楽しく覚えるC言語 気持ちよく覚えるC言語 暗記で覚えるC言語
メモリポインタは?
ついにメモリポインタの話が来たか 現代電子計算機の極致とも言われるような技術だ 一晩かかるような長い話だけどいいのか?
言葉遣いの悪い奴がいて気分が悪い。メモリポインタの話はなし
性格について言ってる人がいますが、 こんなところでコソコソとしか 面と向かって人に意見すら言えない人達の方が よっぽど性格悪いですよね。 ここで下らないことばっかり言ってる人達は どれだけ顔が良くても性格は最悪ですね。
> よっぽど性格悪いですよね。 自分の意見言うなら、なんで他者の同意を取ろうとするんだ? 言い切ればいいんだよ そういう面ではお前は本当の意見は言ってない、 他者からの同意を得るための参考文章を挙げただけ
ありがとうございます。
あたかな、さらやまな、らはさかあがすっけろりんだ だべだべ
関西人はなぜあんなに人のテリトリーまで土足でずかずか勝手に入り込んでくるんですか? しかも聞いても無いのに勝手に話には入ってくるし、話し方もなれなれしいし、 関西人じゃない人からすると、ウザイだけです。 もっと他の人の事は考えないんですかねえ? あれだと関西から出て他の所行ったら大丈夫なんですか? 自分は隣に座ったり、居たりすると、関西弁話してたら、すぐ離れるか、居なくなります。 言葉使い事態不愉快です。 関西人の人はど〜思ってるのか教えて下さい。
システムハンガリアンとアプリケーションハンガリアンが混在してる ゴミソースを読んでると頭痛がしますわ こんな悪習がまかり通ってるCはゴミですね それにくらべ、Javaの文法は美しい
文法と記法は関係ないだろ
シッ見ちゃいけません
Javaのライブラリのソースとかも案外スタイルが統一されてなかったりするな。
馬鹿が発狂しだした
>>209 ひたすらプログラム書け
そのとおり。
Cのプログラムは、むかしの低速なマシンでもじゅうぶんな速度にうごきます。
ふるいパソコンも活用できます。
今更そんな質問するような奴がC勉強する必要ない CPUとかが高性能になってきている今趣味プログラマーが低水準機能に触るメリットとかほぼない
トランジスタ技術とかインターフェース読もうぜ
231 :
デフォルトの名無しさん :2013/03/19(火) 13:38:07.11
DarkBASIC一択。
そうか、春休みなんだな今は
233 :
デフォルトの名無しさん :2013/03/19(火) 13:54:01.80
春休みでネットで必死にプログラム聞くSEなんかいないだろうしなw
>>233 単語数以上の突っ込みどころのある文ってのは、仲々お目にかかれないな。
これはすごい・・・
大して知識がないくせにやたらと偉そう
学問の世界では、何かを説明するときは「頭のいい小5ロリならわかるように」説明しろと言われます 要するに、知識は要らず、論理は明確に、と言うことです 馬鹿な人の話と言うのは大抵逆で、知識ばかりをひけらかして話に筋道がなく、 知らない知識があったというだけで対話者を見下し「これ以上話す必要はない」と勝手に勝利宣言します
ん?反論がなければ俺の勝ちだが?
勝手に勝利宣言してる馬鹿発見
なに?くやしかったの?
具体的争点がよく分からない不毛な煽りあい。
↑ おまえがどっかいけばすむ話かもしれないね
243 :
デフォルトの名無しさん :2013/03/19(火) 21:27:14.83
2chの専門板の中でも特にプログラム板は「それっぽい」やつらが「それっぽく」語るけど 基本的に2chにはカスしかいない mixiをはじめとしてSNSが蔓延ったいま、名無しで活動する意味が殆どないんだから ブログやSNSで名前を持って活動してても全然注目されない奴らが 未だに匿名コミュで無駄な時間潰してgdgdやってるだけ 2chで拾える情報に価値がある事もある、俺みたいのも時より情報ばら撒くから けど本来は、2ch以外でちゃんとした情報を拾えるようになって居なきゃ、技術者としてゴミ HNもって身内コミュ作れる奴なら、2chなどにはもう来ない だからスキル高い奴から順番に匿名コミュからは消えていく そういうネットの傾向が2chの各板で見られる ゴミ捨て場の中にも、光るものがあるのが2chだった が、その光るものは、違う場所にいってしまい ゴミッカスだけが取り残されて、置いてけぼりにされてるのが現在の匿名コミュ そういうネットの傾向が2chの各板で見られる
>>244 勉強になるなあ。
カスな文例、有難うございました。
これは反論できそうにないw
247 :
デフォルトの名無しさん :2013/03/19(火) 22:28:56.33
さっさとオナニーして寝ろよwww
読む人いるんだ。 一行目で読むのやめた。
>基本的に2chにはカスしかいない この言葉にいらっときたようですw
Cのスレと図書のスレは、煽られて「お前らカスだ!」みたいな事を何日も書き続ける頭のおかしい奴がよく現れるね。
strchr()に対して、strrchr()があるように、 strstr()に対して、strrstr()があればなぁ 自作するもんでしょうか?
254 :
デフォルトの名無しさん :2013/03/19(火) 23:52:40.07
?
ggrks
うしろのへんにあることがわかっていれば、 うしろから、さがしたほうがはやいきがする
>>255 ボイヤー-ムーア文字列検索アルゴリズム(Boyer-Moore String Search Algorithm)
- Wikipedia
逆順のstrstr()ってないんだね。 なんでないんだろ。
自分でつくれ
260 :
デフォルトの名無しさん :2013/03/20(水) 03:09:18.26
見てくださいみなさん これが人を馬鹿にするだけで 教えようとしない人間の書き込みです 見てください
>>260 VC++をインストールすればCRTのstrstrのソースが見られるからご参考に
×ソースが見られる ○ソースを見られる △ソースが見れる
↑アホ
p[] = "AAbbAAAAA" で "AA" を逆順で探索したとき p+4 が欲しいのか p+7 が欲しいのか
それはユーザーが指定します
266 :
デフォルトの名無しさん :2013/03/20(水) 10:23:59.62
関数のプロトタイプ宣言で extern ってなんのためにいるの? 貰ったソースに必ず書いて亜るんだけd個
>>266 趣味もしくはコーティング規約、あるいはマイルール。
きたか…!! ( ゚д゚) ガタッ / ヾ __L| / ̄ ̄ ̄/_ \/ /
int hoge(); だと、ソース内にint hoge() { } が作れるけど、 extern int hoge(); だと、ソース内にint hoge() { }を作るとエラーになる。
>>266 関数の場合は無くてもいいけど
変数との統一感という意味ではあるほうがいいもの
うるさい低能
>>266 ソースファイルA: extern int hoge(void);
ソースファイルB: int hoge(void); ←プロトタイプ宣言
ソースファイルB: int hoge(void){ } ←定義
とした時、ソースファイルAでhoge()を使うことができる。
externは、宣言(定義?)済みであることをコンパイラに教えるためにある。
externくらい辞書引け
277 :
デフォルトの名無しさん :2013/03/20(水) 12:11:23.76
規格引っ張ってこいあほ
>>279 自分で引っ張ってきたらどうですか?
子供じゃないんだし。
281 :
デフォルトの名無しさん :2013/03/20(水) 12:28:32.04
> C99 strict (gcc-4.7.2) これが嘘ついていると主張するならテメーが規格引っ張ってこい。チンカス。
煽って他人に調べさせるなんて手は通用しませんよ。
だったら自分で調べてろks
284 :
デフォルトの名無しさん :2013/03/20(水) 12:34:48.85
結局証明できないわけですね。 無能が粋がるとこういう恥をかきます。
>>269 が合ってたら、ヘッダで関数を extern 宣言できんだろwww
ありえん
エラーになるのは extern 宣言(あるいは何も付けないで宣言) した後に static 宣言/定義 した場合だけ static 宣言 した後に extern 宣言しても extern は無視され、static になる
規格くらいJISのサイトでタダで読めるだろ
>>269 というアホは読めよ
>>266 関数だろうと変数だろうと extern は要らない子
変数では要る子だろう グローバル変数なんて使うな!という意味で言ってるなら同意するけど
本物のチンカスが召喚された。
宗教対立が始まったな
295 :
デフォルトの名無しさん :2013/03/20(水) 21:03:22.07
うんこQzはグローバル変数使用禁止
グローバル変数使ったら負けかなと思ってる
グローバルダメてのはバカが勘違いして広めた迷信だぞ 使う方が楽なところは使う方が正しい姿勢だ
とヴァカが申しております
ファイルスコープの変数はそれなりに使うかも。
300 :
デフォルトの名無しさん :2013/03/20(水) 21:37:24.47
結論として関数のプロトタイプ宣言に extern をつける奴はウンコ
アプリケーションに近いレイヤほどグローバルのが正しくなる
>>292 「宣言時に同時に初期化する」というのをあきらめれば、extern はいらない。
宣言時に同時に初期化するのは好まない人にとっては extern はいらない。
extern = public
研究生落ちしたはずの峯岸が相変わらずテレビに出ているのが全てを物語ってるよな。 本人達の実力ではなく、所属している事務所パワーで選抜も決まるんじゃないか。 テレビに出演することで事務所も儲かるから既得権益を失う気なんかないだろ。 今後も高齢化は続きそう。
荒らしてるアホはやっぱりそういうアホなことに時間を注ぎ込むヴァカだったのか
307 :
デフォルトの名無しさん :2013/03/20(水) 23:31:12.18
それっぽいことを語ってもプロにはすぐ馬鹿丸出しってわかるんだよな
ん?反論がなければ俺の勝ちだが?
おめでとう、君の勝ちだ!
他翻訳単位で定義したグローバル変数使うのに extern 必須だろう もちろん外部リンケージのグローバル変数は悪! という事なら別に問題ないけど
>>312 >いや、必須ではない。条件つきだが extern を省略して問題ない。
リンカでエラーにならない?条件とは何?
関数のプロトタイプ宣言ならばヘッダで。 externはグローバルな感じだな。(どこまで波及するかが鍵で容易に糞コード化) 好みの問題。と思うんだが。まあ時代的に古いんだな。
>>313 宣言とともに初期化している外部識別子が複数の翻訳単位に存在すればリンク時にエラーになる。それ以外でもエラーになるリンカは今のところ遭遇していない。
>>314 >まあ時代的に古いんだな。
どちらが古いのかよくわからないのだが?
まめ知識としてはともかく、実際にそれが役に立つ場面てあるのかね。
>>317 ヘッダに記述することで「グローバル変数ですらスコーピングできる」
バカ女は自分にとって有益かしか考えてないよ。 どちらにしろ僕が最低で愚かな道を歩んでいたことは変わらず。考えたり思い出すだけで自分が嫌いになり暗くなる… もう仕事したくない…やる気しない… バカ女、地獄へ堕ちろ
絵里
絵里か。ぬう絵里のやつめ、ゆるさん。
久美子か。ぬう久美子のやつめ、ゆるさん。
>>316 extern論争/C言語の構造がもう古いのかなというただの感想。
深い意味はないので無視してかまわない。
かなか。ぬうかなのやつめ、ゆるさん。
>>326 ろくな経験もない知ったかぶりのアホを相手にするなよw
ああ、そうか ここはCスレか Cなら変数の仮定義があるから 限定的には extern なくていいわな
>>328 (
>>329 )
そのお前の言葉こそお前に還そうか?
ろくな経験もない者が、人を知ったかと罵れるのか?
お前の経験値ではここは早すぎる
帰れ
同一人物認定外すと恥ずかしいな
>>315 >宣言とともに初期化している外部識別子が複数の翻訳単位に存在すればリンク時にエラーになる。
え!?
じゃあ、複数の翻訳単位に無いならエラーにならないっていう、当然の条件で、言ってたの?
グローバル変数なんだから、複数の翻訳単位に登場するのが当然じゃん。
それ、グローバル変数でもなく、むしろstaticをつけるべきだぞ。
(単一ユニットならそれも意味ないけど)
>>315 >
>>313 >宣言とともに初期化している外部識別子が複数の翻訳単位に存在すればリンク時にエラーになる。それ以外でもエラーになるリンカは今のところ遭遇していない。
複数の翻訳単位で定義されていれば、externの有無に関わらずエラーになる。
このチンカスがexternを理解して無いことが証明されてしまったな。www
>>318 ISO/IEC 9899:1999 (E)ではscopingという用語はつかってないが。
意味不明な戯言垂れ流すんじゃねーよ。チンカスwww
その程度の画像なら簡単に文字の入れ替えくらい出来るじゃん
338 :
139 :2013/03/21(木) 21:35:04.29
register は今では意味のない宣言らしいですが、あっても害はないのでしょうか。
オメーが組み込み向けのCコンパイラ書くときに 欲しくなるんじゃねーの
>>338 register 宣言した変数は可能な限り高速にアクセスできるようにした方が良いという、
処理系に対するヒントでしかなくその具体的な効果は処理系定義となっている。
現代のコンパイラはかなり賢いので処理系が判断した方がだいたい良い成果を産むので register の指定をあまり参考にしない。
規格上も register 宣言をただの auto 宣言として扱っても良いと記載されている。
そういう意味で現代では意味がない宣言と考えられている。
そんなわけで、あっても効果が期待できないだけで害は無い。
ただ、処理系定義とは言っても、
register 宣言は名前を見ればわかると思うがレジスタに割り付けることを想定してるらしく、
こんな制約がある。
> register を伴って宣言されたオブジェクトのどの部分のアドレスも、
> 明示的にも又は暗黙にも、計算することは出来ない。
レジスタに割り付けちゃったらアドレスは存在しないわけだからね。
341 :
139 :2013/03/21(木) 22:54:01.36
ありがとうございます。 レジスタへの割りつけはコンパイラにお任せします。自分がコンパイラを書く側にはならないと思います。 最後の制約がちょっと気になるので、register intとかは、intにしておきます。
>>333 C++ならそうだけど、Cだとエラーにならない
これはCには「変数の仮定義」というマイナーな仕様があるため
C++の規格票を読めば、附録C(Cとの互換性)にしっかり書いてある
>>332 ポイントは「初期化」の有無。
初期化をしなければ、同一外部変数の複数の翻訳単位での存在は認められ、かつ、リンク時に一つの変数としてまとめられるのが普通で、そうならないのはみたことがない。
>>333 >複数の翻訳単位で定義されていれば、externの有無に関わらずエラーになる。
複数で「定義=宣言+初期化」ならばそのとおり、しかし私は
>>315 の否定部分では複数で「宣言」までしか意図していない。文脈をすりかえないでほしい。
>externを理解して無いことが
extern はなくてもなんら困らないから理解する必要はない。
それはともかく、
>>312 がみえないのか?
---
【初心者お断り】ガチ規格準拠C専用スレ Part133
http://pc12.2ch.net/test/read.cgi/tech/1201153965/139 139 名前:デフォルトの名無しさん[sage] 投稿日:2008/04/23(水) 22:31:34
みんなあんまり適当な事言うなよ?
>>133 あまり知られていないが、これは 「仮定義(tentative definition)」 という仕様。
extern も static もついていない、初期化を伴わないグローバル変数の宣言は 「仮定義」 と見なされる。
対する、extern も static もついていない、初期化を伴うグローバル変数の宣言は 「外部定義(external definition)」 と見なされる。
外部定義は必ず実体定義を伴う。
外部定義が複数あると、二重定義となりエラーとなる。
しかし、仮定義は他に実体定義がなければ実体を定義し、
他に実体定義があれば実体定義を伴わない単なる宣言と見なされる。
複数の仮定義を書いた場合、実体は1つだけ定義され、それらの仮定義は実体を共有する。
つまり、
>>133 は仕様。
>>344 仮定義は、複数のファイルを跨げないんだよ。
JIS X 3010 6.9.2
>翻訳単位が、ある識別子に対する仮定義を一つ以上含み,かつその識別子に対する外部定義
>を含まない場合、その翻訳単位に、翻訳単位の終わりの時点での合成型、及び0に等しい初
>期化子を持ったその識別子のファイル有効範囲の宣言がある場合と同じ規則で動作する。
つまり、それぞれのファイルの最後に初期化子付の定義があるのと同じ。
リンカのお目こぼしがなければエラーになるよ。
間違った主張を何回貼っても、真実にはならん。
>>345 つまりどゆこと?
複数のソースファイルに仮定義があるとリンク時にエラーになるって言ってる?
347 :
デフォルトの名無しさん :2013/03/22(金) 15:52:55.00
小数点を整数にぶっこむときに小数点が切り捨てられるけど これって必ず0への丸めになるの? そういう仕様? それとも無限大負への丸めになることもある実装依存部分?
規格で0方向
>>345 正確には、複数の翻訳単位をまたがない仮定義は規格にあるが、複数の翻訳単位をまたぐ仮定義は「リンカ依存」なんですね。
これについては、規格のどこかに参考事例という位置づけで補足してあるが、そもそもオブジェクトファイルフォーマットやそれに対応するリンカ依存の事例だから、C の規格の範疇外。
>>346 エラーになりうる環境があってもCの規格に違反していない、ということでしょう。
はよ
>>345 それ多分JISの誤訳か迷訳。
リンクの後で「翻訳単位の終わりの時点での合成型、及び0に等しい初期化子を持ったその識別子のファイル有効範囲の宣言がある場合と同じ規則で動作する。」であり、
この項の存在はリンクの不成功を意味しているわけではないと考える。
>>351 JISに喧嘩を売る前に、自分の頭を鍛えろクズ
ここでやっと正論が出た
やっぱりJISはクソだよな お前もそう思うんだお
355 :
デフォルトの名無しさん :2013/03/22(金) 22:48:26.76
>>344 > 複数で「定義=宣言+初期化」ならばそのとおり、しかし私は
>>315 の否定部分では複数で「宣言」までしか意図していない。文脈をすりかえないでほしい。
じゃそういう事にしてやるよ。そうするとリンク時にエラーにならんぞ。
というわけで、てめーがexternを理解していないことがまた証明されてしまった。wwww
> >externを理解して無いことが
> extern はなくてもなんら困らないから理解する必要はない。
と「理解」しちゃったんだな www
> それはともかく、
>>312 がみえないのか?
テメーのようなチンカスニート以外は見えねーよ。 www
コンソールのR行C列に文字を書きこみといったことはできないんですか? 一文字だけ書き換えたいのにバッファを流して全部書き直すのが無駄に思えます
アホはrogueでもやってろ
>>356 とりあえず vi のソースを読んでみることをオススメする
360 :
デフォルトの名無しさん :2013/03/23(土) 01:25:55.92
locate
C言語の勉強始めようと思って Visual C++ 2008 Express Edition探してるんだけど無くなっちゃったの? なんでマイクロソフトはあれ消しちゃったんだ・・・
なんで2012使わないの?
2012でいいんでないかい?
2010と2012があるじゃん
2014でいいよ。
>>352 JISを疑うくらいの気概がないようでは論外。JISのその項目、現実のコンパイラの動きに合致しないだろう?
つーか消してねーし
C言語とC++でどっちがインタプリタ言語作るのがラクですか?
WindowsとLinuxでどっちでも同じように使う場合、コンパイラはgcc, mingw, vc++どれがいいですか?
gcc
>>369 とりあえず簡易言語を仕立てたいならC++のライブラリを使ってサクッと。
きちんとやりたいなら純C、C++でもベターC程度の使い方にしといた方がいい。
C++は色々と手を回してくれる反面
自分で管理するなら仕様をちゃんと把握しないといけないからな。
>>369 言語処理系のテキストを探したら、みつかるのはほとんどCで書いたやつだろうから
Cで書くことになると思うけどC++はほぼCの上位互換だからC++で書いても大差ない。
上位互換とか真顔で嘘つくなよ
おっぱい言語はCです。
揚げ足取るとのが生きがいの奴が現れた。
double d = 35.0 / 200.0; /* 本来の計算結果は0.175 */ char str[10]; sprintf(str, "%.2f", d); /* 0.18を期待 */ 上記の計算結果は0.1749999999...となり、 その結果、文字列も0.17になってしまいます。 他の数値のパターンに悪影響を与えずに、 この例で0.18という文字列を作れるようにするには、 どのような誤差対応処理が必要なのでしょうか。
sprintf(str, "%.2f", round(d*100)/100);
380 :
デフォルトの名無しさん :2013/03/23(土) 17:08:14.26
double d = 100 * 35.0 / 200.0; /* 本来の計算結果は0.175 */ char str[10]; sprintf(str, "%.2f", d/100); /* 0.18を期待 */
>>377 四捨五入してる時点である程度の誤差は許容してるんだろ
切り上げられるか切り捨てられるか微妙なラインは
どっちになろうが気にしても仕方が無い
そもそも四捨五入とは言うが
5を切り上げるか切り捨てるかというのは統計的にはどうでもいい
5が偏って登場するなら気にするべきだろうけど、
その場合はJIS丸めを使うべき
浮動小数の2進数表現だと10進数で割りきれるものでも 割り切れないのはよくあること。
四捨五入するってだけなら四捨五入したい桁に5を足すだけでいい
おぼえかたは、 0.5をたして、きりすてる
夢は膨らむばかり
10進小数演算をするしかないな
>>377 printf()系の丸めに期待してはダメ。
>379は切り捨てられると思い込んでいるし、大抵の処理系は四捨五入する。
厳密に扱いたいなら自分で管理するしかない。
>大抵の処理系は四捨五入する さらっと大嘘言うなよ。 そもそも四捨五入という考え方自体が日本だけだ。
>>387 たいていの処理系って、gccだと切り捨てだったよ。
本当に切り捨てか?
四捨五入する処理系なんて聞いたことないわ。 あるなら実例を示してくれ。
# awk -f de.awk BEGIN { d = 3.0 e = 200.0 printf("%f\n", e/d) printf("%d\n", e/d) exit } # printf()で四捨五入してたり? # C:\work>awk -f de.awk # 66.666667 # 66
perl の printf で、 %P.Qf は
小数点第Q位で四捨五入だわ。
>>377 はそれをCのprintfにも期待しちゃったんだろうな。
my $s = 50;
my $t = 7;
printf("%3.8f\n", $s/$t);
printf("%3.4f\n", $s/$t);
実行結果
7.14285714
7.1429
VCは四捨五入 BCCはほぼ四捨五入
JIS丸めか(round half to even)
C言語の勉強を始めるときに コンパイラとテキストエディタがあればできる? それと統合開発環境っていうのは コンパイラとテキストエディタがくっついたもの?
Linux入れとけ 最初から開発環境が入ってる
ぶひ
>>397 デバッガもついてるな。
プロジェクト管理とかもついてる。
最近Cでコード書いてないからどの程度使えるかしらんけど、
リファクタリング機能がついてたり、変数や関数の検索も、単純な
テキストマッチじゃなくて文法を理解して探してくれたりする。
>>400 そんなに便利なんだ・・・
やっぱそういうのは金出さんと手に入らんか
>>401 Visual Studio の express あるじゃん
最初はcodepadでいいじゃん
英語のエラーメッセージを見た瞬間に謎の呪文扱いするレベルの初心者は 黙ってVS入れとけ
>>397 デバッガも使えたほうがいいな。
2chで初心者が10行くらいのコードをはりつけて「うまく動きません」とか
質問してるの見るけど、デバッガで変数の中身見ながらステップ実行したら
一発で分かるんじゃないかっていつも思ってるわ。
>>405 横道 CじゃなくC++での話
最近のは STL の引数間違いの特定が簡単になってる?
>>406 初心者はそれ以前の、コード丸写しにしたのですが動きません
でstudioにしてたりとかのケースが多い気がする
他にも=と==を間違えていたりとか
409 :
デフォルトの名無しさん :2013/03/26(火) 18:31:33.65
丸写しして==と=間違えるとか初心者以前の問題だろ。 注意欠陥障害。 それに入門書を買ってちゃんと読んでたら丁寧に分かりやすく書いてあるだろ。 ・注意欠陥障害 ・入門書すら買えない貧乏乞食 この2つが重ならない限りそんな問題は起きない。
>>408 ステップ実行したら「あれ、このifは条件成立しないのに入っちゃったよ」とか
どの行がまずいかくらいまでしぼりこめるじゃん。
デバッグの仕方とかコンパイルエラーメッセージの意味までは 教科書に書かれてないからな
int a=0;
int* my_life = NULL; while(1) { delete my_life; }
>>409 間違った時に何が起きるかを初心者が最初から分かってるわけじゃない
コンパイラがいかに不親切かをちゃんと理解したら、半数が逃げ出す
C言語の未定義処理についてちゃんと理解したら、残りの半数が逃げ出す
まあぶっちゃけ初心者がC言語なんてやるもんじゃない
選択肢がC言語くらいしかなかった時代に プログラマはどうやってプログラマになったんだよ
どっちかっていうと昔はBASICしかなかった。
BasicとアセンブラをやってたらCはそんなに難しくなかったな。 当時のアセンブラは難しくなかったし。
>>413 無限ループは
while(1)の方がfor(;;)よりもいいんですかね、やっぱり。
前者は何かに書き間違えだと思う人はいない、というのがその理由らしいですけど。
フツーなら inifinityと書いてwhile(1)なりfor(;;)に訳されるようにするじゃん まさかしてないのか?
>>416-417 BASIC懐かしいな。
おれはPC-8801(mkIISR以降)だけど、N88-BASICだとサブルーチンはあるけどローカル変数という概念がなかったな。
BASICの変数に使えるメモリ量もかなり制約があるし、(Cでいう)グローバル変数を使いまわして書いたな。
BASICはインタプリタだったし速度もメモリもすぐに頭打ちになって、マシン語を始めた。
マイコンベーシックマガジンの投稿ゲームも最後の方はマシン語のダンプだらけだったもんな。
PC-9801でTurbo Cを始めたら天国だったよ。C言語の関数や構造体やローカル変数(スコープ)などの概念、
それに加えMS-DOSがファイルシステムにディレクトリという概念を持っているのと相まって、
処理やデータ、ソースコード(*.h *.c)の置き場所などの整理整頓が大幅に楽になった。
WindowsはOSの概念を考えさせてくれたし、GUIプログラムを作る上で天国とも感じたし。
当時の開発環境はおれには高くて手に入れるのに苦労したが卒業してからアカデミックパックとかぶっこいてんのだよな、MS。
今はVS-Expressで(機能制限はあるが)無料。しかもフリーのPC-UNIXのLinuxやBSD。 ふざけんな現代。というか、うらやましい。
おれはここの達人衆の足元にも及ばない趣味のフリーソフトで終わりそうだが、一つの歴史の片鱗を
リアルタイムに垣間見られて幸せだよ。
while(1)は条件式が定数ですって警告出すコンパイラがある
具体的には何で バージョンは
バージョンは見てないけどGCC
だからバージョンは って聞いてんの
会社に行かないと分からんわい
429 :
418 :2013/03/27(水) 00:03:03.51
ありがとうございます。 無限ループは while(1) と for(;;) のどちらかにするかはコンパイラなどの環境によるということですね。
警告レベル4ってかなりきついけどね せいぜいレベル3まで
>>429 どっちでもいいって事だろ
使い分ける明確な理由なんて無い
大体、定数式の無限ループなんて、 組み込み位でしか使わない
そのうち過去の人が書いたコードの移植などで警告うぜーと思ったら 警告抑止の方法を学んでおくのがいいかもしれない。 (GCC 4.6.2(Mingw)は警告ださねーな。while(1))
Ubuntu上でビルドしたARM向けクロスコンパイル用GCCという事までは覚えてるが 他の人がビルドしたのでバージョンとか気にしてなかった
定番ネタ(本当にやる奴は居まいが) #define T_T 1 #define _ 1 while (T_T) for (;_;)
435 :
QZ :2013/03/27(水) 02:33:17.54
for(;;) は恒常的にやってるねえ gcc -ansi -pedantic -Wall で警告でないし
whileよりforの方が良い最適化が掛かるとかなかった?
437 :
デフォルトの名無しさん :2013/03/27(水) 15:54:47.95
最適化なんてコンパイラによって違うだろうがゴミ
while(1)もfor(;;)も定型句なんだから普通はどっちも同じ最適化かけるだろ
ネストの二段目はwhile(2)にするとかの時代が樸にもありました
中学3何だけどc言語学びたいですオススメの本と買ってありますか
ぶひひ
C実践プログラミング一択
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京極大学霊長類研究所
『明解C言語』 もうちょっと簡単なのだと『やさしいC』が有名 最近はもっといい本があるのかなあ
>>440 「C実践プログラミング」 でCの文法、make、gdbなど、基礎を習得
↓
「C言語ポインタ完全制覇」 or 「秘伝C言語問答 ポインタ編」 でポインタに関して完全理解する
↓
「エキスパートCプログラミング―知られざるCの深層」 でスタック、ヒープ、リンカ、ローダなど周辺知識を習得
↓
「C言語によるオブジェクト指向プログラミング入門」 で大規模プログラムの作り方を学ぶ
↓
「C言語デバッグ完全解説」でバグに強いプログラムの記述法をマスター
↓
「Code Complete(上)(下)」でより良いC言語プログラムとは何かを各人で考察する
↓
神の誕生
447 :
377 :2013/03/27(水) 21:43:59.56
みなさんありがとうございます。 翌日に規制が入ってしまいました。 たしかに、VCを使っているため、四捨五入されるものだと思って書いてました。 double d = 35.0 / 200.0; char str[10]; sprintf(str, "%.2f", d + 0.0000000001); こんなことをやると、VCではちゃんと0.18という文字列になるため、 その部分に関しては疑問を持っていませんでした。 小数点第3桁を四捨五入した値をエディットボックスに表示 というのが最終的な動作なのですが、 printf系の関数に四捨五入を期待すること自体が環境依存だったのですか。
おっそろしいこと書いてるな printfに四捨五入を期待とか フツーの感覚じゃあ思いつかない いったいその手のバッドノウハうをどこから仕入れたんだ そっちのほうが気になる
0.5をたして、きりすてます あとは、その応用
#include <math.h> double floor(double x);
第何版買えばいいんですか?
最新板でいいでしょうが・・・
あるプログラムをみていたら、「Uint」で変数を宣言していました。 他にもint64だのbool8だの本には出ていないのが有りました。(←これらは大体わかりました) Uintなんてのが普通あるんでしょうか?多くの環境で使える宣言なのでしょうか。先頭が大文字ですし。 unsigned int と同じ意味だと思われますが、typedefはやっていません。
まず最初にお前が考える「在る」という言葉の定義からして教えてもらおうか? プログラミングにおいて「在る」ってなどういうことだ? どういう状態だ? あと一つ、普通という単語は使わない方がいい 通常とか普通とか常態とか そういう単語のほとんどは この業界では疑え
>>454 ヘッダーファイルの中でtypedefか#defineされているかも知れない。
Uintというのは標準にはないので、定義がない場合は自分で定義する必要がある。
今時は stdint.h のやつを使うのが正しいんだろうけど、 統一されてなかったからプラットフォーム毎にそれぞれ定義してて、その名残で色々ある。 基本的に環境依存。
>>446 「Cプログラミングの非常識 ― 最も良いプログラミングスタイルとは ―」河西朝雄氏著
これも面白かったな。
460 :
458 :2013/03/27(水) 23:54:27.68
>>459 信者とかじゃなくて、純粋に面白かったぞ。
複数人で開発して他人のコードをメンテしたりする上で
漠然と嫌だなと思っていた原因がハッキリしてスッキリした。
もちろん、他人に嫌な思いをさせないように、
自分のコーディングスタイルも意識するようになった。
461 :
454 :2013/03/28(木) 00:07:18.75
>>455 「普通」はつっこまれるかなと思ってました。
>>456 Uintが標準にないのですね。使われているファイル以外でも、typedefや#defineはされてないみたいです。
unsigned intに変えてみます。
はよ
>>461 >
>>456 Uintが標準にないのですね。使われているファイル以外でも、typedefや#defineはされてないみたいです。
makefileとかプロジェクトの設定とかでdefineされているかも
はよ
具体的なビット数が入った型名は環境依存ではあるけど それ自体は割と多くの環境にあるんじゃないかと思う ただ基本的には抽象的な型名を使うことのほうが多い ただしC言語は組み込み系でもよく使われる言語であり その組み込み系ではサイズをきちんと意識する必要があるから 具体的なビット数が入った型名のほうがメインになったりするね
467 :
デフォルトの名無しさん :2013/03/28(木) 11:07:49.60
教えて下さい。 Linux上でのC言語でのワンショットタイマーって何かありますでしょうか(ミリセックオーダー)? 処理としては、100msたったら無限ループを抜けるといった処理の作成に使います。 宜しくお願いいたします。
>>467 -----------------------------
名前
nanosleep - 高精度なスリープ
書式
#include <time.h>
int nanosleep(const struct timespec *req, struct timespec *rem);
glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):
nanosleep(): _POSIX_C_SOURCE >= 199309L
質問 [test.c] ---- int main(void) { return ({ int a = 3; a; }); } ---- gcc(4.3.5)だとコンパイルが通るけど、cl.exe(16.00.40219.01)だと引っかかる。 test.c(3) : error C2059: 構文エラー : '{' test.c(5) : error C2065: 'a' : 定義されていない識別子です。 (以下略) これはどういうこと?準拠している規格が違うのか?
どんな規格に基づいてそれを書いたの?
471 :
469 :2013/03/28(木) 11:30:52.10
473 :
469 :2013/03/28(木) 11:56:41.67
>>472 おお、これのようですね。ありがとうございました。
いえいえ
>>345 >同じ規則で
というのが微妙だねえ、原文をみてみたら
ISO/IEC 9899:1999 9.6.2.2
the behavior is exactly as if ... contains ...
as if だぜ?"as if"。
普通は、as if の後には仮定法がきて、「実際にはそうじゃない」ことを強調するんだ、as if はそういうキーワード。
>ファイルの最後に初期化子付の定義があるのと同じ。
でも実際には「初期化子付ではない」。だから「リンカのお目こぼし」なぞない。初期化子が重複しないのだからリンク時にエラーにはなりえない。
まあ実際にコンパイル&リンクしてみればわかるだろうよ。
それはそうと、
>the behavior is exactly as if ... contains ...
exactly にひっぱられて contains と現在形になることもあるんだねえ。英語はよくわからないや。
>>345 >仮定義は、複数のファイルを跨げないんだよ。
この解釈も不可解だね。
ISO/IEC 9899:1999 9.6.2.3
If the declaration of an identifier for an object is a tentative definition and has internal
linkage, the declared type shall not be an incomplete type.
という項目がある。これは、static int a[]; みたいな内部リンケージであって不完全な(=サイズがわからない)宣言を許さないという意味。
しかしここで着目したいのは、仮定義であって外部リンケージであることもありうる、という点。仮定義かつ外部リンケージとして存在できるということと
>仮定義は、複数のファイルを跨げないんだよ。
という主張は矛盾するのだが?
QZはよほど社会から認められていないんだね
相手の言うことを理解しないで自分の思い込みだけで語るから、 社会に認められるわけはないんだよ
QZさんと働きたい ひねくれた爺さんだけどなんだかんだいって面倒見よさそう
こういうレスはQZ以外しない
QZは理屈っぽいなあ とても働いているとは思えない
>>482 >QZは理屈っぽいなあ
それは禁句だ、無際限に誉められいていると勘違いしてしまうぢゃないか。
すごいわかりやすい自演
485 :
デフォルトの名無しさん :2013/03/28(木) 22:04:45.60
>>476 > まあ実際にコンパイル&リンクしてみればわかるだろうよ。
バカの理論。www
規格にそれはポータブルじゃないと書かれている。
ポータブルじゃない処理系がエラーを出さない事は、規格に従っている事と等価ではない。
>>477 > この解釈も不可解だね。
バカにはわからない言語で書いてあるから www
アマゾンギフト10万円で解説してやろうか? wwww
>>485 >規格にそれはポータブルじゃないと書かれている。
どこに?典拠を明確にして引用してみてよ
487 :
デフォルトの名無しさん :2013/03/28(木) 22:18:02.35
>>486 > どこに?典拠を明確にして引用してみてよ
やなこった。テメーの炎上学習法には協力しない。アマゾンギフト1万円で教えてやろうか? www
>>485 たまには外出ろよ、家に籠ってるからそんなに醜悪な性格になるんだ
花見でもしてこい。
挑発して答えようとさせるところが、まさに炎上学習法w
焼畑修法
炎上学習法ってはやってるのか 名前をつけた俺としてはなんだかうれしいような気持ちだ
炎上学習法ワロタ
もはやエクストリームスポーツ
くさおとQZは仲がいいよな
自演に気が付かないの?
>>492 中途半端に相手する人間が居ないと成り立たないけどな
今回で言えば「規格に〜と書かれている」と書いた奴がそれ
うるさいチョン
ケツ拭く時に紙突き破って指でアナル拭いた時の絶望感
>>500 いや、過去に探してくださった方がいたんですけれどもね、extern 抜きだとリンカによってはまずい場合があるみたいだね、詳細はよくわからん
503 :
デフォルトの名無しさん :2013/03/29(金) 07:12:19.34
>>498 2chのレスからは(特に炎上学習法)正解の一部しか得る事が出来ない。
でもバカなうんこQzはそれが全てだと思い込み、間違った知識を積み上げる。www
今回のexternが好例 www
>>500 3f523f02cc86201d97913ca6ed44be11eaf7dfe3818e93bf0a1fd0dbbf962492
に書かれている
e75a2d507fb575dc2f356e63a4b4561e571f61e2ab2859016b5601a605dd612b
でも参照されているチョー基本的な事 www
>>503 ネタとして提供しただけで知識が積みあがったわけじゃない
あと誰でもわかるようなURLを公表しないところなど単に思わせぶりなだけで中身はない
>>504 後だしっていわせないためのsha256だから。
正解に辿りつけたら答えあわせしてやるよ。wwww
507 :
デフォルトの名無しさん :2013/03/29(金) 09:07:12.34
お知らせ 市原警察署の生活安全課の帰化人創価警官の指導の元、 入学式から2週間ほど、在日の創価学会員を主体とした自称防犯パトロールが、 2週間ほど行われることになりました 生活安全課の指導であることと、パトロールであることは、 絶対に公言してはいけないとの指導も、帰化人創価警官より出ています 期間中は2人組の在日の創価学会員が、頻繁に創価批判者の自宅周辺を、 うろつき回ると思われます 日本人の方は、充分に注意してください
508 :
デフォルトの名無しさん :2013/03/29(金) 09:49:59.05
types.hと_mingw.hのssize_tとtime_tがコンフリクトしてtypes.hの方が先にincludeしているようです。 types.h 110:typedef _TIME_T_ time_t; types.h 185:typedef _ssize_t ssize_t; _mingw.hのssize_tは #undef ssize_t #ifdef _WIN64 __MINGW_EXTENSION typedef __int64 ssize_t; #else typedef int ssize_t; time_tは #ifdef _USE_32BIT_TIME_T typedef __time32_t time_t; #else typedef __time64_t time_t; #endif となっています。_mingw.hを書き換えたいのですが、それぞれどう書いたらいいでしょうか?
自分で考えろ
>>508 _mingw.hを書き換えるなら、質問するまでもなく全部コメントアウトでいいだろ。
>>508 ライブラリはどっちでコンパイルされてるんだ?
それに合わせるべき
そうでないとバグるぞ
悔しいから自演しちゃったんだねw
513 :
デフォルトの名無しさん :2013/03/29(金) 12:31:25.79
ごめんなさい Cygwin+MinGW-w64の--target=x86_64-w64-mingw32でビルドしていますが、types.hの中身が違っているらしく、.bashrcのC_INCLUDE_PATH=" /usr/include:/usr/x86_64-w64-mingw32/sys-root/mingw/include"の前後を入れ替えたら一応ここは通りました。 アドバイスしていただいた方々においては大変ありがとうございました。
>>506 それ、ニュートンが微積分を考案したときに似たようなことをやってたみたいですね、それ一つとってもニュートンって性格わるいよね
今の微積分記号はね、ほとんどライプニッツ流なんですよ
っと急いでググった情報を自慢するw
調べない奴よりは良い
調べない奴と比較すればマシなのかもしれないがどちらもクズの域
クズの城 に見えた
怒らないで聞いてほしいんだけど、何でこんな時間に書き込み出来るわけ?? 普通の人は学校や会社があるはずなんだけど・・・・・・ このこと知った親は悲しむぞ?? 現実見ようぜwww
520 :
デフォルトの名無しさん :2013/03/29(金) 20:54:40.08
小学校からいじめられて登校拒否になったために春休みを知らない
>>519 が何か言っていますが、スルーしてあげてください
生まれて一度も働いたことがないうえに引きこもりで土日でさえ街べ出たことがないため、
月〜金に働いてる人のみが普通だと思っている現実どころか世の中を知らない
>>519 が何か言っていますが、スルーしてあげてください
ここまでがコピペ
ドラゴンボールの映画楽しみだなあ
お茶を濁すな馬鹿
ドラゴンボールの映画面白かったわ
悟空とチチがインクリメントする話?
サイヤパワーをコンパイルして神になる話
>>528 人の顔知らないのに
よく言えるね
「みうの悪口言う人=みうよりブス」
って等式どこで習った訳?笑
それにみうなんて
読者から見て
可愛いかもだけど
普通の人から見れば
別に可愛くないらしいし。
8ビット:char 16ビット:short 32ビット:long 64ビット:新規格?long long という風に整数のサイズは決められていますが、intは決まっていないらしいですね。 cpuのレジスタというメモリに収まるサイズということで、ハードに因った規格ということでいいでしょうか。 intを使うと、ハードが代わった場合にどんなバグが出てくるか分からないので、shortやlong等しか使わない、 という考えはあるのでしょうか?
>>530 実は short や long も決まっていない。
本来的にサイズに依存しない書き方をすべき、必要に応じてassert() を駆使するべきなんですが、サイズ依存ならば typedef を検討してみてはいかが?
>>530 間違ってますよ。ググりなおしましょう。
全部おかしい
>>530 組み込み系のプログラムでなら、抽象的な型名をあまり使わず
処理系の持ってるビット数指定の型名をメインにしてるのを見たことあふ
おかしいなら笑えよ
537 :
デフォルトの名無しさん :2013/03/30(土) 21:33:45.21
ァ ∧_∧ ァ,、 ,、'` ( ´∀`) ,、'` '` ( ⊃ ⊂) '`
538 :
530 :2013/03/30(土) 21:44:17.29
ありがとうございます。
>>531 shortやlongもサイズが決まっていないのは知りませんでした。自分がいじっているプラグラムtypedefは既にいくつかしてあるみたいです。
>>534 処理系専用の型もあるんですね。
char も8bitとは決まっていない
じゃあなんなの?ww
そもそも8bit=1byteすら決まっていないしな
って馬鹿が言ってますけどw
1ニブル≠4ビット
>>538 Qzは自己顕示欲が異常に強く自信満々でウソをおしえるので要注意。
char: 8bit以上
short, int:16bit以上
long:32bit以上
long long:64bit以上
と規定されている
char は1byteであることは保証されているが、1byteのbit数は処理系定義なんだが…
>>530 以外のみんなは知ってるよね
目の前のパソコン以外はサポートしないのでどうでもいいです
>>545 調べてみたところ、C99 では「最低」の大きさはさだめられていますね。
ISO/IEC 9899:1999 5.2.4.2.1 に表がのっており、
5.2.4.2.1.1
Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.
とあります。まあ典拠を探す動機になったのでよしとしますが、implemented-defined と書かれている short int や long int について「実は short や long も決まっていない。」はあたらずといえども遠からず、
それを「自信満々でウソをおしえる」と断定されてしまってもねえ‥‥。
>>547 「以上」まで書いてるんだから別にいいかと
コテやってるなら、自分個人に対する反応くらいはほどほどに流しときな?
まあそれもそうですかね、商売繁盛も楽ではないなあ‥‥
>>547 >
>>545 >調べてみたところ、C99 では「最低」の大きさはさだめられていますね。
調べるまでは最低サイズが規定されてる事も知らずに、自信満々でウソ教えた。
んなこまけー仕様なんか覚えてなくても stdint.h をインクルードして正負あり8bit 欲しいなら int8_t とか 正負なし32bitなら uint32_t とか使えばいいんじゃないの?
まあ、今のままだと128ビットになったときひどいことになるのだろうなぁ。 今の型とビット数の関係がいまと変わるかもしれないとかいうのみたことあるし。。。 これからはビット数に依存するものはstdint.hつかうべさ。
sscanf()なら使うけどねぇ。 scanf()系は入力を破棄し難いこととprintf()系の"%*d"みたいな 動的な幅指定がないのは厄介だけど、 文字列を対象とするsscanf()ならそれなりに使える。
型のサイズを意識してない奴は共用体で泣きをみるのだろうか。 そのプログラムで閉じているならいいが、外部ファイルのフォーマット とかを読み込んで処理するプログラムとかの場合はサイズが問題になるな。
555 :
デフォルトの名無しさん :2013/03/31(日) 14:42:13.88
>>547 ←最初から調べて回答すればいいのに、それをせずに回答するゴミクズ
自己顕示欲を満たすのに必死で最初はクソみたいな知識でも書き込むことしか頭にない
それだけ必死ってことはリアル日常では余程クズ扱いされてるんだろ
ネットでもリアルでも不要なQZ
>>555 qzの一連の書き込みは承認欲求だろ。
誰からも必要とされていないから必要とされたい一心で回答。
しかし知識がないから頓珍漢な内容しかカキコできず逆効果w
本気の池沼が湧いてるんだな… しかも飽きずに数ヶ月も居座って 気持ち悪い
>>587 たいがいにしろよカスが
マジで親のダイヤの結婚指輪のネックレスを指にはめてぶん殴るぞ
多分奥歯が揺れるくらいの威力はあるはずだしね
おっととグーの音も出ないくらいに凹ませてしまった感
新しく始めようと思うんだが、入門書はやさしいCとかでいいの? 最初は2chのスレでよく薦められてるはじめてのCにしようかと思ったんだが 尼の評価最悪だったんで悩む
>>561 基礎知識にもよるけどやっぱりK&Rが良いと思うよ。
>>561 はじCはいい本だぞ
あとK&Rはちょっと分かってきた頃に読むとすげー良く分かる
分からないうちに読むとまったく分からない
C実践プログラミング一択
恥C
d 知識皆無なんでとりあえず参考書として買うことにするわ
無知は罪
ムチムチ
罪であると知っているにもかかわらず、罪をおかすひとは、地獄で死にます
>>446 Cでオブジェクト指向? 馬鹿も休み休み言え!
馬鹿
一休み
馬鹿も休み休み
組み込みCて普通に作るのとどう違うんですか? ターゲットのOSとコンパイラが違うだけ?
OSがあっさりしてたり、そもそもなかったり
CPUの知識が必要だったり周辺チップの知識が必要だったり
arduinoをやってみればいい
規格合致度に期待できない処理系を使わされたり
579 :
デフォルトの名無しさん :2013/04/05(金) 09:01:32.88
int x=1; (1)x=x+1; (2)x+=x; (1)と(2)を語句に分解するときどうすればいいんですか? (1)の場合=をそのまま取り出せばいいけど(2)の場合+と=の二つで 演算子だから+と=に分解してしまうとダメだと思うんですが。
>>579 x = x + 1 ;
x += x ;
>>580 そうしたいです。
その方法を教えて下さい。
まず+=で分解してから+で分解する。
>>582 int x=;
x=+=x=;
こういう場合だとどうすれば?
>>584 int x = ;
x = += x = ;
構文エラーは別にすればおk
>>585 なるほどint x =;の段階でエラーですよね
こういう場合は?
int intt,inttt=0;
inttt=intt;
エラーじゃないですよね?intで分解してしまいませんか?
>>587 すいません、その意味が分らないです。
intがあるからそれが確定のタイミングじゃないんですか?
589 :
デフォルトの名無しさん :2013/04/05(金) 10:09:30.63
sage
>>588 "int"の次の文字を先読みして確定する。
「字句解析」という研究し尽くされた分野なので、検索してから聞いた方が効率がいい。
今更だけどB言語は研究対象としてどうなん
>>591 40年以上前によう頑張ったな って印象
>>588 int が出た時点で確定する文法にすればそうなるのだろうが、
普通は [A-Za-z_][0-9A-Za-z_]* にマッチする最長の語を切り出してから
その後にそれが int かどうかを判定する文法にするだろうな
@ answer = (条件式) ? 1: 0 ; 条件が真の場合に変数に1を代入しようとしています。 最初は A answer = (条件式) ; こんな風にしていたんですが、真の場合に1を返すとは限らないという話なので、@にしたんですけど、 みなさんはどうしていますか。 また、真の場合に1を返さないとしたら何を返すのでしょうか。
>>594 コンパイラを作った人の決めた値
手抜きしてて || と | が同じになってるかもしれない
!!
非0は真として扱われる、を真が1とは限らないと取るんじゃねーよ ただの規格違反だそんなもん
>>594 規格では 1 を返すようになってるから心配しなくていいよ。
真の条件式の値は必ず1なのかっていう疑問なんじゃないの?
if(a > 0) { a = 0; } else { a = 1; } が、 a = 1 - a; と同等。
6.5.8/6 6.5.9/3 で真なら1、偽なら0ってちゃんと決まってますけど
>>601 a = 2;
だと、
前者の結果は a == 0
後者の結果は a == -1
なのに同等?
>>594 出力としての比較演算子/等値演算子や論理演算子&&/|| は真のときには 1 を返すことは確約されています。
ISO/IEC 6.5.8.5, 6,5,9,3, 6.5.13.3, 6.5.14.3
しかし、<ctype.h> の諸関数(isalpha() とか)は真のときに1を返すとは限らず、あくまで非零で真、零で偽、となっています。
個人的には、「真のときに1を返す」ことに頼らないようにする流儀には好感を持っています。
比較も式だからな 比較式のとりうる値は、必ず0か1となる仕様
607 :
594 :2013/04/06(土) 22:35:37.61
皆様ありがとうございます。 関数の真偽の戻り値を使うのは危険そうですが、式の真偽を1、0として使うのは大丈夫そうですね。
609 :
デフォルトの名無しさん :2013/04/06(土) 23:07:15.83
3dモデルを二次元にレンダリングするプログラム作りたいんですが Cでね。どうすればいいですか? とりあえずC言語の文法は完璧です。
最近はエミュレータも互換BIOSもあるんだぜ!! FreeDOS の 98 版は安定感が足りないが、まぁ使えるし。 実機より速いぞ。
某所では「えみゅ厨」は嫌われます、嫌われたくないもん!
616 :
デフォルトの名無しさん :2013/04/07(日) 03:08:24.34
ファイルの入出力に関してなんだけど 一行ずつ書き込むとして、今までの行に今から書き込もうとしてる内容があったら、書き込まないようにするにはどうすればいい? ヒントだけでいいんでよろしくお願いします
>>616 データ量によってやり方が変わる
PC用で100MB以内ならメモリに履歴を全部残しておけばいい
>>616 今までのを全部覚えておいて出力前にチェックをするしかない。
オンメモリに展開する量を減らすのだったら、行頭のオフセットとハッシュだけ持つようにするとか、ああ、それすらも別のファイルに持つという手もあるな
>>614 エミュは実機がないと違法じゃないのか
まあ俺は実機持ってるけど
エミュレータというとVMWareとかVirtualPCが一番に出てくるもんだろ
え?!
エミュレータの適法性で特に問題視されるのは BIOS の部分だろ。 実機から抜き取った BIOS を使う場合はそれを利用する権利がどこまで及ぶのかはっきりしない。 ただ、少なくともオリジナルたる実機をもっているなら私的利用の範疇であろうと解釈されている。 だからより自由な利用が可能なようにわざわざ互換 BIOS が開発されてるんだよ。
623 :
デフォルトの名無しさん :2013/04/07(日) 12:27:57.26
(´∀`)
部分的な文法チェックをする方法があったきがするのでおしえてください 10行目から20行目の文法チェックなどです。
char a; for(a=-128; a<127; a++){ printf("%d %c\n",a,a); } char型で文字と整数の対照表を出力したいのですが、a=127をうまいこと出力する条件が思いつきません。 while文でないと難しいのでしょうか。 勿論、int型を使えば解決するのだとは思いますが……
>>626 int a;
for (a = -128; a <= 127; a++) {
printf("%d %c\n", a, (char)a);
}
>>626 char a;
for(a=-128; a<127; a+=2){
printf("%d %c\n" "%d %c\n",a,a,a,+1,a+1); }
>>627 すみません、int型を使わない縛りで考えてみたいのです。
今時そうそうメモリをケチる必要もないことは分かるのですが、値をフルに使うにはどうすればいいか気になりまして。
>>628 ありがとうございます、一度に2つ出力は盲点でした。
しかしどうもまだ無限ループしてしまいますね……
ここに手を加えればあるいは……?
char a; for(a= -128;;a++){ printf("%d %c\n",a,a); if (a==127)break; }
もうdo whileの方が楽だろ
unsigned char a; a=0; loop : printf("%d %c\n",a,a); if(a!=255){ a++; goto loop;} できたよー(^q^)
633 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/09(火) 06:41:01.91
相変わらず…なプログラムだなw
そうだな。最後の閉じ括弧は次の行に置く方がいい
ベーシックにみえた
#include <stdio.h> #difine PRINT printf #difine CHAR char #difine UNSIGNED unsigned #difine GOTO goto #difine IF if UNSIGNED CHAR a; a=0; LOOP : PRINT("%d %c\n",a,a); IF(a!=255) a++; IF(a!=255) GOTO 30; もっとそれっぽくするとこんな感じか。 もうお前BASIC使えよって話だが。
#difine
#difine
a=(~0>> 1|a)&(a+2);
1 #define difine define 2 3 #difine A B $cc main.c main.c:3:2: invalid preprocessing directive #difine
642 :
デフォルトの名無しさん :2013/04/09(火) 15:02:46.85
てかCでの開発って効率悪くないの?
defineを書き損じました。 どうすればうまくうごきますか(やけくそ)
ならハードウェアで全部実装しろ
なら半田ごてで全部コーディングしろ
647 :
デフォルトの名無しさん :2013/04/09(火) 21:14:28.64
組み込みって何からはじめたらええんですか? ちっちゃいPCみたいなやつ買うんですか?
Raspberry Pi変えよ
ArduinoだろJK
>>650 結局のところAVRに皮かぶせてるだけなんだから
普通にC言語でAVRをやったほうがいいんじゃないか?
本人が何をやりたいかによるけど。
652 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/09(火) 22:29:05.30
>>636 小文字は識別しにくいから大文字で構わないけど、演算子とかブラケットとかは修正不能かもなw
IDEの表示スタイルを変えるのがベスト。
小文字が識別しにくいって頭悪すぎだろ。
654 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/09(火) 22:48:22.35
>>653 lと1とかoceとかijとか識別しにくい。
フォント変えれば済むw
>>654 それ読み間違えするようなら、どっかおかしいんじゃないの。
656 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/09(火) 23:06:52.30
658 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/09(火) 23:42:31.30
ほらねw
あらら
NGNameにした
↑ 君のその報告こそどうでもいい事なんだが
NGにされた事がよほど悔しいようですねーナルシストのコンソーレ君
663 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/10(水) 06:54:49.10
そしてついに泣き枕か…。 入門スレにありがちwな展開だ。
リアルで読み間違えをして 「ほら、アルファベットの小文字って識別がむずかしいじゃん。 lと1とかoceとかijとか読み間違えちゃうよ」 とか言い訳してるやつがいたら、視力が悪いのか、頭のほうがアレなのか その話題に触れていいのか動揺しちゃうレベルだけど、なぜか ネットだと本人は屁理屈でもなくて正論で言ってるつもりっぽいからびっくりする。
665 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/10(水) 09:41:22.52
ま、サラリーマンは変わったヤツが多いからなw
ループカウンタでiとjは見間違えるから使うべきでないって大マジに主張してるやつも見たことあるな。
>>665 ネットで小文字が見分けつかないって言ってる連中って職業プログラマじゃないんじゃないの?
そんなフォントをIDEに設定している奴が悪い
0とOは見分けつかない
oと0は、小文字にしたほうが見分けがつくな。
ゼロにスラッシュや横線や点が入ってるフォントにしようず
Oはともかく全角数字なんて使わないから問題無し
キャプチャ認証のwとv二つの紛らわしさは異常
使わないからって言う奴に限ってなぜか肝心なところで使いやがるんだよな。
>>673 rn が m に見えたりすることもあるよな。
でも、ある程度の紛らわしさがキャプチャの意義でもあるので難しいところだと思う。
676 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/10(水) 17:03:21.40
おまえらが何を書いても変わらないからなw 臭いものに蓋w
676 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
678 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/10(水) 17:19:24.32
あ、そうそう、おまえらはそれ以前にプログラムが書けるようにならないとなw すっかり忘れてた(爆笑)
>>676 なにか煽ってるつもりなんだろうなってのは分かるけど、話がどうつながってるかよく分からない。
↑ ストーカーキモいんだよ
標準出力でエラーがでて困っているぶひい NodePointer p1; printf("%d\n",p1); 警告: 書式 ‘%d’ は引数の型が ‘int’ であると予期されますが、第 2 引数の型は ‘NodePointer’ です [-Wformat] 構造体表示できないごごご。。 表示の仕方 誰か教えてください
構造体をPOD(基本型)に自分で分解して表示する たとえば struct NodePointer { int i; NodePointer *next; }; とかになっていたら printf("%d\n", p1.i); にするとか
>>682 iはでました!ありがとう!
printf("%d\n",p1->next);
まだnextがでないとです
構造体のp1とp1->nextはアドレスが表示されるかなっておもってるんですけど
なんで出ないんだろう。。おおーん
%p
printf("%d %p\n",p1.i, pi.next);
%pで表示できたです〜 ありがとです〜
687 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/10(水) 22:11:01.88
頭悪そうw
向いてないから死ね
689 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/10(水) 22:19:03.65
BASICで書いてみw
>>689 1 ON STOP GOSUB 30
10 BEEP 1:BEEP 0
20 GOTO 10
30 BEEP 1:BEEP 1:BEEP 0
40 RETURN
ビープで音階表現したりした頃を思い出した
>>690 そこはpoke文で本体を壊す所が面白いんだぜwww
693 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/10(水) 22:59:28.40
>>692 …ポインターなんて書くから紛らわしい。
フツーにPOKE/PEEK()/VARPTR()でいいんだよw
694 :
デフォルトの名無しさん :2013/04/10(水) 23:16:37.17
ウザいから書き込まなくていいよ
695 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/10(水) 23:42:52.63
EXP+1w
696 :
デフォルトの名無しさん :2013/04/11(木) 00:15:11.24
YouTubeみたいな動画共有サイトを作りたいと思っているのだが、 まず、どんなことから勉強すれば良いのかすら分からない。 なので、YouTubeみたいな動画共有サイトを作るためには、 どんなことを勉強しないと駄目なのかを全て教えてください。
マルチとかいちいち調べてんの?
見てるスレにたまたまいたからな
700 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/11(木) 01:00:22.30
経営勉強して金借りて分かる人を雇えばいい。 いや、割とマジで。 技術的に出来たとしても、動画サイトの場合サーバーとかのランニングコストが高すぎるんだよ。 この先大規模なものを運営したいなら技術なんかにかまけるのは明らかに時間の無駄。
スポンサー、広告主がつくことが大事だから 大々的にやるならアングラを避ける もしくは有料会員向けにする
,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| |i i| }! }} //| |l、{ j} /,,ィ//| なにを言ってるかわからねーだろ? i|:!ヾ、_ノ/ {:}//ヘ 俺もわからねーぜ、フフフ .|リ...... ...... V,ハ | .!(・ )`~´( ・) i/ | (_人__) | \ `ー' ./ / \
/*こちらは期待したとおりに出力されるのですが*/ void output(char *line){ char *rmnl = line; while (*rmnl){ if (*rmnl == 0x0a) *rmnl = 0x00; rmnl++; } puts(line); } /*こちらがうまく出力されないのはどうしてでしょうか*/ void output(char *line){ while (*line){ if (*line == 0x0a) *line = 0x00; line++; } /*puts(line);が駄目なのはポインタが先頭を指していない?*/ puts(&line[0]);/*これも期待どおり出力されないのはどうして?*/ } 久しぶりにC言語を触ってみて、さっそくつまづいたのですが、教えてください。よろしくお願いいたします。
>/*puts(line);が駄目なのはポインタが先頭を指していない?*/ 自分で答え書いてるじゃん
それはwhileの前後でprintf("%p\n", line);してみたのでわかるのですが、puts(&line[0]);これがうまくいかない理由がわかりません。
line++してるからじゃね
俺ならこうだな void output(char *line){ while (1){ if (*line == 0x0a) { *line = 0x00; break; } line++; } puts(line);
#include <stdio.h> void chomp(char *rmnl) { printf("%p\n", &rmnl[0]); while (*rmnl) { if (*rmnl == 0x0a) *rmnl = 0x0a; rmnl++; } printf("%p\n", &rmnl[0]); } int main(void) { char buf[256]; fgets(buf, sizeof(buf), stdin); chomp(buf); } Cygwinでコンパイルしましたら最初のprintf()と最後のprintf()で出力したアドレスが異なっていましたが、Vine Linuxでコンパイルすると同一のアドレスになってしまいます。
Cygwin上でコンパイルしたものの実行結果 $ ./a.exe hoge 0x28ab60 0x28ab65
すみません、Vine Linuxでも異なるアドレスが得られました。 要するに関数内でポインタpをインクリメントしたら先頭アドレス&p[0]も変わるということでよろしいでしょうか。
#include <stdio.h> void init(char *buf, int size) { int i; for (i = 0; i < size; i++) buf[i] = 0x00; } int input(char *buf, int size, FILE *fp) { if (fgets(buf, size, fp) != NULL) while (*buf) { if (*buf == 0x0a) { *buf = 0x00; return 1; } buf++; } return 0; // exit } void output(char *buf) { puts(buf); } int main(void) { char line[256]; init(line, sizeof(line)); while (input(line, sizeof(line), stdin)) output(line); return 0; } こんな感じにかけました。どうもありがとうございました。
汚えなあ もっとシンプルに書けや 初心者にありがちなコードだよな 久しぶりにというのも嘘で本当は始めたばっかりなんだろ
714 :
デフォルトの名無しさん :2013/04/11(木) 15:09:35.85
*line++ じゃないかなぁ?あ?
717 :
デフォルトの名無しさん :2013/04/11(木) 22:20:38.81
また朝鮮人か?
720 :
デフォルトの名無しさん :2013/04/11(木) 23:27:54.39
>>716 もっと頭のいい回答しろやカス
配列は式の中ではポインタになるとかさあ
パイレーツはボインだ
ideone.com/WKB0d2 inline使いたいんだけどこれ文法ミスなんすか?(´・ω・`)
外部リンケージ持つとめんどいからstatic付けろ
なにこのスレ怖い
今時Cなんてやってる奴等の民度なんてこんなもんさ。
そのCを理解できるかどうかが分かれ道、結構人を選ぶんだが
729 :
デフォルトの名無しさん :2013/04/12(金) 11:31:48.03
出たw 池沼の選民意識w キモw
Cってメモリがイメージできれば簡単だよね
省メモリには最高なわけだが
>>730 環境依存を理由にあんまり積極的にはメモリイメージを説明されないんですよ、環境依存と突っ込む人もいるしね
733 :
デフォルトの名無しさん :2013/04/12(金) 13:00:36.25
C++の闇に消えろ
734 :
デフォルトの名無しさん :2013/04/12(金) 16:40:35.98
うるさいゴミ
JAVAがメモリを食い尽くす
ポインタにNULLを入れて何回でもdeleteしてヤル
北朝鮮の地にクラスター爆弾五万発喰らわしてやる
738 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/12(金) 23:55:21.26
【社会】 「ら抜き言葉を使う人は、知的レベル低い。採用しない」「ら抜きの方が、可能か受け身かすぐ判るのに」…面接の現場で★4
http://uni.2ch.net/test/read.cgi/newsplus/1365717932/l50 ・「R25」の調べによると、面接経験豊富な30〜40代の上司世代がイラつく「若者言葉」で最も多かったのは「見れた」
「食べれた」などの「ら抜き言葉」だったそうだ。「ものすごく幼稚な印象を受ける」「いちいち気になって、話の内容が
頭に入ってこない」など、かなり厳しい意見も出ているが、果たしてそんなにいけないことなのか。
社会人2年目の女性Aさんは、あるメーカーの面接で「ら抜き言葉」を注意されたことを、いまだに強く根に持っている。
学生時代にトヨタの本を読み、海外旅行で「3現主義」の重要性を感じたという話をしたときのことだ。
彼女は仕事への意気込みについて、「もし入社できたら、海外の生産現場に行かせていただきたい。そうしたら現場を回って、
見れるものは何でも見てきたいと思います!」と伝えたそうだ。すると面接担当者から、こう冷ややかに返されたという。
「君さ、それを言うなら“見られるものは”だよね。海外の前に日本語勉強したら?」
(以下省略)
http://news.livedoor.com/article/detail/7581420/ 一方で、「ら抜き言葉」は人材をフィルタリングする上で、それなりに役に立つという考えを持つ人もいる。あるITベンチャー
企業の人事担当者は、言葉遣いから「学生時代にどの程度の知的レベルの集団にいたか」を推測する材料にしているという。
「他人と会話をしていれば、普通は『ら抜き言葉』に違和感を抱いて修正できるはず。それができていないということは、
その程度のレベルの集団に属していたという判断をしてしまいます。コミュニケーション能力にも関わりますし、ハイレベルな
プログラマーを除けば採用に当たって考慮に入れざるを得ません」
学歴だけでなく、日常的に知的水準の高い集団に属している人は意欲も高く、自分の頭でものごとを考える習慣が
あるという。言葉遣いひとつでそこまで見透かされることを考えると、やはり油断はできないのかもしれない。(以上)
- - - - - - - - - - -
見れたぁー? 作れたぁー? アハアハ〜♪”
はーるがきーたーはーるがきーたー
740 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 00:15:12.43
春だけじゃなくてC言語とゴミアラファーがセットだったなw
742 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 00:32:58.34
では、もうちょっと考えてみよう。 「 ら抜き 」 の ” 何がいけない ” のかと言う部分を考えれば相手の思うツボ。 まず相手の言葉を遮断して、自分の有利な展開に持ち込むのが保守カッペの常套手段である。 基本的に彼らはアーミッシュ(高度な都市文明を拒否する者)で、そういう輩は都市生活には向いていない。
ゴミニートがなんか言ってる
お前はら抜き後鳥羽でもつこてろ
745 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 08:40:28.51
見れたぁー? 作れたぁー? アハアハ〜♪”
>>744 方言で言うのなら、ら抜きも方言としては正しいぞ
747 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 09:10:08.92
フツーに考えて、言語理論の一般的な概念としては、「 話者の多いものが主流になる 」 と言う定義がある。 「 ら抜き(否定) 」 とか語尾に 「 だが 」 を付ける話者は封建的な田舎育ちと言う共通点が浮上する。 これは100%的中している。
いい加減スレ違いだぞボケコンソーレ 削除依頼出す
749 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 10:43:50.72
保守カッペ(笑)
普通の人にはレス番号が飛んでいるようにしか見えないはずなのに、 見えない何かが見えている人がいるらしい
九州人チェック表 レ iPhone持ってない レ Nexus7持ってない レ Windows8タッチパネル対応PC持ってない レ YouTubeから動画のダウンロードができない レ H.264対応デジカメ持ってない レ HPが作れない レ 未だにテレビ新聞が主流のメディアだと思っている レ 幅員100m道路がない ついでにアラフォー(40代)チェック表 レ 東京は不況だと思っている レ 広島市はなんちゃって政令指定都市、福岡市より格下 レ 昔は北九州の方が福岡市より栄えていた! レ あるかぽーと用地に高さ60mの観覧車を含む娯楽施設、九州涙目w レ ケータイはNTT Docomo一択、それ以外はダメ レ 未だにWindowsXp世代のPentium4搭載PCを騙し騙しに使っている レ Windows8はゴミだ! レ スタートレック最新作が受け入れられない(←ここ重要w) 採点方法---チェック項目(全16項目)に引っかかった数 0 超人類、どんな時代でも飛び越せる 1〜 5 30代の若者気分、早く定職に就きなさい 6〜10 40代のニーター、まだまだ人生やり直しきくよw 11〜15 この板の常駐変質者(半笑いw 16 あなたの生きた時代はすでに終了しました(黙祷) 結論 レ 九州は常に5年遅れている
752 :
デフォルトの名無しさん :2013/04/13(土) 12:28:45.98
【IT】 「C言語やJavaを使う人は採用しない」「AGKやDarkBASICの方が生産効率が高い」就職活動
http://kohada.2ch.net/test/read.cgi/pcnews/1365242417/139-141 コンソール研究所は13日、C言語やJavaを使う学生を採用しない方針を固めた。
これは昨今のソフトウェア開発現場において社内研修期間を嫌う企業や官公庁の意向を取り入れたもので、
「 卒業=即戦力 」 が求められる新時代への突入を明確にしたものである。
たいていの面接官は ” 学生時代にどんな部活に所属していましたか? ” などと聞くが、それは時代遅れと
なったようだ。
また、C言語やJavaのスキルを問うものに対しても、「 実務経験がなければ意味がない 」 と言う現場の声も
反映した。
コンソール研究所の開発現場から一人の声を拾ってみた。
(以下ソース参照)
キチガイは何とでも言えるわなw 生活がかかってみろ、戯言を言う余裕なんてなくなるから
754 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 12:49:01.59
>>753 そっか、んじゃもう少しコスト削減できるなw
糞コテうざい
756 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 13:25:10.14
大勝利♪”
詭弁の特徴のガイドライン >13. 勝利宣言をする >13. 勝利宣言をする >13. 勝利宣言をする >13. 勝利宣言をする
あ、ほんとだ
759 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 13:37:41.01
虚しいw
クビになった派遣が発狂している
761 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 14:55:56.40
まだまだコスト削減w
762 :
デフォルトの名無しさん :2013/04/13(土) 15:26:50.96
糞スレ
763 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 15:47:18.99
コスト削減スレw
1. 他人の発言をさえぎらない 2. 話すときは、だらだらとしゃべらない 3. 話すときに、怒ったり泣いたりしない 4. わからないことがあったら、すぐに質問する 5. 話を聞くときは、話している人の目を見る 6. 話を聞くときは、他のことをしない 7. 最後まで、きちんと話を聞く 8. 議論が台無しになるようなことを言わない 9. どのような意見であっても、間違いと決めつけない 10. 議論が終わったら、議論の内容の話はしない
>>760 上流工程しかできない、あまったSEとかだろ
いまどき「BASIC」だなんて恥ずかしくて口にできない‥‥最近のBASICはオブジェクトオリエンテッドなの?‥‥VBが中途半端にそうだった記憶があるけれども‥‥
767 :
デフォルトの名無しさん :2013/04/13(土) 19:52:28.05
ウザいなこいつ
768 :
デフォルトの名無しさん :2013/04/13(土) 20:05:43.05
激おこぷんぷん丸
>>766 今のBASIC仕様では構造化プログラミング言語にはなったが
OOPは仕様に含まない
VB.NETはOOだな
他にも個別でOOP実装してる処理系はあるね、まあ独自実装ってことだがそろそろスレチか
BASICに標準というのがあればという前提なのだが・・
>>772 JIS-BASIC
10進BASICで十分なんだよ
速度的に不満ならばVisual BASIC.NETがあるし
こちらはOOPにも対応している
激にこにこぷんじゃじゃ丸
775 :
デフォルトの名無しさん :2013/04/14(日) 20:47:55.15
おこ→激おこ→激おこぷんぷん丸
笑いどころが分からない
だって考えたの朝鮮人だもん
double *main(void){ char sex[]="だって考えたの朝鮮人だもん"; char *o72="笑いどころが分からない"; *o72=sex; puts(o72); return 3; }
mainの返り値をdouble *にしちゃいけない
780 :
デフォルトの名無しさん :2013/04/14(日) 23:10:22.64
こまけぇことはいいんだよ!(AA略
いっそ皆バイナリで貼ればいい。 コンパイル通ったか一発で分かるだろ。
じゃあウイルスはろうか?
>>782 そういう用途なら codepad/ideone だろう
ネタでもコンパイルは通してもらいたいものだねえ
>>776 親父が週刊誌から拾ってきた「ギャルトーク」らしいでっせ、そういえば橘玲の連載がはじまってるね
786 :
デフォルトの名無しさん :2013/04/15(月) 20:25:50.58
C言語で a+b; は、機械語で何命令数になりますか? a/b; は、機械語で何命令数になりますか? コンパイラによるかもしれないですが、だいたいでいいので教えてください。 足し算と掛け算の計算コストの違いを知りたいです。 for文で計算を繰り返して計算時間を計ることを考えましたが、 for文を回す分のオーバーヘッドが時間に含まれてしまうので、計れないです。
>>786 x86の場合
レジスタ上に変数が読み込まれているとして,
どちらも1命令
最低でもaとbの型、ターゲットCPUアーキテクチャ、コンパイルオプション ぐらいは書かないとまともな回答は来ない あとfor分のはあるやつと無いやつやって引け
>>786 gccならコンパイル結果をアセンブラソースで出力できるよ。
790 :
デフォルトの名無しさん :2013/04/15(月) 20:57:48.72
>>787 まじすか、割り算が1命令でできるなんてにわかには信じがたいんですが、
1命令でも命令によって実行にかかる時間は違いますか?
791 :
デフォルトの名無しさん :2013/04/15(月) 21:02:26.72
aとbはintです。CPUはIntel Core 2 Duo(x86)。 a+bの結果が使われてないから最適化されて0命令っていうのは無しで。 コンパイラは自宅に環境がないけどVisualStudioの古いやつ。
とりあえず、これでコンパイルしてみろ。 cl /FAsc test.cpp test.codというのが出来るからそれを見る。
何クロックかかりますか
データシートをよめ
796 :
デフォルトの名無しさん :2013/04/15(月) 21:28:32.53
>>793 なんでただの足し算に41クロックもかかるんだ?
代入やロード処理も含まれてるからか?
純粋に足し算だけなら1クロック?
>>786 命令数だけじゃ速度なんて分からんぞ
レイテンシとスループットを加味しないといけない上に、
前後の命令によって並列実行される場合もあるので
足し算割り算だけ抜き出しての実測すら微妙
だけど、基本的に割り算は遅い!と覚えておいて間違いない
>>796 パイプラインが40段あれば1個の命令が入って出てくるまで40クロックかかるんじゃね
gcc でアセンブリコードを出力する
gcc -S でアセンブリコードが出力されることを初めて知った(滝汗)
やばいくらい面白いぞ!!
簡単なプログラムで C のソースとアセンブリコードを比較してみる。
int main() {
int x = 0;
return 0;
}
gcc -S するとこうなる。
.text
.globl _main
_main:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl $0, -12(%ebp)
movl $0, %eax
leave
ret
.subsections_via_symbols
http://d.hatena.ne.jp/cocoatomo/20080720/1216510168
>>796 RTDSC 間では足し算の他に
RTDSC の結果をメモリに格納したり
PUSH/POP したりしてるからな
どうもそれだけでもない気もするが、
それ以上はアセンブリ見てみないとなんとも言えないな
>>786 処理時間について実験しているのなら、ぜひ、for抜きもやってみることおすすめ。
まぁ、今のcpuだとほぼ同じ結果になりそうだけど。。。
反復回数を減らすことのメリットがわかるかもしれない。
Visual CだとアセンブルコードにCのコードもコメントとして入れられるけど、 gccでも出来るのかな。manで見当たらない。
なにこの初心者丸出しのレス
入門スレにその突っ込みは野暮
>>786 >>794 現代の CPU はすごい複雑なんだよ。
マシン語を CPU 内部で更にマイクロオペレータ (μop) に分解してパイプラインに効率的に突っ込む仕掛けがある。
複数のパイプラインが並列に処理されたりもするので、ある命令の実行に何十クロックも費すことがあったとしても、
その間に他の命令も処理できたりするから各命令の必要クロック数の合計が処理時間とはならない。
(並列化できる命令とできない命令もある。)
つまり、どの命令を使うのが効率的かというのは前後の状況に依存する。
単純に一命令あたりのクロック数を見てもあまりアテにならないよ。
質問が悪かった…子供が遊びで話す 「スタローンとジャン・クロード・バンナムはどっちが強い?」 そのレベルでいいよ
807 :
デフォルトの名無しさん :2013/04/16(火) 14:06:21.09
>>802 は、
gcc -S -g
で .loc にCソースの行番号が出るんだけど、
VSみたいにCのコードまでは出てこないんですよね。
グローバルな最適化をすると元のソースコードから想像できないようなコードが生成されたりする。 一対一で対応付けられないことがある。
810 :
デフォルトの名無しさん :2013/04/16(火) 23:03:06.33
数値解析のLU分解のアルゴリズムについて質問です。 以下にソースプログラムを書きます。文字数の問題で連投になってしまいますがご了承を… #include <stdio.h> #include <math.h> #define N 4 int main(void){ double a[N][N]={ {2,1,3,2}, {6,2,14,7}, {4,2,4,8}, {2,3,-5,5} }; double b[N]={3,3,12,18}; double x[N],y[N]; double fct; double sum; int i,j,k; printf(" a[%d][%d]:b[%d]\n",N,N,N); for(i=0;i<N;i++){ for(j=0;j<N;j++){ printf(" %9f",a[i][j]); } printf(" : %9f\n",b[i]); }
811 :
デフォルトの名無しさん :2013/04/16(火) 23:04:40.57
printf("\nStart LU-decomposition\n"); for(k=0;k<N;k++){ if(a[k][k]==0){ printf("a[k][k]==0:\n"); return 1; } for(i=k+1;i<N;i++){ fct=a[i][k]/a[k][k]; for(j=k+1;j<N;j++){ a[i][j]-=fct*a[k][j]; } } } printf("\ny[] vector:\n"); for(i=0;i<N;i++){ sum=0.0; for(j=0;j<i;j++){ sum+=a[i][j]*y[j]; } y[i]=b[i]-sum; printf("y[%d]=%9f\n",i,y[i]); } printf("\nx[] vector:\n"); for(i=N-1;i>=0;i--){ sum=0.0; for(j=i+1;j<N;j++){ sum+=a[i][j]*x[j]; } x[i]=(y[i]-sum)/a[i][j]; printf(" x[%d]=%9f\n",N); }
812 :
デフォルトの名無しさん :2013/04/16(火) 23:06:17.01
printf("\nSolution x[%d]:\n",N); for(i=0;i<N;i++){ printf("x[%d]=%9f\n",i,x[i]); } return 0; } 長々と申し訳ありません。 以上がLU分解を用いた連立一次方程式のプログラムなのですが、アルゴリズムが自分の中でいまいちしっくりきません。 どなたかフローチャートなどで説明していただけないでしょうか…
スレチです
>>811 printf(" x[%d]=%9f\n",N);
引数が足りなくね?
815 :
デフォルトの名無しさん :2013/04/17(水) 15:38:53.15
>>808 行番号が出るなら、コードをそこに自動で追加するスクリプトを自分で作ればすむだろゴミクズ
>>812 インデントが無くなってて見づらいので
インデントを足してください
>>816 何でお前のために手間かけなきゃならないんだ?
回答もせずに注文つける基地害は消えろ。
>>812 codepadかideoneを使ってください
>>818 注文つけるな、答えろクズ。
お前が自分のエディタにコピペしてインデントすればいいだろ。
それが嫌なら消えろ。
822 :
デフォルトの名無しさん :2013/04/17(水) 17:33:59.78
発狂
くそわろ
そりゃそうだろ。三国志は日本の戦国時代に関する文献が基になってるんだから。日本での人気の方が高くて当然なんだよ。 戦後の中国人ともなるとほとんどその価値を解かる者がいないみたいだね。 特に類似した記述が多いのが太閤記で、あれだけの巨人を一人の人物として描く事はよほど難しかったらしく秀吉の様々な要素が曹操・劉備・孔明に分配されている。 呉の孫堅・孫策は秀吉ではなく織田信長・信忠父子が基ではないかと言われるがもしそうならかなり誤った描写も多い。 まあこれは例によってお得意の劣化コピーって奴だろう。日本のパクリは何も中国だけってわけじゃないけどね 旧約聖書にも日本神話を基にした記述があるぐらいだし。 関羽なんか稀に韓国でも神のように崇めてる奴がいるそうだがモデルが誰なのか知ったらどうなっちゃうんだろうね。 きっと火病で卒倒してそのまま絶命しちゃうんじゃないかな。
ほんと成りすましの好きな人だなw
在日朝鮮人って無意識にスレを荒らすからな
#include <stdio.h>
main(int argc,char **argv){
if (!argc) return argc;
printf("
>>82 %d%s", argc, "ゴミ\n");
return main(argc-1, argv);
}
>>827 それはない。
無意識の時は結果荒れるだけ。
荒らすときは意識しとるわ。
お前の勝手なルールでこの場所に固執するのは勝手にすりゃいいけど、 総合的な場所よりは使って気づいている人が多そうなスレの方が まともな回答が得られる可能性が高いとは考えないのかな
831 :
デフォルトの名無しさん :2013/04/17(水) 20:49:10.17
うるさい
叩いてるのが一人しかいないって? お気楽でいいね〜
いや一人でも二人でも千人でも万人でも馬鹿は馬鹿だから。 英語風にいうと馬鹿s。おっけー?
835 :
デフォルトの名無しさん :2013/04/17(水) 21:25:41.56
都合が悪くなると単一の仮想敵に一本化するのが最近のトレンドだからな
ばあちゃる、て奴ですか‥‥
またこいつかよ・・・きもちわりぃな・・・ 頼むから来ないでくれ・・・
839 :
デフォルトの名無しさん :2013/04/17(水) 22:28:02.70
最近の2chはひどいな 他人に向かってゴミとかいう罵声を平気で浴びせるからな 昔の2chも罵声はあったけどここまでひどくはなかった 一体どうしちゃったんだろう
>>843 ゴミに対して正直にゴミと言えるようになった
クズに対して正直にクズと言えるようになった
いいことじゃないか
新発想
10 CONSOLE,,,1 20 CLS 3 30 X=INT(RND(1)*7+1) 40 Y=INT(RND(1)*7+1) 50 Z=INT(RND(1)*7+1) 60 LOCATE 10,10:COLOR X:PRINT X 70 LOCATE 15,10:COLOR Y:PRINT Y 80 LOCATE 20,10:COLOR Z:PRINT Z 90 IF INKEY$=" " THEN GOTO 100 ELSE 30 100 IF X=Y AND Y=Z THEN PRINT "OOATARI!!":END 110 IF X=Y OR Y=Z OR Z=X THEN PRINT "ATARI!":END
朝鮮人にとっては不都合だからな2ch
C言語について質問があります。 授業中にこっそりここに来ています @ファイル名fuku11.c 引数で指定した数の「★」を出力する関数「star」を作る。 実行例 $./fuku11.exe 整数の入力:3 ★★★ Aファイル名fuku12.c 前の問題の改良版を作る。「★」以外に「●」「■」から選択できるようにし、 関数名は「star」から「bar」へ変更する。 実行例 $./fuku12.exe マークの選択【0:★、1:●、2:■】:1 整数の入力:3 ●●● 詳しい方よろしくおねがいしますpq
授業中なら先生に聞けよwww
855 :
sage :2013/04/19(金) 11:11:46.93
自習中の課題で終わらなければ追加課題だそうですpq 何を思ったか家から近いって理由だけで工業高校選んでしまって 女子はクラスで私だけでいまだになじめません 友達に聞こうにも聞けない状況です たすけてください;;
856 :
sage :2013/04/19(金) 11:25:57.35
もう間に合わないかも・・・ 家帰ったら胸シャメでもなんでもうpするからだれかおねがいしまする><
胸シャメできるなら、同級生に直接見せて聞いたほうが早いんじゃね?
>>857 さん
そんなこといわないでおしえてくださいよう;;
ほんとにこまってます・・・
つまり、女子が一人でプログラミングの授業についていけてないって条件で探せばいいんだな。 工業高校が国内に何校あるか知らんが、その気になれば特定できそうだなw
>>859 さん
やめてください・・・pq
後5分しかないです・・・
はぁ・・・ 追加課題もどうせむずかしくてできないんだ・・・ 学校やめようかな・・・
じゃあ死ねよ
>>855 理解できてないのだから追加課題やっとけよ
そのために福井先生がわざわざ作ったんだから感謝して受け取れよ
int main(argv[1] argc) { int i,n; n=argc; for(i=0; i<n; i++)printf("★\n"); return 0; } これだけじゃね?プログラミングの本読んだら1週間くらいで できるようになるよ。
#include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]) { int i,n; n=atoi(argv[0]); for(i=0; i<n; i++)printf("★\n"); return 0; } こうか
あ引数ってscanfか。 てことは2番は #include<stdio.h> #include<stdlib.h> int main(void) { int i,n,m; printf("マークの選択【0:★、1:●、2:■】");scanf("%d",&n); putchar('\n'); printf("整数の選択");scanf("%d",&m); putchar('\n'); if(m==0)for(i=0; i<m; i++)printf("★\n"); if(m==1)for(i=0; i<m; i++)printf("●\n"); if(m==2)for(i=0; i<m; i++)printf("■\n"); return 0; }
#include<stdio.h> #include<stdlib.h> int main(void) { int i,n,m; printf("マークの選択【0:★、1:●、2:■】");scanf("%d",&n); putchar('\n'); printf("整数の選択");scanf("%d",&m); putchar('\n'); if(m==0){for(i=0; i<m; i++)printf("★");putchar('\n');} if(m==1){for(i=0; i<m; i++)printf("●");putchar('\n');} if(m==2){for(i=0; i<m; i++)printf("■");putchar('\n');} return 0; }
わざと間違った答えを書くとは、なんてひどい奴なんだ
#include<stdio.h> #include<stdlib.h> int main(void) { int i,n,m; printf("マークの選択【0:★、1:●、2:■】");scanf("%d",&n); putchar('\n'); printf("整数の選択");scanf("%d",&m); putchar('\n'); if(n==0){for(i=0; i<m; i++)printf("★");putchar('\n');} if(n==1){for(i=0; i<m; i++)printf("●");putchar('\n');} if(n==2){for(i=0; i<m; i++)printf("■");putchar('\n');} return 0; }
かなり考えましたがわかりませんでした。どなたかソースファイルを教えてください。お願いしますm(_ _)m ある水族館の入館料を求めるプログラムを作りなさい。入館料は 3歳以下は無料 4歳以上13歳未満は子供料金で600円 13歳以上は1000円 18歳以上は男性:1500円、女性:1200円 60歳以上は無料 printf("%dYen\n", answer); ただし性別は女性が1、男性が0として入力するものとし、[年齢] [性別]で入力するものとする。
872 :
デフォルトの名無しさん :2013/04/19(金) 15:12:28.13
int y,s,p,answer; printf("[年齢]");scanf("%d",&y); putchar('\n'); printf("[性別]");scanf("%d",&s); if(y<=3)p=0; else if(4<=y&&y<13)p=600; else if(13<=y<18)p=1000; else if(18<=y&&<60){if(s==1)p=1200;else if(s==0)p=1500;} else if(60<=y)p=0; answer=p; printf("%dYen\n", answer);
873 :
デフォルトの名無しさん :2013/04/19(金) 15:14:40.58
int y,s,p,answer; printf("[年齢]");scanf("%d",&y); putchar('\n'); printf("[性別]");scanf("%d",&s); if(y<=3)p=0; else if(4<=y&&y<13)p=600; else if(13<=y<18)p=1000; else if(18<=y&&<60){if(s==1)p=1200;else if(s==0)p=1500;} else if(60<=y)p=0; answer=p; printf("%dYen\n", answer);
874 :
デフォルトの名無しさん :2013/04/19(金) 15:17:00.43
ごめん&が変なことになってた。 int y,s,p,answer; printf("[年齢]");scanf("%d",&y); putchar('\n'); printf("[性別]");scanf("%d",&s); if(y<=3)p=0; else if(4<=y&&y<13)p=600; else if(13<=y&&y<18)p=1000; else if(18<=y&&y<60){if(s==1)p=1200;else if(s==0)p=1500;} else if(60<=y)p=0; answer=p; printf("%dYen\n", answer);
宿題スレいけよ せめてここまでやったけどここが分からないとか書け
宿題スレが粘着キチガイのせいで使い物にならなくなってんだよ お前が宿題スレを何とかしてくれたら考える
( ゚Д゚)ハァ?
どうせ教員にも友達にも教えてもらえない馬鹿は社会でも使い物にならない 例→QZ
何故ネットで宿題の答えてくれる人が少ないか考えてみたんだけど それ程プログラミングは奥が深くて人に教えてる暇なんてない からでは?人に教える暇があったら参考書に載ってないような スキルを自分で磨くでしょう。教えてる人はとりあえずC言語の文法を マスターしただけのような気がする。 間違ってますか?
横槍ですまんが、優秀な技術者は、たいてい、みんな急がしくて、 初心者の質問に答える暇はないのだよ。 初心者の相手は、初心者に毛の生えた連中か、中級程度で、しかも、 仕事のない暇な奴が請け負うことになる。
教えてくれる人はめんどくさいパズルが好きなんだよ。
教えてくれる人=仕事のない暇な奴
よくもまあ糞みたいなコードを晒して平気でいられるものだな こういう無能な奴ほど自己顕示欲が強い
886 :
デフォルトの名無しさん :2013/04/19(金) 21:29:50.02
糞みたいなコードっていうけど動けばいいじゃん。
このスレで得た回答をレポートに添付したけどなぜか不正扱いになった
ドンマイww
QZ渾身の言い訳
レスを返すってことは無視できないほど頭にきたわけだな
scanf使ってる時点で気持ち悪い
これはスルースキルが問われますね
あまりにもゴミなコードなせいで誰もツッコミを入れたがらない 馬鹿が一人で回答して満足しているだけ。恥さらしに気がついていない
>>874 回答ありがとうございます(^O^)お陰様でなんとかコンパイル出来ました。
あ、QZの自演お礼来たw scanf(笑)ゴミコードを自画自賛ww
scanfより printfが怖い 引数不足の恐怖
だいたいこの程度の課題でわざわざ回答する意味がわからん。 コード書くんならもっと高尚なコードを書けよ
>>898 最近のコンパイラならwarningでるでしょ
>>899 お前アホ?
課題なんだからscanf使わないと不正に思われるだろ
つまりそれは不正行為を推奨するものですね
情けは人のためならずって知ってるか? 馬鹿が一人答えるだけでどんどん学生がここに迷い込んでくるんよ
しらけても無駄 お前がわざわざこんなところで教科書的なコード書くくらい暇なのはわかってる
結局のところ無能すぎて一般スレにも出入りできない奴は 学校課題レベルでしか満足に能力を自慢できない しかもscanfを入れるという愚行
909 :
デフォルトの名無しさん :2013/04/19(金) 23:54:56.66
てか上のは簡単なプログラムなんだしコードは誰が作ってもだいたい同じだろw 糞とかどこで判断するんだよwwwwww
stdin使うほうがださいだろwww
入門スレなのに環境間の仕様の違いとかそういう話が多すぎ。 文法中心とかにしたほうが入門者が課題質問しに来るし入門スレとして相応しいよ。
頭良い奴はアルゴリズムよりハードに興味持つって聞いたわ なんでかな?
自分で考えろ頭悪い奴
情けは人の為ならず この言葉にカッとなる奴多数
的を得た解答
可哀想だからやめてあげてよ
仕様の話のつまらなさは異常 プログラミングで最もどうでもいい話だろ
p==answerだから変数一つ減らせるのにこれを書いた→不正発覚
p price y year x sex answer 答え、この場合価格の事よってanswer=p
このスレ見ているのは数人とは限らないよ →不正発覚
>>914 ハードの性能を引き出すためにソフトウェアがあるんだから当然だろ。
アルゴリズムなんて、そこがわからないと決められない。
そういう意味では低級言語でクソなCも悪くない。
>>907 君が間違ってるよ
情けは人の、ジンセイにおける溜めにはならない、溜まらない。
つまりどれだけ情けをかけられてもその人はなんとも思わんという無駄なことの例え。たしか。
まあ肥溜めのほうがよっぽど役に立つわ。
>>903 >>924 情けは人のためならずとは自分のためになるという意味だろうが
デタラメを良く言うね全く
socket通信の質問なんですが サーバのWAN IPがx.y.z.wでLAN内にlocal IP 192.168.1.xxのマシンがあります このLANの外にあるクライアントからこのローカルマシンに接続したいのですが、その場合ソケットで接続するCコードはどう書けばいいんでしょうか?
>>926 プログラムでどうこうできる問題ではないのでは?
>>927 x.y.z.wの192.168.1.xxに接続、というようにローカルアドレスも指定しなければ192.168.1.xxからサービスを受けられないと思うので、なにか方法があると考えたのですが…
有名プロトコル限定で、ローカル側からproxy経由でつないでもらう、しか思いつかないのですが、あ、そういえばリバース串とかもあるなあ、いずれにせよプログラムだけでは‥‥
そのマルチホームになってるサーバがルータ役になって転送するしかないのでは
>>925 本来の意味に凝り固まり文脈上のニュアンスを読めないのであれば
コミュ障ってやつだ。
そういう人種は
「出世したければ人の嫌がることをする」
というのを、
「人を不快にさせる」
と解釈したりする。
「人が手を付けたがらない、避けたがるような仕事を率先してやる」
という意味だぞ。
>>931 おー、むしろ前者の受け取り方に感動した
>>931 ( ´∀`)<人の嫌がる事を進んでやります
<丶`∀´><人の嫌がる事を進んでやります
こういう事ですね、わかります
935 :
デフォルトの名無しさん :2013/04/20(土) 11:39:23.02
朝からQZが必死だな さすが無職は元気だ
>>903 にレスがたくさんぶら下がってるけど
余程悔しんだな、馬鹿コードを晒した奴
お前どんだけ頭にきてんの もう学校の宿題レベルの議論なんてム板には低レベルすぎて不要だから
>>936 お前の所は土曜日休みないのかい?
大変だねえ(笑)
#include<stdio.h> #include<math.h> #include<stdlib.h> #define LENGTH 1 #define SAMPLING_RATE 16000 #define NUMSAMPLES (LENGTH * SAMPLING_RATE) int main(){ int i,t,s; double sig; double phase[SAMPLING_RATE]; signed short int x[NUMSAMPLES]; FILE *fp; fp=fopen("white.raw","wb"); for(i=0;i<SAMPLING_RATE;i++){ phase[i] = rand();} for(t=1;t<NUMSAMPLES;t++){ for(s=1;s<8000;s++){ sig+=sin(2*M_PI*s*((double)t/NUMSAMPLES)+phase[s]);} x[t]=sig; fwrite(&x[t],sizeof(x[t]),1,fp);} return 0;} 俺が作ったホワイトノイズを生成するやつなのだが これに1000未満の音を遮断するフィルタに通したときの音を生成するには どのようにいじればいいのでしょうか? また上のやつも自信はないんで間違ってたら指摘お願いします。
サンプルに移動平均かければ波形は丸まるけど、 1000Hzとか周波数を指定するならローパスフィルタ作って通すかFFTでカットだな。
QZ本人以外がQZ擁護することなんてあんのかよw アンチQZが荒らすのがムカつくからっていっても、実際に荒らしてる点はスルーしてないアンチQZ叩きも同類だし
ヒント:QZはアマチュアであっても、またアマチュアであることを自覚して実際に手を動かす
まあIDない時点でどうとでも言えるんだけどな。 いくら自分が正しいと主張したところでどの主張も 同じ程度の不正確さでしかない。
シュレーディンガーの猫ですかね
IDでないことを良いことに自演しまくりQZ
>>944 ありがとうございます
これを参考に頑張ってみます
>>952 が自演だと分からなければ掲示板を使うのは難しい
自演とかどうでもいい 利用者にとって価値あるレスかどうかのみ
その利用者が糞コードを晒すことがき生きがいのキチガイ粘着なんだよな そういうやつが他の健全な利用者を寄せ付けないようにしてきたことが問題
ほらみろ反論が出ない
何のために誰と戦っているのか。 戦うために全員を相手に戦っているんだよな。
馬鹿が自分の都合の悪い相手に向かって見えない敵と戦ってるとレッテル貼りですか
車道ボクシングでもやってろ
#define もし if #define でなければ else #define 右記の間 while #define やれ do #define 繰り返し for #define goto #define ケツに移動 continue #define もし if #define でなければ else #define この条件の間→ while #define やれ do #define 繰り返し for #define 選べ switch #define goto #define ケツに移動 continue #define 中絶 break #define 返り血 return #define ← = #define イコール == #define っ * #define の -> #define 自動変数 auto #defien 性的 static #define ちゃー char #define 整数型 int #define 浮動小数点型 float #define うにおん union #define 構造体 struct #deinfe メイン main
キモw
いちいち全角にするのがめんどくせえ
fj.joke/fj.archive にこの手の言語提案があったよね、なんだったっけ、実際の動きはなんだったっけ
>>955 具体的にどのコードのことを糞コードと評価しているのか気になるね評価の根拠として
>>955 も適当なお題でなにか書いてもらいたいね糞とのたまうからには相当なものが書けるのだろう期待するね
根拠なんかあるわけないでしょw 説明できるほどの技術もなさそうだし。
voidってなんですか?
心が広大なナイトとは言え、言葉よりも暴力が先に出る事もたまにある、俺が冷静なうちにいい加減お前らのバカみたいにヒットした頭を冷やせ!
うるさいよ無職
お前らは一級廃人のおれの足元にも及ばない貧弱一般人 その一般人どもが一級廃人のおれに対してナメタ言葉を使うことでおれの怒りが有頂天になった この怒りはしばらくおさまる事を知らない
>>971 朝鮮人みたいな事言ってんじゃないよ
そう言えば生活保護を申請した朝鮮人が強制帰国させられたな
これからはどんどん増えて行くと思うぜ
そんな自虐的自己紹介を力説しなくても。
974 :
デフォルトの名無しさん :2013/04/21(日) 21:23:17.72
なんだおまえら?ズタズタに引き裂いてやってもいいんだぞ あまり調子こくとリアルで痛い目を見て病院で栄養食を食べる事になる
引き裂かれるよりも八つ裂きのほうが
もうすぐ壊れるね
978 :
デフォルトの名無しさん :2013/04/21(日) 22:46:39.83
>>978 AV女優がプログラミングは珍しいな
でもじゃんけんゲームは2日目くらいで作れるようになる
Cやったらなんぼでもおしえんで
分散コンピューティングで2億手まで先を読むじゃんけん
C言語プログラマー?QZみたいな奴wwwwwwww
電脳戦か プロ側は先手でありながら何一ついい目をみることなく凹られてしまったね‥‥ 計算機側が垂れたと金が効果的に働いてプロ側玉を追い出し、玉は最後まで辺に縛り付けられたまま‥‥ トッププロに大駒2枚とも献上して、それでも勝てるっていったいなんなの? プロ側のコメント:「何が悪手だったのかよくわからない」これって手合割が違うときの感想じゃないか‥‥
delphiはデルフィだと思ってた
>>978 おお、彼女は工業高校出身で工場萌え少女だから、
これは本物かも知れんな。
987 :
デフォルトの名無しさん :2013/04/22(月) 00:24:50.49
高水準言語と低水準言語の違いって高水準言語=普段我々が使っている言葉に近い、低水準=その逆って事なのかな?
ああ
>>987 あと、メモリ上にプログラムがどう展開されるか、CPUのレジスタの構成がどうなってて計算などがどのように処理されるかなどを
どれだけ意識せずに(直接扱わず間接的に)書けるか、ってのも重要
高水準言語でメモリを意識することってあまりない
比較的低水準と呼ばれるCなどでさえ、アドレスは扱えててもポインタ演算は型によって進み方を勝手に変えてくれるし
整数が何ビットかは意識することはあっても、それがどのレジスタに入れられて計算されるのか…とか気にしないだろ?
例えばx86系の機械語ならそこでレジスタの構成とか気にすることになる
例えばeaxの下位がaxで更にそれがah,alと入れ子になってるとかな
>>986 高専卒だな。
高卒のおじさんをかわいがってくれるかな
あ
t
おつ!
u
うめ
ぱこぱこ
ほい
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。