< `∀´>ニダー
3 :
デフォルトの名無しさん :2013/10/20(日) 11:41:24.19
前スレ
>>988 が気になって眠れないんですがどっちなのでしょうか?
#include <stdio.h> int main(int argc, char **argv) { while (*argv) { while (**argv) { printf("%c", **argv) (*argv)++; } putchar('\n'); argv++; } return 0; } ポインタを学習するのに最適なコード gcc -S test.cでおk ポインタ厨滅殺のため、テンプレ追加でオナシャス!!!
>>6 argvって最後にNULL入るんだな。初めて知った。
>>3 >>6 に対して
987 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/27(金) 19:08:21.67
>>984 こうやって関係あるな
(*argv)++;
と
*argv++;
との違い
988 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/27(金) 19:23:42.68
それはインクリメントされるモノまで違う
990 名前:デフォルトの名無しさん[] 投稿日:2013/09/27(金) 19:31:56.27
インクレメントされるのはアドレスですが?
996 名前:デフォルトの名無しさん[] 投稿日:2013/09/27(金) 20:01:58.97
>>988 マジかよこんな奴でもマやってられるのかよ
俺なんかマにもってこいだな
Googleあたりやとってくれないかな
998 名前:デフォルトの名無しさん[] 投稿日:2013/09/27(金) 20:08:54.09
>>990 本当か?
999 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/27(金) 20:19:08.65
>>996 この馬鹿何いってんの?
>>6 以前、バグってるコードを調べたら、これみたいに引数の数をargcじゃなくて
*argvがnullかどうかで調べてたんだよな。
argcを使わなくて引数の終わりをチェックするなんて、そのコードと
>>6 でしか
見たことないんだけど、どうやって思いつくんだろう。
昔はそうやって書いてたとか?
>>10 Solarisだと、NULLが入ってなくてバグってたんだけど環境依存じゃなくてCの規格なのかね。
なんでコピペしてんだ?
プログラミング言語C 第2版 P140 標準規格では・・・argv[argc]はヌル・ポインタであることが要求される。
紛らわしいんでこうすれば*(argv++)
hogeは禁止します
hoge書いた奴は質問者だろうが回答者だろうが袋叩きでいいと思う。
int hage,hige,huge,hege,hige;
自治厨乙 void hogehoge(const char* hoge)
やっぱりhoge厨って荒らしなんだな
>>21 で証明された
サイズが64bitより大きい変数を作りたいのですが やっぱりCPU(OS?)が対応していないと無理ですかね
多倍長とか任意精度演算では嫌ならそうかもな
32bit整数を3個以上詰め込んだ構造体の変数は64bitより大きい double _Complexな変数も多分64bitより大きい
gccやlccなら__int128使える
bool fg1[128]=0 bool fg2[128]; memset(fg2,1,sizeof(fg2)); fg2 &= fg1; みたいにビット演算出来るようにしたいけど やっぱりfor分で回さないといけないでしょうか?
c++のbitsetなら
おい、自治厨、C++の話題はいいんかい?
c++の質問がだめなだけ
C99にはboolなんてあるのね 中身はintか
>中身はintか あほ
> 中身はintか ????
処理系依存だけど普通はcharじゃない
sizeof(bool)はいくらだね?
gccで試したら1だったよ
じゃあチャーじゃん
チャー? 一瞬何のことかわからなかったは charはキャラだろjk
俺はチャーだが
俺も
俺も
赤い彗星
43 :
デフォルトの名無しさん :2013/10/23(水) 22:54:58.82
44 :
デフォルトの名無しさん :2013/10/23(水) 23:18:28.81
チャラクタ型とか言ってるんだ。へぇ
俺もチャー
チャーだな キャラ型とか言ってる人見たことない
(jkとか古いネットスラング使ってる時点で察してあげなよ…)
50 :
デフォルトの名無しさん :2013/10/24(木) 14:08:40.52
charaならキャラと読むが charだとチャーだな
char aznable;
redhood chacha
char is_a_guitarilist
54 :
デフォルトの名無しさん :2013/10/24(木) 18:11:48.10
55 :
デフォルトの名無しさん :2013/10/24(木) 18:14:43.62
百済ないスレw チャーやキャラなら俺に聞けのほうがいいんじゃないの?w
でintは?
intel inside
イント
foreach (var foo int って勢い余りがち
ある構造体配列に学籍番号、名前、点数etc…を読み込んだのですが、名前をキーボードから入力し、構造体配列にその名前があれば関連データを全て表示させるにはどうすればいいでしょうか?
>>60 そのようにプログラムを書けば宜しいかと。
>>61 どのようなプログラムを書けばいいかわかりません
そういうのはSQLが簡単なのにCでやるの? select * from atable where name = 'john'
授業での課題なんです…
うんしぐねどちゃーって言ってる女の子がいて萌えた
>>64 みたいに学校の先生に聞かずに
親が払ってる学費をドブに捨てる行為は何が楽しいんだろうと常々思う
多分教科書に書いてあるよ
>>67 親が憎いから間接的にでさえ関わりたくないんだよ。
学校の教員だと学費を通して間接的に親と関わることになる。
それを避けたいから他人に聞いてるんだと思われる。
課題のやり方を聞いて教える教員はいないですし、まだ習ってない範囲です いくら調べてもピンとくるものがありませんでした 答えを丸々ではなくヒントだけでも教えてもらえればと思ったのですが
>>70 #include <string.h> して、
bufに画面入力、学生データをdataとすると
比較は
if (strcmp(buf, data[i].namae) == 0)
72 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/10/25(金) 00:22:17.88
forループとint型変数で構造体配列の要素にアクセスし、strcmp関数とif文で名前文字列を比較し、 名前が一致すれば、そのアドレスを、構造体の情報を表示する関数に引数として渡す。
自分で分かるところまで、まずコードを書いてみる
回答ありがとうございます。 strampをつかえばいいんですね。リニアサーチという言葉に惑わされていました 結果は比較自体は上手くいったのですが、そもそもファイルを構造体に読み込めていませんでした
はじめから自分で書く気なんてないんだろw 大人しく宿題スレに逝っておけ。
>>70 いいから課題出した教員に聞けよ
それがあいつらの仕事なんだから
だから親が毎日毎日働いてなんとか捻出して払った学費をドブに捨てるのが楽しみなんだって
お勉強しかできない高学歴ニートよりはマシじゃね
まだ習ってない範囲やってったら目つけられるで
>課題のやり方を聞いて教える教員はいないですし 結局こうなんだよ 2chではヒントでもとか言ってるけど、教員にヒントを聞く気はないんだよ 習ってないところなら尚更ヒントはくれる
83 :
デフォルトの名無しさん :2013/10/25(金) 21:45:04.37
組み込みって今じゃほとんどverilogって本当?
大学の教員が教えるわけないだろw ここだけは学生を擁護しとくわ
情報科卒の情弱はverilogなんか使わないよ 電子科・電気科卒のやつらがverilogを使って回路設計する 情報科卒の情弱はハード屋の下請けの奴隷にすぎない
86 :
デフォルトの名無しさん :2013/10/25(金) 22:48:28.18
>>85 上下関係はないよ
縦割りすぎて互いに無知なだけ
87 :
デフォルトの名無しさん :2013/10/26(土) 01:53:23.09
verilogよいよね 情報専攻はデジタル回路くらい勉強すべき 新入社員はハードの知識がなさすぎる
情報選好はゴミ
褒めんなや
分別すればゴミも資源に
>>84 たいていそれとなくヒントをくれてるはず
それに気付かないやつはそれまで
>>90 > 分別すればゴミも資源に
それはゴミと資源が混ざってる場合
元々ゴミしかない場合はなにやってもゴミしかでない
ポインタ変数の初期化についてなんですが p = NULL; p = 0; この二つの書き方は等価でしょうか? 等価であるなら、下の書き方を使いたいのですが
p = (Type*)0; にした方がいいんじゃね
98 :
デフォルトの名無しさん :2013/10/26(土) 16:52:17.67
p = static_cast<decltype(p)>(nullptr);
>>99 こうですか?
int *ip = (int*)0;
double *dp = (double*)0;
これじゃだめですか?
int *ip = 0;
double *dp = 0;
>>100 C/従来のC++ なら 0 でいい、C++ では 0 を使うことが多い(というか多かったというべきか)。
ただし
>>100 の例えば int *p = 0; では、0 がヌルポインタであることを左辺から知る形で、0 自体に型情報はない。
0 という表記自体に型情報を追加する必要のある場面がC/C++両者にあり、その場合は (void *)0 とする。
C: 可変長引数を持つ関数を呼び出す場合など。execv*() で (char *)0 と書かれていたことを記憶している。
C++は誰かお願い(オーバーロード?)、C++11(最新仕様)では nullptr が追加された。
103 :
100 :2013/10/26(土) 18:44:30.23
0代入使います。ありがとうございました #include <stdio.h> int main() { int *a = 0, *b = (int*)0, *c = NULL; printf("a = 0 : %p\n", a); printf("b = (int*)0 : %p\n", b); printf("c = NULL : %p\n", c); return 0; } /* gcc version 4.8.1 a = 0 : 00000000 b = (int*)0 : 00000000 c = NULL : 00000000 */
104 :
100 :2013/10/26(土) 18:50:03.72
>>102 読む前に投稿してしまいました。すんません
可読性の問題になるんですかね?
それともポインタの初期化にはその型に合うポインタを代入するのがマナー(?)ってことですか?
>>104 C では p = NULL と明示する人が多かったような気がする。
C++ では p = 0 とか、あるいは for(p = const; *p; p++); とか積極的に簡略表記を使う人が多かったような気がする。
たぶん C→C++ と移行していくなかでスマートに変わっていくんだね
nullptr は‥‥なんだかセンス悪いと思ってしまう、2年たってまだ慣れない
106 :
100 :2013/10/26(土) 19:11:38.77
>>105 なんだか色々あるんですね
program.station.ez-net.jp/special/handbook/cpp/syntax/nullptr.asp
皆さんありがとうございました
107 :
デフォルトの名無しさん :2013/10/26(土) 19:46:46.79
C言語ユーザーってハロウィンはやっぱりC言語のコスプレするの?
Qzには触らなくていいよ 知ったかしてるだけだから
最近Cを勉強し始めました Cが出来るようになるとどのようなことが可能なんですか? 例えば、あるソフトが高くて買えないから、作っちゃえみたなことも 出来るのでしょうか? CADなんて数十万円するけど、自分で作ったらまぁタダですよね
作れるから頑張れ
そう簡単に作れたら大金持ちになれるわけだが、出来ないわけではない 頑張れ
113 :
デフォルトの名無しさん :2013/10/27(日) 00:04:31.16
>>110 俺が学生の頃には、それが常識だった
エディタどころかアセンブラまで自作していた
>>110 高い安いで言えば、作るのに自分の本来の仕事の日当以下で作れれば
そりゃ安くつくんだろうけど…
多分、何倍も何十倍も何百倍も高く付くと思うよ。
もし作れたとしても
>>114 だとしたらCを習得する目的ってなんですか?
>>115 CADを作る会社で仕事するためだろ
アホか
117 :
デフォルトの名無しさん :2013/10/27(日) 01:27:27.35
ちゃんと、それだけで立派な商売になってるしな
118 :
デフォルトの名無しさん :2013/10/27(日) 01:29:13.31
Java厨と戦うためです。
119 :
デフォルトの名無しさん :2013/10/27(日) 01:30:33.59
だよな 趣味ではなくそれで得したい → 仕事で使ってソフト売ればいいだろゴミ 得とかいらないから趣味でやりたい → 趣味なら得関係ないだろゴミ プログラむ言語ってのはソフト1本買えない乞食が趣味と実益満たすためにあるんじゃねーんだよゴミ
120 :
デフォルトの名無しさん :2013/10/27(日) 01:37:04.91
社会に貢献するためにあるのです。プログラミング言語は(倒置法)
print 'hello work' if jitakukeibi()
122 :
デフォルトの名無しさん :2013/10/27(日) 01:48:51.99
>>115 C言語を学んだらMMORPG作って稼げるよ。
通信と3Dのライブラリはただで使えるやつがあるから、それをCから利用すれば簡単。
仕事や学校があっても、週末と毎日帰ってから一生懸命作れば1ヵ月もあれば完成する。
知り合いも何人も作ってて、一番稼ぎの悪い奴でも月10万稼いでる。
稼ぎのいい奴は月200万越えてる。
しかも1度作れば2ヵ月くらい放置でいいし、2ヵ月おきにちょっと新ダンジョンを追加すればいい。
新ダンジョンを作るソフトもC言語を使って作ればいい、半日で作れるよ。
最低でも月10万ってのはでかいよ、毎日3000円のランチ食えるからな。
とはいえサーバーの維持費は月1000〜10000円くらいかかる。
1000円ってのは10万稼いでる奴、10000円ってのは200万稼いでるやつ。
とにかく今ゲーム業界もMMORPGに動いてるからな。
お前も頑張れば今年中にMMORPG作って来年の1月公開とかいけるんじゃないか?
ちなみに俺はプログラムが全く組めないのとゲームに興味がないのとで、副業はヨーロッパからの小物の輸入&ネット販売やってる。
だいたい月3〜5万稼いでる。
200万はすごいな 俺の知り合いでMMORPG作って稼いでる人は だいたいみんな月100万前後しか稼いでない まぁみんな作るだけ作ってほとんどメンテナンスしてないからな きっちりメンテナンスしてたら200万いくんだろうけど
税金はちゃんと払えよ MMORPG運営して年間1500万稼いでた友達がこの間国税局から連絡来たってビビッてた
個人で作ってるMMOなんて全く聞かないけどそんなに売れてるのか
結局管理者が一番儲かって プログラマーは全然旨くないんじゃね? 創業からプログラム担当してる人とかは絶対扱い違うと思うけど・・・
>>126 だからプログラム組んだ後は管理するんだよ
皆知り合いの話ばっかでワロタw そんなに簡単なら自分が儲かっている話をするだろw
保守運用なんて下っ端の仕事やん
>>128 ゲームに興味がないと辛いだろ。
それに月にそれだけ稼げる副業もMMORPGだけじゃないし。
知り合いが100万稼いでたわwそれ知り合いが作ってるわw
>>128 自分が儲かってる話すると質問された時嘘がバレるだろ!
プログラミングや管理はともかく、一番の問題は課金だと思うが、どうしてるんだろうか。
xxの支払い義務が発生します 振込先の口座はyyです もし期限までに振り込みがなされない場合は裁判所にて〜 と表示するだけじゃん
それワンクリじゃない?
>>122 それは有料ゲーム?それともゲーム内アイテム課金?
sについては1+1/2+1/3+1/4+1/5 tについては1+2+3+4+5 を計算したいです そこで以下のように書きました #include <stdio.h> main() { double s; int i,t; for(i=1;i<=5;i++){ s+=1.0/i; t+=i; } printf("s=%f\n",s); printf("t=%d\n",t); return 0; } すると実行結果が s=2.283333 t=1638247 となってしまいます tが明らかにおかしいのですが何が間違っているのでしょうか。 学習用C言語開発環境というものを使っています。
>>137 tの初期値が不定なので、初期化する。
X int i,t;
O int i,t=0;
なおこの種の設定ミスは、コンパイラに警告を出すオプションがあれば、コンパイル時に表示される。
例:
a.c:8:5: warning: variable 't' is uninitialized when used here [-Wuninitialized]
t += i;
^
>>138 初期値が問題でしたか
やってみたところうまくできました
ありがとうございます
140 :
デフォルトの名無しさん :2013/10/27(日) 13:38:01.05
>>136 俺の知り合いのはアイテム課金だった
射幸心煽ってやれば多少の金持ちは数万くらいすぐ使うって
月10万って言ってる人いるけど、
10万なんてどうかしたら1人のユーザーからでも吸い上げられる額
なにもユーザー1000人とか集める必要ないんだよ
>10万なんてどうかしたら1人のユーザーからでも吸い上げられる額 >なにもユーザー1000人とか集める必要ないんだよ なるほど。 ユーザー数は基本的に少ないわけだな。 それなら個人MMOの話をまったくきかないのも納得。 採算とれればユーザー1人でもいいわけだからな。 少数の高額課金ユーザーのほうが設備の維持費も少なくて済むってことか。 完璧な副業だな。
142 :
デフォルトの名無しさん :2013/10/27(日) 14:04:35.02
>>132 印象操作乙
普通は自分が儲かってる話はしない
わざわざライバル増やそうとする知恵遅れはいないよ
>>142 印象操作乙
ライバルが増えるのを妨害するお仕事は捗っていますか?
ただの仕事好きならしゃべっちゃうよ いかにすばらしいシステムを構築したか 自分がその分野を切り開いていったか 実際どれだけしゃべったってライバル増えないってばw 今の世の中は「お金あげるよー」って言っても受け取らない人がほとんどだよ 金がないって言ってる人に、じゃあ儲け方教えてあげるっていってもやらない マイナスでたら全部出すし、黒字分は全部とっといていいよ。最初は全部こっちでやるから少しずつ覚えるだけでもいいよ っていってもやらない じゃあ何もしなくていいから、お金渡す為に名前だけ登録しとくよっていうのも嫌がる お金を手に入れるかどうかって、結局やるかやらないか程度の差なんだと思うよ
ネットゲームはそろそろ終わりだろ
146 :
デフォルトの名無しさん :2013/10/27(日) 14:26:28.00
維持費のかからない個人ネトゲは今ぐんぐん勢いを伸ばしてるよ。 ちょっと前なら国税庁はネットオークションで荒稼ぎしてる奴に目を付けてたけど、 今では完全に個人ネトゲの運営者に目を付けてる。
>>143 印象操作じゃないものに「印象操作乙」って返すとただの馬鹿に見えるよ^^
プログラムで金を稼ぎたいなら、 C言語勉強してネトゲ開発ってのが最速だな。
●ンゴに就職ですね
150 :
デフォルトの名無しさん :2013/10/27(日) 15:27:42.65
モバゲーンゴ?
>>134 プログラム書くのはいいけど、そういう、人に金を払わせる仕事がすごい面倒くさい。
得意な人もいるんだろうけど。
ゲームでもなんでもいいけど、 作ったとして、凄いのができたとして、 それをどうやって世間に知ってもらう?
153 :
デフォルトの名無しさん :2013/10/27(日) 15:51:04.63
>>151 アイテム課金ならWebマネーで払わせればいいんじゃね?
これなら商品と同時交換なわけだから問題ない
154 :
デフォルトの名無しさん :2013/10/27(日) 15:57:21.66
ゲームで一発当てるって天才肌にやつにしかできないことなんだけどな。
>>154 送信ボタン押す前に lint 通したほうがいいぞ
>>155 それがlint通る文章なの?
どんなクソプリプロセッサ使ってるの?
>>155 それほしい、助詞の間違いが最近多くなってきた、いよいよお迎えか?
辞書レベルの間違いをlintが検出できるわけ無いだろ
>>158 誠に申し訳ございませんでした。
以後気をつけます ペコ
160 :
デフォルトの名無しさん :2013/10/27(日) 17:56:10.62
何で一発当てる話になってんだ? 月10万程度の小遣いが稼げればいいって話じゃなかったのか。
その個人ネトゲって普通のMMOみたいなやつ? サーバーとかむちゃくちゃ金かかるんじゃないの?
なんでネタにマジレスしてんの?
163 :
デフォルトの名無しさん :2013/10/27(日) 18:11:14.01
>>161 規模によってはそんなにかからない
同時接続十数人程度のMMORPGなら
一昔前の中古ノートでもいける
4年くらい前のPCをMMO鯖にしたら同時接続数ってどのくらいまでいけるんだろうな、回線は十分だとして。
一昔前とか4年くらい前とか言っても、 その当時だってピンからキリまであるわけで
JSで一万、Cで200程度
167 :
デフォルトの名無しさん :2013/10/27(日) 18:19:57.51
>>166 JSって何?
Javaサーブレット?
Cの50倍も処理できるの?
Cでも非同期にすれば500程度は行ける
>>168 最初から非同期だしそのためのLibraryがあるから最近のMMORPGは鯖側JSが多い
クライアントと接続しっぱなしで通信を処理するスレッドを別に用意して、 ゲーム本体と分離すればいけるか。 ゲーム本体とはキューを介してやりとり。 これでCでも2000くらいはいけるだろう。
Cで2000行くには64プロセッサ程度必要 わざわざそんなことしなくてもJSならパソコンに毛が生えた程度の鯖で行ける
非同期ってタイムラグありそうだが
174 :
デフォルトの名無しさん :2013/10/27(日) 18:46:27.82
J.S.Bach
MMOって普通タイムラグあるでしょ
MMORPGのスレッドってこんな感じで分ければいいの? ・メインスレッド(初期化、終了処理、各スレッドの監視) ・通信スレッド(クライアントとのコネクションを維持したまま、データの送受信を行う) ・待ち受けスレッド(クライアントから接続要求がきたらユーザー名とパスワードをチェックし、パスしたら通信スレッドにソケットを渡す) ・ゲームメインスレッド(通信スレッドとのキューの読み書き、MOBの制御やダメージ計算、アイテム管理、データの読み書き) ・管理スレッド(WEBIFなどから管理のために接続してあれこれするスレッド)
177 :
デフォルトの名無しさん :2013/10/27(日) 19:12:40.22
Javaはオワコンの癖にしぶといなと思ってたけど、MMORPGに使われてるのか。 MMORPGのために生き残ってるなら全然オワコンじゃないな。
179 :
デフォルトの名無しさん :2013/10/27(日) 21:22:16.62
誰か
>>176 に突っ込み入れろよw
下手に突っ込み入れると低スキルがバレるから無理かw
古典はハイドン・モーツァルト、せいぜいベト先生まで
>>176 >待ち受けスレッド
これいらないだろ。
182 :
デフォルトの名無しさん :2013/10/27(日) 21:50:53.86
>>176 >ゲームメインスレッド
これいらないだろ。
>>182 いちいちスレッド化しなくても、どっちみち認証前にソケット自体は作られてしまうんだから通信用スレッドで処理すればいい。
認証するためだけにスレッド走らせるのはコストが大きすぎる。
185 :
デフォルトの名無しさん :2013/10/27(日) 22:00:59.27
接続要求はポーリングするの?
>>185 >>186 いちいちスレッド化しなくても、どっちみち誰も使わないんだから終了処理すればいい。
189 :
デフォルトの名無しさん :2013/10/27(日) 22:03:48.03
解の公式使って実数解、重解、虚数解のときのxの解を求めるんだけど 動くことは動くんだけど計算式に#とか紛れ込んでておかしく表示される ちょっとだれか教えてください。 #include<stdio.h> #include<math.h> int main(void){ double a,b,c,D,sd,x1,x2,x3; printf("Input a, b and c ->"); scanf("%lf%lf%lf",&a,&b,&c); a!=0; D=(b*b)-(4*a*c); sd=sqrt(D); x1=(-1*b+sd)/(2*a); x2=(-1*b-sd)/(2*a); x3=(-b)/(2*a); a!=0; if(D>0){ printf("Imaginary Root\n"); printf("x=%.3f\n",x1); printf("x=%.3f\n",x2); }else if(D==0){ printf("Imaginary Root\n"); printf("x=%.3f\n",x3); }else{ printf("Imahinary Root\n"); printf("x=%.3f + %.3f\n",(-1*b)/(2*a),sd/(2*a)); printf("x=%.3f - %.3f\n",(-1*b)/(2*a),sd/(2*a)); } return 0; }
>>184 だめ
攻撃されたらどうすんの?
ブルートフォースアタックとか何MBものデータを送り付けられたりとか
その対応を通信スレッドでやるとタイムラグが大きくなるだろ
認証時のユーザー名とパスワードに100MBのデータとか送り付けられたら面倒
認証前だとアカウント凍結するわけにもいかんし
IPで弾くにしても非固定だと効果が薄いうえに
関係ないユーザーが次にそのIPを割り当てられたら
認証できなくなる
待ち受けスレッドがあれば、そこへの攻撃で認証に時間がかかったとしても
一度認証を通れば通信スレッドでスムーズに処理できるからタイムラグを少なくできる
認証通ってから攻撃してくる奴は切断してアカウント凍結
そうすれば次からは認証で弾ける
191 :
デフォルトの名無しさん :2013/10/27(日) 22:12:13.00
>>187 10くらいポーリングしていいんじゃないの?
いや、普通認証サーバーは認証サーバーで別に用意しない?
193 :
デフォルトの名無しさん :2013/10/27(日) 22:17:13.93
認証サーバからゲームサーバへソケット渡せないだろボンクラ
194 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/10/27(日) 22:21:45.33
ここへきてなぜかあぼーん入ったw
>>193 ソケット渡す必要ないだろ
何でソケット渡す前提なんだよ
[認証サーバー]―[DBサーバー]―[ゲームサーバー] って接続されてて、認証からプレイまでの流れは 1. 認証サーバーへ接続して認証されたらセッションキーが発行され、セッションキーとIPアドレスをユーザー名と関連付けてDBサーバーに保存する 2. クライアントは発行されたセッションキーを使ってゲームサーバーに接続する セッションキーは有効期限があり、ネトゲのタイムアウトと同じくらいの時間で非常に短い ゲームサーバーに直接攻撃しても、キーの長さ分しか読み込んで判定しないため、 たとえばキーが64byteなら100MB送り付けられても最初の64byteだけ見て切断する
199 :
デフォルトの名無しさん :2013/10/27(日) 22:40:01.64
Input a, b and c ->1 2 2 Imahinary Root x=-1.000+-1.#IO x=-1.000--1.#IO 続行するには何かキーを押してください . . . このシャープって何なの?
200 :
デフォルトの名無しさん :2013/10/27(日) 22:44:06.29
まあポーリングするくらいならサーバの方がいいわな
>>179 わけ方の思想が違いすぎて突っ込みいれようとおもったら全直しになっちゃう
承認って一つのスレッドでやんの? 非同期通信で? 接続を待ち受けるスレッドが1つあって、 接続がくるたびに承認用のスレッドを別に立てて そっちにソケット渡したほうがよくないか?
205 :
デフォルトの名無しさん :2013/10/28(月) 02:47:45.69
このスレにはMMOの接続/ログインの設計すらまともにできないボンクラしかいないのか
仕様書に従ってコーディングするだけの 電脳ドカタしかいないからね。
詭弁なのに?
>>199 非数であることを示している。
そのprintf()に到達する前にも何箇所かaの値を表示して味噌。
209 :
デフォルトの名無しさん :2013/10/28(月) 10:35:20.33
>>204 一瞬で終わる認証のためにいちいちスレッド立ち上げるのか
おまえら全然分かってないね。 ゲームで一番重要なのはキャラクタデザインとストーリーだよ。 プログラマなんて土方で充分
テトリスとか有名ゲーはみんなそうだよな わかるわ
MMORPGなんてストーリーあってないようなものじゃん。 ストーリーを意識しながらMMORPGやってる奴なんてごく一部だろ。
ストーリーとはイケメンと美少女がキャッキャウフフすることです
>>213 わかるわ
双六もストーリーすげえよな
人生ゲームとか壮大すぎて毎回泣くわ
イケメンとか美少女とか別にいらない 多少工夫しながら敵を倒したりキャラの能力上げたり 新しい必殺技を習得するのが楽しいんだろ
217 :
デフォルトの名無しさん :2013/10/28(月) 12:26:58.29
どっちにしてもMMOにするなら接続して認証するシステムが必要なわけで。
218 :
デフォルトの名無しさん :2013/10/28(月) 14:13:12.92
接続はいいけど、回線はどうするつもりだろうね 60fpsで1回のデータの平均受信サイズが16KBだとすると 1秒で960KB、約1MBの通信量だ 100人接続するだけで毎秒100MBの通信量ということになる 実測値で100MB/Sってけっこうきついだろ
PaaSがあるから自分で用意する必要なくね
PaaSなんか信用できるか!
ゲームの描画処理までサーバでやって、エンコードしたフレームをリアルタイム転送
描画処理までサーバ側でやるのか ずっとクライアント側でやるもんだと思ってた
>>221 ブラウザの履歴とかWebCam画像とかいろいろあるだろ
クライアントからサーバーへ送られるデータは、
位置情報がlong型なら4byteが空間座標+向きで16byte、
キャラのモーションがlongで4byteくらいか、
装備が全身10箇所で各longだと全部見た目に影響するなら40byte、
スキルなどのエフェクトの状態がlongで4byte、
合計64byte/frameくらいじゃね?
60fpsなら3840byte/s。
101人接続してたら、一人に送信するのはその人以外の100人のデータだから、
送信は3840000byte/s = 約3.8MB/s。
それが101人に送られるが、面倒だからざっくり100人で計算すると、380MB/s。
サーバーからの送信だけでもこれだけの回線速度が必要。
>>218 ,
>>221 が考えてるほどMMORPGの世界は甘くない。
もうちょっと勉強してからレスしような。
先のMMOで稼いでる知り合いとやらはその環境整ってるのか すごいな
227 :
デフォルトの名無しさん :2013/10/28(月) 17:46:55.21
380MBって一般家庭だと無理じゃん
なんで毎フレーム送るの? つーかキャラの動作よりアイテム一覧送信とか、 マップ切り替え時の取得のが重いはずなんだが
分かっていってる気もするけど、一応 100人同時にログインしていても位置やアクションデータを送受するのは近くの人だけ (上限あり、同じパーティの人は優先) 全員が全員に送られる(可能性がある)のはチャットログぐらい
>>225 すげーな
そんなヘボ実装を得意げに語れるなんて!
帯域と応答速度もごっちゃになってるな
>>228 アイテム一覧なんてログインしたときくらいだろボンクラ
>>229 それはポリシーにもよるだろう
遠くの他キャラが棒立ちしててもOKならそれでもいいんだろうけど、
遠くまでリアルにしようと思ったらそうもいかない
234 :
デフォルトの名無しさん :2013/10/28(月) 18:33:20.93
>>228 >マップ切り替え
え?
マップ切り替えってMow Loadingとか出す感じ?
それは明治時代のmmoだよ
今はシームレスな切り替えが主流
クライアントの環境に合わせて通信頻度を切り替えるくらい当たり前っすよハハハ ってことか
Minecraftみたいな複雑な3D多人数ゲーの自宅サーバが個人で建てられる時代にこんなホラが通用するかね
238 :
デフォルトの名無しさん :2013/10/28(月) 19:56:53.68
>>176 の通信スレッドって1つだけなのかな
1つだけだと100も接続あったらタイムラグがヤバそうだが
MMORPGならタイムラグが0.5秒もあったらもうゲームとして破綻するし
>>232 ログインした時だけって発想おかしい、
例え手持ちのみを指してるとしても、途中でリフレッシュもするよ。
アイテムログや監査や、セッション管理のがよほど重要だってのを理解してないだろ。
>>233 それも問題だよな。
強いモンスター狩るとかってパーティーに入ったけど、集合場所へ近づいて行ったらモンスターもパーティーメンバーも止まってるから
まだ始まってないのかと思ってすぐ近くに行く前に近くの雑魚モンスターを狩って棒立ちして待ってたら、何で攻撃しないのかと言われたw
もっと近付いたらみんな戦ってたよ。
241 :
デフォルトの名無しさん :2013/10/28(月) 20:13:06.17
すごく個人的な意見なんだけど、 かなり離れた高いところから見てもキャラにはちゃんと動いていて欲しい ビルの10階から町行く人々を眺めるような感覚を味わいたいことが多々ある
242 :
デフォルトの名無しさん :2013/10/28(月) 20:18:08.01
リアル3DMMOとかで、1km相当の範囲の人の動作を反映させるとかきついのかな?
それはどうしてもMMOでやりたいことなのか?
244 :
デフォルトの名無しさん :2013/10/28(月) 21:28:29.62
俺は別にやりたくないんだけど兄貴が留学する前に目標として置いて行った 宿題なんだよね。
245 :
デフォルトの名無しさん :2013/10/28(月) 21:44:00.84
>>243 うん、引きこもりだから実際そういう景色が見られるところに行くのはアレだし
でも擬似的にそこに行ったりしたいからライブカメラじゃ物足りない
どういう設定だよそれ
247 :
りんく :2013/10/28(月) 22:19:02.10
Cでゲームを作ろうと思ってるんですけど、作るための基礎(ポインタなど) ってどんなことがありますか?できればたくさんあげてもらえると嬉しいです。 ちなみに、ポインタはあんまり書けません。 本も読んでますがそれだけだと知識不足です。
Cでゲームは時代遅れ 他の言語をやれ
250 :
デフォルトの名無しさん :2013/10/28(月) 23:22:11.39
>>247 本を読んでも足りない部分はアルゴリズムとかだろ。
その辺りになってくると言語関係ない。
グラフィック扱いたいならWin32APIやDirectX使うけど、どちらも言語ではない。
DirectX使うならC++のクラス程度の知識まで必要。
どちらにしてもポインタは必須。
>>247 C勉強する前にはじめて読む8086読んでアセンブラの勉強してからにしたほうがいいんじゃない?
254 :
デフォルトの名無しさん :2013/10/29(火) 04:25:25.19
>>252 ねーよ
敵に攻撃当たった瞬間にダメ出るだろうが
>>252 ワロタw
0.5秒もタイムラグあったらゲームにならねえよ
FPSとかアクションゲーじゃ致命的
初心者スレだからなのか、想像で物事を語るやつ多すぎないか
>>247 ゲームならC++を使わないと厳しい。
まぁ、Cでポインタに慣れてからが良い。
あとMFCは、コード見ると無理矢理クラス化してて
見るだけで嫌になるから、Qtをインストールして
win32api 等をたたくのが良いと思うよ。
プログラム初心者なんですけど、アセンブラの間接アドレスとCのポインタって あんまり変わらないんでしょうか?
間接アドレスはポインタのポインタっぽいな。
直接アドレスで参照するのがグローバル変数で、 間接アドレスで参照するのがポインタだと思う。 違いは、Cでポインタをn個進めるのが、 アセンブラでは、バイトアドレッシングの場合、 (対象のバイト数×n)進めるのに相当するってこと
いつもダメ表示がすぐでるのならローカルで計算してるんだろう ローカルとサーバの矛盾をいかに誤魔化すかがゲームデザインの勘所だよ
263 :
デフォルトの名無しさん :2013/10/29(火) 12:53:05.93
ローカルで計算してたらチートされるのでは?
このスレを見てたらもしかして ネットワークカードもハイエンド使わないといけない時代なのか と錯覚してしまうな え、無線…? またまたご冗談を
>>263 最終的な計算と表示上の計算は別
あとでベリファイかけるよ
>>265 ???
分かりにくいから攻撃ボタンを押した瞬間から最終的に敵のHPが減算されるまでの流れを教えてくれ。
>>264 380MB/sとかってのは鯖側の話じゃないのか
蔵側は下り3.8MB/s、上り3.8KB/sって流れだったと思うが
268 :
デフォルトの名無しさん :2013/10/29(火) 14:09:06.98
鯖とか蔵とかバカっぽいからやめろよ
269 :
デフォルトの名無しさん :2013/10/29(火) 14:12:37.05
蜜墨蔵
>>264 380MB/sとかってのは沙亜芭亜側の話じゃないのか
苦羅威庵斗側は下り3.8MB/s、上り3.8KB/sって流れだったと思うが
>>268 句読点のない文章はバカっぽいからやめろよ。
>>272 引用元にそう言うなら、おまえの方が馬鹿じゃん(笑)
>>272 いきなり他人にタメ口とかDQNっぽいからやめろよ
>>272 ????????????wwwwwwwwwwwwっw???????????Wwwwwwwwwww???????????????????????w???????????
>>276 句読点のない文章はバカっぽいからやめろよ。
>>268 昼間からカキコとかニートっぽいからやめろよ
>>266 # 一例
攻撃ボタン押下
↓
┌サーバーに送信
│↓
│ヒット/ダメージ判定
│↓
│ダメージ量表示
│
│サーバーサイド
↓
ヒット/ダメージ判定
↓
HP減算
いや数値は完全にサーバー依存だよ 乱数が相手持ちなんだから、合わせるの無理だなんてすぐわかるだろ
281 :
デフォルトの名無しさん :2013/10/29(火) 15:45:36.05
フローってw こいつこんな認識でプログラミングできると思ってるのか?w
糞ワロタ
つかどうせヒット判定するんだから、 その返信パケットに仕込んきゃいいだけだ ごまかす意味がわからん
ちなみにMMOとかだとサーバー側からダメージや状態が一方的に送られてくる 多人数なんだから当たり前だよね
287 :
デフォルトの名無しさん :2013/10/29(火) 16:38:17.33
>>280 MMORPGでの敵のダメージ判定はいい加減だよ
MMORPGって敵のHPはみんな数値じゃなくてゲージで表示されてるよね
何でか分かる?
ダメージなんていい加減だからだよ
>>279 みたいに計算してて、クライアントではダメージが489と計算されて表示されて、
サーバー側では514と計算されて敵のHPから514引かれるような誤差が当たり前だからだよ
MMOでは日々多くのプレイヤーが一日に合計何百万回と攻撃するから
平均値と理論値がだいたい同じになるんだよ
だから多少の誤差よりも殴ってすぐにダメージを出す自然な表現のほうを優先するんだよ
TCPだから双方向ですよ(ドヤ顔)
>>286 否定するならまず根拠を述べようね知ったかぶりくん
>>289 >>285 をよく読めばどこがおかしいか分かる。
>>285 の言う通りなら敵に攻撃がヒットしてからダメージが表示されるまでに絶対ラグが出る。
291 :
デフォルトの名無しさん :2013/10/29(火) 16:49:42.08
ここ見てると、C使いって言っても俺と同じくらいのアホばっかなんだなって凄い安心する。
>>290 見えてなくてもラグは出てるよ
表示が途切れる時は帯域の限界とかで特に遅くなってるってだけ
本当に何も知らんのだな
憶測で物事を語ってる奴多すぎ 初心者は大人しく質問だけしてろ
>>291 それ書いたの反論先の人間だからw
まさか本当にTCPセッションと上位層のコマンドの区別もついてないとは
296 :
デフォルトの名無しさん :2013/10/29(火) 17:17:02.17
>>293 >見えてなくても
ゲーマーなら0.5秒もラグが出たら見えるし気付くが?
ヒットした瞬間にサーバーにそれを送信して、何百人も接続してるサーバーでそれからダメージ計算して、
それをクライアントに送信して、それから描画って0.5秒以上かかるよ
お前通信関係のプログラミングしたことないだろ
あと応答時間はモーションの発動する瞬間に既にパケット送っておいて、 早めに返す仕様とかに工夫してるんだよ アクション性が重要な物はもっとシビアで、ラグも平気で出る
UDPなんてFPSのボイチャくらいだろ。
>>296 かかるよって、かからないようにするんだよ馬鹿
お前いいかげん、実際にパケットキャプチャするでもいいから応答速度計れや
>>297 モーション開始時だったらまだヒットするかどうか分からないから無理
攻撃してもよけられるなんてざら
魔法とか特にモーション終わってさらにエフェクト出てからダメ判定まで1秒以上あったりするし、
その間にMOBが移動するなんてざら
301 :
デフォルトの名無しさん :2013/10/29(火) 17:27:14.73
>かからないようにするんだよ馬鹿 こういう寝言は仕組みを示してから言えボンクラ
>>300 だから先にサーバーに送って全て判定しておくって方法があるんだよ
現代のMMOではリアルタイム性が重要だから、ラグったら表示もラグる
応答が常時500ms以上かかる環境でプレイしてる馬鹿には言っても無駄か
何を送るの? 全てって何を判定しておくの? プレイヤーは何をするか分からないのに
304 :
デフォルトの名無しさん :2013/10/29(火) 17:38:42.51
>>293 >見えてなくてもラグは出てるよ
>表示が途切れる時は帯域の限界とかで特に遅くなってるってだけ
>>302 >現代のMMOではリアルタイム性が重要だから、ラグったら表示もラグる
>>303 もっと平たく言うのか?
サーバー上にある敵(やプレイヤー)オブジェクトなどはサーバーが計算してる。
だから、攻撃ボタンを押下した瞬間にコマンド送信して、
クライアント側の動作を伝えておけば、
画面上の表示までに、ヒットその他の応答を全て返せる
昔のMMOはこういう仕様も多い
そのヒットまでの間に、モーションのキャンセルなどがあるような、
アクション性の高いゲームは、普通にラグる
>>304 程度の問題だよ
500msなんて想定してるのは馬鹿としか思えないが
307 :
デフォルトの名無しさん :2013/10/29(火) 18:07:53.15
>>306 なんでわざわざラグる可能性のある実装をするの。
1フレも遅れずにダメ数値に誤差のない実装をしろ。
>>307 釣られてやんのw
普通はそういうラグゼロ実装だよ
俺の知り合いもそういう実装にしてるよ
こりゃ実際にプレイすらしてないな
>>309 お前最近のMMORPGプレイしたことないだろw
ラグも誤差もないよw
10年くらい前のmmoはラグあったな、でも最近のmmoはラグのない実装がほとんどだから滅多に見ないよな。 人口の多いmmoだと処理能力的にラグのない実装は今でも難しいっぽいけど、人口の少ない個人mmoなら余裕だろ。 FF14とかは人口多いから処理能力的に厳しいし、ラグあり実装だろ。 チョンチュン産のmmoは処理能力云々に関わらず実装が粗悪だから今でもラグありの実装が主流だったはず。
312 :
デフォルトの名無しさん :2013/10/29(火) 19:08:43.34
>>311 それってプレイヤーから見て自分のキャラクターだけが1フレームもラグってないってだけの話でしょ?
>>312 だろうな
0.5秒なら分かる君はちょっとネトゲの作りを勉強してから
出直すべきだと思う
ここはなにのスレでしょうか
昔はそんなラグゼロ()仕様があったけど、 今のMMOでそんな事したらチートされ放題だよ
見えない敵と戦うスレ
318 :
デフォルトの名無しさん :2013/10/29(火) 19:57:07.07
>>316 クライアントでヒット判定やダメージ計算するからだろボンクラ
320 :
デフォルトの名無しさん :2013/10/29(火) 20:15:32.55
リアルと同じ感覚で考えてるんだろうな
DQNのパンチが飛んでくる
→不確定要素もあるし殴られるまでどれだけのダメージになるか正確には分からない
→殴られた
→痛さや場所や怪我の具合を見てダメージを理解
こんな感覚をそのままコードにしようとするから
敵に攻撃したらサーバにそのデータ送ってダメージ計算とか
敵を攻撃したらクライアントでダメージ計算とか
そういう発想しかできないんだろう
リアルと違ってコンピュータ上の話なんだから頭使えよ
>>312 最初からその流れだっただろう
他人のラグまではどうにもできんよ
321 :
デフォルトの名無しさん :2013/10/29(火) 20:30:36.91
ニアカすればどうなってるかわかるよ。 A:殴る、B:防御 と入れてるとき B側は防御出来てるのに、A側ではスカってるとかある。 でも結果は同じだからニアカしない限り誰も気づかない。
ニアカってなんだろう…ニアカットとかそんな用語?
MMOのMOBの管理ってどうなってんだ? 過疎ゲーじゃない限り至るところに人がいるから、その周辺のMOBは全部アクティブだよね? 数百〜千匹くらい? MOBの構造体作って配列にして数百匹管理するのかね? struct MOB{ ... }mobData[1024]; とか? スゲーメモリ食いそう
メモリがどれだけ必要かは計算してから言えよ。 HP・・・4バイト MP・・・4バイト 攻撃力・・・4バイト 防御力・・・4バイト 回避率・・・4バイト 位置xyz・・・4×3バイト 向き・・・4バイト スキル・・・4×16バイト 外観・・・4バイト ヘイトリスト・・・4×16バイト 168バイト×1024匹=168キロバイト、こんなもんだろ。
325 :
デフォルトの名無しさん :2013/10/29(火) 21:12:19.67
それのどこにAIがあんの?
326 :
デフォルトの名無しさん :2013/10/29(火) 21:32:32.44
327 :
デフォルトの名無しさん :2013/10/29(火) 21:47:08.89
AIなんてメモリ上に置く性質のものじゃないだろ
>>319-320 あのな、ダメージはヒットしたかどうかの後の表示なんだよ
ヒットすら不確定ですって言うなら、
ユーザーは最初からHPバーだけ見るし表示の意義なんてない
実際にプレイすることまで考えろ馬鹿
329 :
デフォルトの名無しさん :2013/10/29(火) 22:11:58.01
ニアカは二個のアカウント。
330 :
デフォルトの名無しさん :2013/10/29(火) 22:32:03.91
>あのな、ダメージはヒットしたかどうかの後の表示なんだよ >ヒットすら不確定ですって言うなら、 >ユーザーは最初からHPバーだけ見るし表示の意義なんてない >実際にプレイすることまで考えろ馬鹿 ?
>>330 ユーザーは最初から確実な情報源しか見ない
実際にサーバー側でのヒット処理もダメージ処理も確定してないのに、
攻撃の度に表示される数値なんて、単なるエフェクトと一緒
どんな糞ゲーだよ
ニワカのことかと思ったわ
>>261 インデックスレジスタとかぁ
SP相対とかぁ
>>288 どっちからもコネクトできるやつはないのかねRS232Cみたいなやつとか
どの実装もとっくの昔にtcpがデフォルトに変わったろ
DNS, SNMP, RIP, DHCP, NTP,...
そらブロードキャストするのは無理だわな
>>335 TCPじゃなくてNIC直接操作すれば双方向になるよ(ドヤ
そこはIPだろ マジバカだな
342 :
デフォルトの名無しさん :2013/10/30(水) 00:26:15.31
>実際にサーバー側でのヒット処理もダメージ処理も確定してないのに、 >攻撃の度に表示される数値 48時間以内にこんな話出た?
>>342 じゃあ、一体いつの状態の表示なわけ?
ヒットが確定したあとの表示?違うだろ?
少しはまともに反論しろや
何がこんな話出た?だよ 最初から意味不明な妄想仕様語ってるてめえの話だよ
345 :
デフォルトの名無しさん :2013/10/30(水) 00:47:39.13
>ヒットが確定 これがどういう状態を示してるか知らないけど、 ダメージが表示されるのはヒットした後。 厳密に言えば、例えば剣で攻撃したら、剣が敵にヒット判定が出たその後、表示するんだよ。 厳密に言えばその順だけど同フレーム内の出来事。 そしてダメージはリアルと違ってヒットする前にあらかじめ計算可能でしょ。
>ダメージ処理も確定してないのに、 >攻撃の度に表示される数値 これマジで誰が言ったの? 該当レス番よろ
>>345 それは表示ダメージのヒットの判定がクライアントサイドで
サーバー側ではヒットが確定しないうちに数値を表示するって意味だろ?
ラグっても、実際にはギリギリ範囲外で当たってなくても、
表示だけはされる数値なんて最初から信用されるわけないんだよ
349 :
デフォルトの名無しさん :2013/10/30(水) 01:32:49.26
>ラグっても、実際にはギリギリ範囲外で当たってなくても え? クライアントで当たってるなら当たってる判定が出るだろ ラグが200msあるならサーバで200ms前のMOBの位置とキャラの位置くらい再現して当たり判定できるだろ
>>349 できねーよ馬鹿
回線止めりゃチートし放題だ馬鹿
351 :
デフォルトの名無しさん :2013/10/30(水) 02:03:02.34
>回線止めりゃチートし放題だ 回線止めるのと何の関係が?回線止めたところでMOBはサーバで動き続けてるんだよ? 回線止めてクライアントの画面でMOBを停止させてもサーバのMOBの位置は動き続けるから、 回線止めて止まったMOB叩きまくって回線開けて流しても、それはサーバで動き続けてたMOBの位置を再現すればズレるから攻撃も外れる、チートするだけ不利 ●キャラ ■MOBの実際の位置 □回線止めたキャラから見たMOBの位置 t=0 回線停止 ●■ t=1 1秒後 ●□■ MOBを殴る t=2 ●□ ■ 殴って殴って殴りまくる t=3 ●□ ■ 必殺技をぶちかます t=4 回線解放、殴ったデータを流す ● ■ 時間をさかのぼって実際の位置を再現して当たり判定を行うから サーバではt=1〜3の●と■の位置でチェックが行われる、つまり全部外れる あんたの言う通り確かに当たってないのにダメージは表示されるが チートしてる奴の画面でそうなるだけだから一般プレイヤーには関係ない
VC++を使ってるのですがカーソルの移動で十字キーを使うのはしんどいです emacsみたいな設定にできないんですか
>>351 >回線止めたところでMOBはサーバで動き続けてるんだよ?
それMOやFPSでしたっていう逃げ道が無くなるわけだが
>あんたの言う通り確かに当たってないのにダメージは表示される
それ同じ結論になりそうなんだが
>チートしてる奴の画面でそうなるだけだから一般プレイヤーには関係ない
そっちは一般プレイヤーが常に500ms以上ラグるから、先にダメージ表示するって主張だ
だから大いに関係あるんだよ
今度は敵も自分もサーバーとのラグ以上に速い動作はしないって前提で話を進めるか?
それとも先に表示すると整合性取れないと認めるか?
>>352 昔は epsilon(=emacs) とか wordstar とか選べたと記憶しているが今はどうなんだろう?
Emacs emulationってのを入れればいいんじゃね?
356 :
デフォルトの名無しさん :2013/10/30(水) 11:33:14.74
>それMOやFPSでしたっていう逃げ道が無くなるわけだが MMORPG限定の話じゃなかったのか? >それ同じ結論になりそうなんだが なにと? >そっちは一般プレイヤーが常に500ms以上ラグるから、先にダメージ表示するって主張だ >だから大いに関係あるんだよ 500msとか言ってないだろ チートしてる奴の画面でなるだけなのに一般プレイヤーに関係あるわけないだろ >今度は敵も自分もサーバーとのラグ以上に速い動作はしないって前提で話を進めるか? どこからそういう前提が出てくるんだ? >それとも先に表示すると整合性取れないと認めるか? 実際に先に表示して整合性取れてるがね
>>356 >500msとか言ってないだろ
お前さ、もう少し吟味してレスしろよ。
遅れるから先に表示するって主張なんだから、
遅れること自体否定したら、先に表示する意味ないと認めたも同然だろ。
358 :
デフォルトの名無しさん :2013/10/30(水) 14:58:44.01
>>357 遅れるとは言ってるが500msとは言ってない
200msかもしれないし、800msかもしれない
クライアント側で攻撃がMOBにヒットしたフレームにサーバにデータを送った場合、
サーバ側からダメージの計算結果を同じフレームに得ることが保証されないと言っている
だからそれは現在ではかなり解決されていて、タイムラグが100msのプレイヤーも500msのプレイヤーも、
クライアントで攻撃がヒットしたフレーム(見た目のラグ=0ms)でダメージが表示される実装について話している
但し、100msのプレイヤーも500msのプレイヤーもMOBに対して攻撃した場合の、
それぞれのクライアントで見た自分のキャラとMOBの間でラグが発生しないという話であって、
それぞれのプレイヤーがお互いを見れば600msのラグが生じる
たかだか0.5秒にこだわるゲームヲタは気違い。 社会に出てみろ、バスでも何でも0.5秒くらいいくらでも遅れるから。 ゲームヲタってやっぱり気違いなんだな。
360 :
デフォルトの名無しさん :2013/10/30(水) 16:21:42.39
>>359 社会は広いよ
バスの遅延時間をナノ秒以下で気にするところもあるし
イプシロンロケットが発射直前で止まった原因もそれだな
コンパイラってやつをインストールするには絶対に住所年齢などの個人情報をどこかに登録して手に入れる方法しかないんですか? 安心できるコンパイラを使いたいのですが個人情報は売りたくないです
最近はコンパイラってパッケージ販売してないの?
366 :
デフォルトの名無しさん :2013/10/30(水) 17:12:25.27
>>363 金払うんでなければ偽名捨てアドでもいいし
367 :
デフォルトの名無しさん :2013/10/30(水) 17:14:02.04
イプシロンのOSはなんだったんだろ もちろんRTOSだよね
368 :
デフォルトの名無しさん :2013/10/30(水) 17:15:41.97
コンパイラじゃないものをコンパイラと呼んでいる疑惑
バス違いか
373 :
デフォルトの名無しさん :2013/10/30(水) 20:41:08.30
ユニバーサル尻アル
↑ブスッ
375 :
デフォルトの名無しさん :2013/10/30(水) 20:50:27.60
ブラゲはフラッシュが固まっても勝手に戦ってるときあるよ。 これもニアカするとわかるよ。 まあ勝手に戦って負けるんだけどね。
376 :
デフォルトの名無しさん :2013/10/30(水) 21:06:40.64
大阪にはユニバーサル シリアル ジャパンがあります
wwwwwwwwwwwwwwwwwwww
上は誤爆
>>374 女の子にペニバンでアナル突いてもらってみ。
上手い女の子にされると骨抜きになるよ。
もう恥ずかしいとか何とか言ってる場合じゃなくなって男でもよがり声上げて悶えるよ。
腰も頭も完全に溶けてもう何されてもいいって状態になる。
もっと上手い女の子になると開発して射精なしでアナルでイけるようにしてくれたり、
そうやって開発してからは寸止めや生殺しで気が狂いそうになりまでねちっこく責めてくれる。
しかもアナルでイった場合は賢者モードにならずに快感がずっと尾を引くから、イった後もゆっくり動かされたりするとたまらない。
何回もされたことあるけどあれはヤバい。
そういえば、全然関係ないけど SUNとかHP-UXとかAIXとかNEWSとかって もう完全に息の根が止まった?
381 :
デフォルトの名無しさん :2013/10/30(水) 21:36:40.48
SUNは虫の息 今度のアプデで更に人が減ると予測されてる 加速すぎてすでにMMORPGとしては機能してないけど
AIXはDB2との抱き合わせでまだあるんじゃね? HP-UXは名前忘れたけど冗長構成組めるFSがあって テレコム系で使われてた希ガス NEWSはさすがに滅んだだろ
k&rを勉強してsqlite位なら小さいし読めるかなと思ったらifdefの山だし英語だしで諦めました 将来的に英語は勉強するんでとりあえずもっと簡単なアプリとか自分の環境以外のifdefをまるごと消せるツールを教えてください 環境はubuntu12.04です
switch 文 で default を使う場合なのですが。 参考書の例では、全ての case の後、つまりswitch文の最後に記述されている ことが多いです。 switch() { case 1: break; case 2: break; default: } ところがネット等で、たまに case の前に default を使っているソースを見かけます。 switch() { default: break; case 1: break; case 2: } この場合、実行してみると default は「1 と 2 以外」という感じで、一応動いているのですが。 case よりも前に default を置く記述方法は、C言語の仕様としては正しい使い方ですか?
正しい
分かりました、ありがとうございます
ifdef消すツール…プリプロセッサがまさにソレ たぶん思ったものと違う動作をするだろうけど マジレスすると、htags使うと少し幸せになれるかも
388 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/10/30(水) 23:18:25.86
>>388 ここにくるまえにググって読んだときはいちいち指定しないと使えないものかと通りすぎましたが環境によって自動で出来るのだったらかなり理想的なので明日実験してみます
>>387 プリプロセッサ後のソースは上級者向け過ぎますw
globalは使って感動しました。geanyより読みやすかったけど知らないdefine定義がいっぱいあって結局挫折し自動化を期待してここにきました
emacsでhideif
>>356 >チートしてる奴の画面でなるだけなのに一般プレイヤーに関係あるわけないだろ
ラグスイッチじゃチートかどうかなんて判別つかないじゃん
>>391 emacsでglobal使えるとは。
hideifはたぶん求めていたそのものです
問題はemacs
敷居が高いですが試してみます
ifdefを除去するツールはこれらを試して後程報告します
簡単なアプリって皆さんは何から始めたのか教えて頂けたら嬉しいです
普通は、何か作りたいものがある(作る必要がある)から、Cを習うんだが
アプリなんか作ってどうするのよ 周りのみんなは受験勉強やら自己啓発で資格取得やら親しい友人と親睦深めたりしてるのに プログラミングなんかしてても受験、就職、出世、何の評価にも繋がらないぞ しかも10年も経てば今やってることなんざ時代遅れの何の役にも立たない糞知識と化すの分かってるのに 時間とエネルギーの無駄TOEICの勉強でもしてた方がなんぼかマシだったな残念
受験には役に立ったな 就職にも少しは役に立ったかも知れない たしかに出世には役に立たなかったし 人間関係においては害ですらあった
あと語学で言えば 英語はもちろんだけど これから役に立つのは ドイツ語 フランス語 中国語 朝鮮語 だよ 三国人は嫌いだけど 敵を知ることは大事
398 :
デフォルトの名無しさん :2013/10/31(木) 13:04:50.60
ヘブライ語やヒンディー語もいりそう
Cは通過点
objective-cでアプリ作ろう!
>>394 違う
C はコンピュータエンジニアが最低限学ばなければならないイロハのイ
Cは基幹部やらコマンドライン専用機 それ以外もできなくはないがする必要もない Cでアプリを作ろうとするのがそもそもの間違い C++ならまだなんとかなるかもしれんが モバイルは人気だしJavaでもobjective cでも使えば何か出来るんじゃない?
プログラミング言語を「専用機」と言うのは確かにユニークだな。
405 :
デフォルトの名無しさん :2013/10/31(木) 17:10:02.14
そうは言ってないだろ
>>402 こいつアプリ(アプリケーションソフトウェア)の意味も分かってないなw
ほんまに C を少しでもかじったことあるんかいな?
408 :
デフォルトの名無しさん :2013/10/31(木) 18:11:15.57
ではプログラム言語を基幹部とも言っているのか?
アスペなの?
411 :
デフォルトの名無しさん :2013/10/31(木) 18:49:02.44
言おうとしてることはなんとなくわかるな。
413 :
デフォルトの名無しさん :2013/10/31(木) 19:02:31.99
厨語翻訳β 0.32s - Cはシステム記述やコマンドのような低レイヤに使うと良い。 - ユーザーに近い層も処理できるがあえてそうする必要は薄い。 - 応用ソフトはCよりC++を使って楽するといい。 - 人気のモバイルはJavaやObjective-Cを使うのでは? だから何?って程度の話のようです。
Cをアセンブラ、C++やJavaをCと置き換えて
>>402 を読み換えたら分からんでもないな。
二昔前、MSXやPC88などでのゲーム開発はアセンブラだっただろう。
一昔前、PC98やWin95はCになりアセンブラで開発なんて普通は考えなくなっただろう。
現在は、C++やC#やJavaなどを使えば良いのであって、わざわざCで書かなくても良いと思わないか?
Cを知っているに越したことは無いが、必須ではない。
パフォーマンス(速度・サイズ)の必要な場面ではCが活きるだろうけど。
415 :
デフォルトの名無しさん :2013/10/31(木) 19:08:51.60
そう言いたかったんだろうね。
次々と馬鹿が湧いてくるな てか、自演?
417 :
デフォルトの名無しさん :2013/10/31(木) 19:19:39.98
俺が自演するときは「Cなんか時代遅れ、Perl同様のゴミ、これからはJavascript」という 文脈で語るけどね。 一日200レス付くのを目標にする。 なんでこのスレだけ勢いあるの? ↓ 俺が自演したから。 こんな感じ。
418 :
デフォルトの名無しさん :2013/10/31(木) 19:26:39.67
質問なんですが、 関数に変数のポインタを渡して初期化してもらう事をライトバックって言いますか?
>>383 です
とりあえずの報告
unidef:やはりシンボルを指定しないと消えない
hideif:emacsの使い方で困ったがコードを畳むだけなので便利。include元で定義されても関知しない
ifdefを消したい一番の理由が自分の環境以外に関係する部分を削除することなので(_WIN32_WCEってなんだろうみたいなやつです)include元を調べなかったら僕の用途には向かないということになります
globalを使って一つずつ調べるしか無さそうです
作りたいものというかsqliteとかnginxが読みたくてCの勉強を始めたのでもっと小さなものを探してもう一度頑張ろうと思います
>>421 あなたは日本人ですか?
「いろはのい」と言った場合の「いろは」は、いろは47文字を指します。
visual studio 2010のインテリセンスなんだが ctrl+space打たないと出てこない。 何故だ?有効になってるんだが。 テンプレはwin32のコンソールです。
>>419 どっちかというとコールバックが‥‥全然近くないねえ
>>419 記憶装置の書き込み方式と混同するから言わない
426 :
419 :2013/11/01(金) 05:28:57.34
>>424 ,425
ありがとうございます。
やっぱりその意味では使いませんよね。
>>419 言わない。
キャッシュ制御でライトバックと言う語が用いられていて、そのイメージがついてるから。
>>419 の意味でライトバックとか言ってる奴はあまり知識ないから、無視できるなら無視すべき。
無理なら、適当に話合わせときゃいい。
C/C++は知ってて当たり前 今普及してる言語のほとんどは C/C++をもっと判りやすく使いやすく便利にしたものだから
>>401 今時Cを学ぶ必要がある人間は少ないだろう
Cが必要とされるのは低レイヤだけ
ゲームや言語処理系はC++だし
430 :
デフォルトの名無しさん :2013/11/01(金) 09:59:57.26
ガチ C なものはそこいら中にあるし ゲームが C++ だけって違和感ありあり 言語処理系を C++ で書こうとした禿は反対の嵐に遭遇した
431 :
デフォルトの名無しさん :2013/11/01(金) 11:12:19.37
コールバック関数ってイベント駆動型関数以外に何かありますか? イベントのみですか?気になったんで。
システムから定期的にコールされるのもコールバックって言うけど。
標準関数の qsort に渡すのもコールバック関数だべ 抽象配列(コンテナ)の比較をイベントじゃないと考えるなら
定期的っていうのも、イベントといえなくはない?
再帰関数はコールバックといえるの?
436 :
デフォルトの名無しさん :2013/11/01(金) 11:28:45.21
437 :
デフォルトの名無しさん :2013/11/01(金) 11:29:43.10
バックじゃねえ
俺の認識では インターフェースとして 関数のポインタを与える形で渡す ような奴
関数ポインタを渡して呼んでもらう関数のことだな。
要は割り込みだろ
違います callback、日本語で言うコールバックの意味を考えれば分かるはず
>>439 cにインターフェースはない
javaにはある
444 :
デフォルトの名無しさん :2013/11/01(金) 12:16:01.77
>>437 呼び出される関数がコールバックだとするなら
コールバックでない関数は割り込みハンドラだけになるぞ
>>443 文法だけやっとおぼえたのか
それともJavaのインターフェイスとわずかでも違うものは
インターフェイスではないという傲慢か
445 :
デフォルトの名無しさん :2013/11/01(金) 12:20:11.87
>>444 C言語にはインターフェイスがない
演算子以外のトークンは全て関数
446 :
デフォルトの名無しさん :2013/11/01(金) 13:03:06.48
C言語の説明だけど点数で評価してくれ。 C言語とは今から50年〜60年前にアメリカで開発された高級プログラミング言語である。 当時はパソコンが無かったためC言語は理想的な言語とされ、実用化されることはなかった。 1970年頃からコードを入力できるパソコンが開発され、C言語は学問機関や研究所に普及するようになった。 1990年中ごろにWindows95が発売され、C言語を使用できる環境も同時に発売された。 これによって一般人も簡単にC言語が組める時代に突入した。 現在、工業高校や専門学校、大学など情報学科ではまず最初にC言語を習う事になっている。
>>446 名誉毀損以前に風紀紊乱罪かわいせつ物頒布等の罪で逮捕されるレベル
>>.445 恥ずかしすぎる…
おまいらは馬鹿なんだから黙ってればいいのに… 小学校の時、母ちゃんに言われただろ?
ネタだよな?
Wikipediaによると
> C言語(Cげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって作ったプログラミング言語である。
らしいがデニスリッチー氏はもっと前、そうだな、1956年頃に既に構想はあったかも知れんな。
>>446 の通り理想的な言語として、彼の頭の中に。
>>430 歴史的経緯以外だとまともに今からCで作るなんてあり得ない
処理に速度が必要な科学技術計算でもnumpyですむし
どこ見たらそこいら中にあるんだよ
numpy の中身は...いや なんでもない
>>457 Cがそんなに優れてるならガワつけないで直接C使えば
逆だろ C言語が糞だというならセルフホストすればいいだけだろ? なんでしないの?
>>459 だから低レイヤにはいいって言ってる
バカなの?
今Cで作ると有難がられるソフトってどんなソフト?
挿したボードのドライバーとやりとりするライブラリ
463 :
デフォルトの名無しさん :2013/11/01(金) 16:40:59.80
>>461 出来上がってしまえば何でも同じじゃないの?
>>465 どういう発言かよるが、
できあがる品質を考慮していないなら全然違う
467 :
デフォルトの名無しさん :2013/11/01(金) 17:10:17.48
検索エンジンで「Ctrl+F」で語句検索できるようなソフトCで作りたいんですが さすがに不可能ですかね?
>>461 ユーザが実行したバイナリで不具合発生時に吐かれるスタックトレースを受けて
デバッグする場合、Cのスタックトレースは追いやすいがC++の吐いたスタックは
解析が難しくなる。
結構重要だと思うんだけどな。
>>467 検索エンジンへのアドイン?
Googleの検索画面とかを想定してるんだったら、あれは手元PCにエンジンは無いけど?
組み込みはCだよ ヒープ使っちゃいけないような奴
使っちゃいけない、というか無い場合もあるんだよな。 RAMはスタック256bytesのみ、とか。
>>466 品質どうこうは関係ないだろ?
言語には
473 :
デフォルトの名無しさん :2013/11/01(金) 18:42:52.92
>>456 ほら、君の大好きなそれ
作ったのは学生さんだよ
スタックは8段までで RAMはコードとは別空間ですが
コードはROM。 ワークエリア(グローバル変数)やスタック(リターンアドレスとauto変数)を わずかなRAMで色々やりくりして使う。
476 :
デフォルトの名無しさん :2013/11/01(金) 21:05:27.38
>>471 いや、RAM がそれなりにあっても使っちゃいけないと言うこともある。
実行時間が保証できなくなるから。
>>477 それはシステム構成に起因するものではなく、
処理の都合に起因するものだよね。
MMUに向かってページ切り替え依頼を出したりするからな ページメモリ切り替えて読んで書き込んでページメモリ切り替えて戻ってきてやっと次のPCへ掛かるとかなんかクラクラするだろ?
>>479 そういう都合があるのですね。なるほど盲点。
ただそれだと保持するデータはレジスタやりくりになると思うんだけど、
そうなるとCで制御し切れるんでしょうか。
register int i; とかインラインアセンブラ多用ですか。
あ、いや、レジスタのみでやりくりですか?とは極端だったかな。 ページ(メモリウィンドウ・バンク)内で処理をおさめる、という意味かな。
ポインタを倍化しといてimmediate だったらそのままIO命令を突っ込み variable だったら上位で分岐。 よっぽどムダに柔軟なコンパイラでもなけりゃスタックは境界を越えない生ポ平屋造りで相対的にチョッ早や
>>478 何を言いたいんだ?
>>480 ハードリアルタイムでググってこい。
ブレーキ踏んで 10秒後にちゃんと効く車に乗りたいか?
て、言うか時間を守れると言うのも、信頼性の一部だよ。
プログラムでも実社会でも。
>>484 malloc/free使わないのが、時間制約だけの問題だと思ってるの?
すごいね、へー
486 :
478 :2013/11/02(土) 12:01:37.12
>>484 > 何を言いたいんだ?
>>477 が
>>471 に対して
> いや、RAM がそれなりにあっても使っちゃいけないと言うこともある。
というから、ローカル変数やグローバル変数すら使っちゃいけないのか…?
と思って
>>484 を書いたんだ。
>>477 が
>>470 の話の補足としてバンク切り替えやmalloc/freeも考慮に入れた話だとしたら
「RAM がそれなりにあっても使っちゃいけない」場合があるのはまあ分かるんだが
>>471 の構成だったらその可能性は普通考えないじゃない?
だから
>>478 と書いたのであって
>>486 × > というから、ローカル変数やグローバル変数すら使っちゃいけないのか…?
> と思って
>>484 を書いたんだ。
○ > というから、ローカル変数やグローバル変数すら使っちゃいけないのか…?
> と思って
>>478 を書いたんだ。
488 :
デフォルトの名無しさん :2013/11/02(土) 16:13:30.54
スレッド5つ立てて 全スレッド内で while(1){ usleep(1); } かましたらCPU使用率が50%越えるがこんなものかね? スレッドがこの程度の負荷のかかるものかどうか知らんから質問 CPU 2.8GHz デュアルコア ちなみにApacheのhttpdは0〜0.3%程度
>>485 malloc/free使わないのが、時間制約「だけ」なんてどこにも書いてないんだけどね (w
>>488 I/O待ちが無く割り当てられた時間全てを使い切るから一見高負荷に見える
493 :
デフォルトの名無しさん :2013/11/02(土) 16:55:26.14
Quick C 懐かしす
494 :
デフォルトの名無しさん :2013/11/02(土) 16:58:15.28
>>491 そういうことか
心配おっぱいナッスィング!ってことだな
サンクス
>>492 ちゃうわァホ
Asioっぽいものを実装すると、Windowsではプロセッサを使い切ってしまうけど、 Linuxはかなり余裕があるよ。 Linuxはスレッドが弱点なのかな。
芝エビって高級食材なんですかね?
きときと
芝エビ、小エビ、芝浦で取れたエビ、ポインタ なんか文章つくろうと思ったけどポインタもわからんし 今回の件もよくわからん
シャンソンの女王、エビノ・ピラフ
500 :
デフォルトの名無しさん :2013/11/03(日) 13:48:56.27
選り好みくすキーボード
血液型性格判断とかを信じてるやつは例外なく池沼。 真っ先にプロジェクト要員から外す。 異論は認めんし異論を唱えるやつも外す。
502 :
デフォルトの名無しさん :2013/11/03(日) 15:49:16.29
1秒間に何十回と頻繁に呼び出されるような関数の変数ってstatic付けといたほうがいい? メモリの確保が最初だけだから速くなる? 体感で分からない程度でも理論上速くなるなら付けとこうかと思うんだが
「付けてみたらたまにおかしな動きをするようになった」とか言い出す悪寒。
何十回かよw 十万回くらいなら意味あるかも。
B型は嫌われるからなあ。 血液型で性格判断されたらたまらんよなあ。 B型にだっていい人はいる。 そう思ってほしい。 まあいないんだけどさ。
>>502 staticってあんま速いってイメージないな
auto変数なら大量に宣言してなきゃレジスタに割り付けるだろうし
>>505 >B型にだっていい人はいる。
この発言自体が池沼
おまえはプロジェクトから外す。
static つけなきゃレジスタに割り当てられたかもしれないし... あと、static だと最終結果をメモリーに書き戻さないといけないし... マジで百害あって一利なし
はっきり言ってやろう。 全員AB型で編成したチームは協調力ゼロだったが、全て完璧にミッションを終了した。 彼らは他のメンバーの血液型を全く気にしなかった、てか、興味も示さなかった。
>>502 staticじゃない変数は、多くても少なくても関数呼び出しのスピードに影響ないよ。
関数中の変数でstatic付けるのは、前回の変数残したい場合か、スタック溢れるほどでかいメモリ食う時くらいか
AB型も裏表があると言われるよなあ。 AB型にだって正直な性質の人もいる。 そう思ってほしい。 まあいないんだけどさ。
static const か const static かそれが問題だ
>>510 実装によるよ
スタックポインタをずらして領域をアロケートするときに 64KB 以下と以上で命令長が変わるプロセッサーもある (68K とか)
515 :
デフォルトの名無しさん :2013/11/03(日) 16:37:59.00
なんかよく分からないけど付けないほうが良さそうだな 付けずにいくよ ありがとう
>>514 じゃあやっぱ変数のサイズはなるだけ小さいほうがいいんだな。
俺もどっかで見た
ずん?みたいな名前の芸人に似てる
>>511 >スタック溢れるほどでかいメモリ食う時
は malloc() だろうに
>>516 他が全く同じなら
それでも微々たるもんだし、そんなこと気にする前にアルゴリズムとかデータ構造気にしろとは思うけど
>>523 いつもヒープ禁止な環境なもんで
RTOSのタスクスタックに影響出るような場合に、ってことで許してつかあさい
>>516 一部の環境でたまに差があるって程度で、基本は変数のサイズの違いで関数呼び出しに差が出るってことはないと思うよ。
528 :
デフォルトの名無しさん :2013/11/03(日) 18:15:37.82
マルチスレッドにしたら勝手にマルチコアを活用してくれる?
>>524 IT関連のテクニカルタームを検索するとよく引っかかるが、
全然役に立たない検索作業のノイズページを書いてるゴミクズ
マロック
俺はエムァロケって言ってますけど。
ケはないわ
533 :
デフォルトの名無しさん :2013/11/03(日) 19:52:12.82
534 :
デフォルトの名無しさん :2013/11/03(日) 20:30:42.77
ゲームの画像出力も何もないスケルトンのスレッド作ったんだけど15735fpsをマーク! はえーーーwwwwwwwwwwwwwwwwww
俺も去年そんな感じのやったけど997fpsしか出なかった。
じゃあ俺は60fpsぴったり
537 :
デフォルトの名無しさん :2013/11/03(日) 20:47:15.69
ソケット作って入れたら1500fps近く下がった・・・・・ それでもまだ14000fps前後wwwwwwwwwwwwwww
意味の無いfps値でなに自慢してんだか
>>539 お前どうせ2000FPSくらいしかでないんだろ?
ダッセ
フレーム作成してないのにfpsってちょっと意味わかんないですね
連続で書き込むな低スキル
547 :
デフォルトの名無しさん :2013/11/03(日) 22:01:10.21
潮の満ち引きのアルゴリズムを教えてください 検索しても出てきません 満潮時刻と干潮時刻さえ計算できればいいです
550 :
デフォルトの名無しさん :2013/11/03(日) 23:19:34.25
>>549 プログラムにしたいから計算してくれたら困るw
上のやつでいいよ、ありがとう
月と太陽と地球の位置関係だから、
月の公転周期と、地球の自転公転周期の簡単なsin、cosの式になると思ってたけど
そうは問屋が卸さないようですね
551 :
デフォルトの名無しさん :2013/11/04(月) 02:42:43.96
CでPostgreSQL操作してたら、データを返すコマンドが成功したときにPGRES_TUPLES_OKが返ってくるが、 これは何と読めばいいのだろうか、特に真ん中のやつ。 ・・・チュプルズ? .
552 :
デフォルトの名無しさん :2013/11/04(月) 02:49:38.96
タプルだろ知障
553 :
デフォルトの名無しさん :2013/11/04(月) 03:23:53.40
PGRES_TUPLES_OK==ピージーレス・タプルだろ知障・オーケー
ん?
>>550 地軸の傾きとか
海水の粘性とか
海底や湾岸の地形とか
色々考慮した補正をしてるのかな
金星がよくみえる。宵の明星
重力の到達する速度とか
>>551 日本語だとタプル
英語だとあなたの言った読み方が多い
>>559 20年前の記憶ではwindowsとUNIX系では配列の仕組みが異なると思う。
この時代にunixでプログラム書いてる奴が、
>>559 みたいな書き込みするかお
組み込み系でクソッタレなmemcpy実装してて駄目なのもあるがそんんあもんはそんな糞処理系で動かすようになってから考えていい
memcpyは自分で実装できるとして、配列って境界調整関係なくパディングなしで配置されるのかなと思って
パディングしたらその部分がもったいない
元々paddingしてる型なら個々に当然入るが、それがどうしたと
569 :
デフォルトの名無しさん :2013/11/04(月) 16:22:12.39
returnの詳しい解説のサイトなどございますか?
ダメだったら組み直せばいい 直して他に影響が出る部分でもないだろう とりあえずテストコードをつけといて忘れろ
>>569 BOOL KAISETSU_ARIMASUKA() {
return NO;
}
>>569 returnはスタックポインタが変わるの
わざとやってるだろw
if(...) と#if ... の違いって何ですか
処理する段階が違う ビルド(広義のコンパイル)は大体 ・前処理 ・(狭義の)コンパイル ・アセンブル ・リンク って段階に分かれていて、#ifは前処理時に、ifはコンパイル時に それぞれ処理される
576 :
デフォルトの名無しさん :2013/11/05(火) 07:38:09.97
>>574 #ifはコンパイル時点でソースコード自体を変えることが出来るもので(Windows用、Linux用の切り替えとか)、
ifはソースもコンパイルされた実行形式も同じで、実行時にその時の変数の値とかを見て動的に処理を変えるもの
577 :
デフォルトの名無しさん :2013/11/05(火) 11:22:35.28
PC1にある画像ファイルをマイコンで取得し、マイコンからPC2へ出力するといったプログラムを作成したいです PC1→マイコン→PC2 マイコン自体のメモリが少ないためシリアル通信で行えばいいのかなと考えています PC1とマイコンとPC2の間はUSBケーブルで接続しています そもそもマイコンから2台のPCのポートを開いてデータを送受信することは可能なのでしょうか? 初心者なので的外れな質問をしていたら申し訳ありません><
579 :
デフォルトの名無しさん :2013/11/05(火) 12:18:04.13
>>577 それハード屋さんの分野だね。そういうおもちゃを自作するのは実に楽しい。
>>577 クロスLANケーブルつないだらいいだけじゃ・・・、wifiでつないでもいいし・・・っていう話は置いておいて
”マイコンで取得し”という事はマイコンが親になるのかな
ホストとデバイスをどこにするかで考え方が変わると思う
そういう用途なら bluetooth とか IrOBEX とか
582 :
デフォルトの名無しさん :2013/11/05(火) 15:57:55.44
たとえばだが、FT232R を使う場合など、ホストという概念がいらない
転送ケーブル(
>>578 みたいなもの)を作りたいのか
マイコンから制御してパソコンのストレージにアクセスしたいのかで
答えが変わってくるはず
なんでわざわざ間に変なもの挿むんだろう。
USBだと挟まないと作れないよ LANやシリアルとは違う
プログラマーです。 Cを始めたいのですが、winでの開発環境は何がおすすめですか?こだわりは特にないので、ユーザーの多い環境希望です。
Visual Studio
Cもできないプログラマってのもいるんだな
Webプログラマってやつかね?
Web系 + 業務アプリなので、ruby,js,vbなどをやっていました。 せっかくなので使ったことのないものを使ってみたかったのですが、やはりvisual studioが一番なのですね。 ありがとうございました。
Cは万能ですか? つまりCではどんなプログラムでも書けますか? それともCでは書けないけれど他の言語なら書ける プログラムって有りますか?
アセンブラが万能です
チューリング完全という言葉を知ってる人間がこんな質問しないと思う
>>591 言語による能力の差というのは基本的にはない
ただ、ライブラリとそのAPIがないとできないことというのはある
簡単な例だと、awkでソケットプログラムを書けみたいなのは無理
Cは低レベルのAPIが揃っているのでOSが許す範囲で何でも書ける
「書ける」ことと「容易に書ける」こととは別だが
C なんてCんどいだけだよ‥‥
596 :
デフォルトの名無しさん :2013/11/05(火) 23:48:26.52
審議中(AAry
よくCは低級なプログラムが書けるというが 実際にそこまで上達できるヤツってどんだけいるの? OSカーネルなんかをメンテしてるとか、ドライバ書いているやつなんて極一握りだろ
それはgawkであって、awkじゃない
VCであってCじゃないって良いそうだな
GCC は C じゃないって言ってるようなもんかよ (もち GNU C Compiler の意味な)
言語の能力の話してるのに、その拡張した実装の能力の話を持ってくるなってことだよ
>>604 >Cは低レベルのAPIが揃っているのでOSが許す範囲で何でも書ける
どこが言語の能力の話なんですか?
チューリング完全は、知ったか君が嬉々として語る話題の典型。 現実のリソースは有限ですからー! いくら強弁しても、実装に他言語使ってる時点で破綻してますからー!
>>605 言語+標準的なAPIの能力の話と修正しとくよ
あとつつける重箱の隅は?
OCamlで書く、jsやLispでevalする。 CでOCamlの型システムを実現する、evalする。 言語の能力なんて全然違うと思うが。
mutexにinit関数とイニシャライザマクロが有りますが何が違うんですか ついでにmutex型のfloatとかはどうやって作るんですか?
612 :
デフォルトの名無しさん :2013/11/06(水) 14:03:56.38
>>577 です。返事が遅くなり申し訳ありません
将来的にPC1をカメラに置き換えて、カメラ+マイコン→PCへ画像データを送信していきたいのです
現在カメラの用意ができていないこともあり、PC1をカメラに見立ててやってみようと考えていました
現在使っているのはArduino unoというマイコンで、このスレに質問したのもArduino言語とC言語が似ているという理由からでした
>>611 1)動的に初期化したい場合、デフォルト属性以外で初期化したい場合
初期化処理で初期化したい場合、その日の気分などで関数の方を使う
2)?
>>612 USBはホスト(PC)と周辺機器の区別がある
PCはカメラの代わりにならないし、その逆もまた不可能
ホスト的なカメラ(のボード)も作るのかもしれないじゃんw ともかく、ここより、電気電子板のUSBスレかArduinoスレへ。
>>613 どう表現すればいいのかわからないのでスレッドセーフなfloat型をそう表現しました
ふつうのfloat型をmutexと組み合わせて使ってください
カメラ2台繋いで立体画像認識するのかも知れない
620 :
デフォルトの名無しさん :2013/11/06(水) 19:50:05.16
KINECT のことか
2台はPS4 Eyeでは Kinectは1台のはず
eclipseでC言語を始めた者です。 コンソールに日本語を出力することはできたのですが、 ウィンドウに出力すると文字化けします。 以下のコードに追加で何か必要でしょうか?それともeclipseの設定等でしょうか? #include <windows.h> #include <stdio.h> int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { printf("文字化けしない"); char chStr[128]; wsprintf(chStr , "インスタンスハンドル : %d" , hInstance); MessageBox(NULL , chStr , TEXT("文字化けする") , MB_OK); return 0; }
TCHAR chStr[128]; wsprintf(chStr, TEXT("インスタンスハンドル : %p"), hInstance);
入力された文字列を逆順に表示するプログラムを作りたいのですが ここから先どう書けばいいのかまったくわかりません。 countとデクリメントを使うといいよと言われたのですが どなたかヒントを教えていただけないでしょうか? #include<stdio.h> #include<stdlib.h> #define N 51 int main( void ){ char *ptr; int count=0; if(( ptr=( char* )malloc( N*sizeof( char ) ) )==NULL){ fprintf( stderr, "memory allocation fault.\n" ); exit( 1 ); }//配列の動的メモリ確保をしました printf( "入力された文字列を逆順に出力します。\n50文字以内の文字列を入力してください。:" ); scanf( "%[^\n]%*c", ptr );//空白、タブも読み込ませます while( *ptr!='\0' ){//NULL文字になるまで
625 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/07(木) 00:24:13.94
while (ptr[count]) count++; while (--count >= 0) putchar(ptr[count]); putchar('\n');
626 :
デフォルトの名無しさん :2013/11/07(木) 00:43:55.56
下記ファイルをコンパイルしたところ、エラーにならず、実行結果も問題ありませんでした。 $gcc -o main main.c mod0.c main.cにはmod0.c用関数呼び出しにはmod0.hが必須だと考えて いたのですが、これは間違いでしょうか? <main.c> #include<stdio.h> /*#include"mod0.h"*/ int main(void){ int i = 10; printf("func0(%d)=%d, func1(%d)=%d",i,func0(i),i,func1(i)); return 0; } <mod0.h> #ifndef __MOD0_H__ #define __MOD0_H__ int func0(int); int func1(int); #endif <mod0.c> int func0(int x){ return x*x;} int func1(int x){ return x + x;} [開発環境] OS:Windows 8 32bit コンパイラ: gcc 4.8.1(MinGW)
627 :
626 :2013/11/07(木) 00:46:47.21
日本語が一部、変になってしまい申し訳ありません。 下記の様に訂正します。 >main.cにはmod0.c用関数呼び出しにはmod0.hが必須だと考えて >いたのですが、これは間違いでしょうか? main.cにはmod0.c関数呼び出し用のプロトタイプ宣言mod0.hが必須だと 考えていたのですが、私の認識は間違いでしょうか?
mod0.h のプロトタイプ宣言に extern 付けてコンパイルしてみ
629 :
デフォルトの名無しさん :2013/11/07(木) 00:49:53.96
コンパイラがあてずっぽうにint型を返す関数だとみなしてコンパイルした結果。戻り値の型をfloatに替えて試せ
>>628 関数プロトタイプ宣言に externは不要
>>627 ,630
extern不要でした。すまんかった
>>626 visual studioだとできなかった
環境によるのかな
>>626 g++だと引っかかるんじゃね
Cってプロトタイプ宣言しないでも勝手にリンクしてくれるよな
634 :
デフォルトの名無しさん :2013/11/07(木) 01:13:23.77
gcc -Wallだろう
635 :
626 :2013/11/07(木) 01:20:33.03
>>628-634 レスありがとうございます。
float型にして、同様のプログラム作成した所、
コンパイルエラー無しでしたが、実行結果に問題が発生しました。
gccではヘッダファイルが無くても、
int型の関数としてリンクするという仕様だと理解しました。
-Wallオプションで実行した所、
implicit declaration of function
という警告が発生しました。
main2.c:6:2: warning: implicit declaration of function 'func3' [-Wimplicit-function-declaration]
main2.c:6:2: warning: format '%f' expects argument of type 'double', but argument 3 has type 'int' [-Wformat=]
main2.c:6:2: warning: format '%f' expects argument of type 'double', but argument 5 has type 'int' [-Wformat=]
今後は、極力 -Wallオプションを多用します。
今からCなんてやってどうするんだ 全く使われてねーのに
637 :
デフォルトの名無しさん :2013/11/07(木) 01:30:49.99
-Wall -Werror の方が良い。
覚え方は大きな壁(Wall)を取り除く(-) -Wall
626じゃないけど、
>>637 のオプションでエラーになった
知らなかったありがとう
>>636 Unix界隈じゃバリバリですお
いい加減C++に移行してほしいお・・
warning allだろう
組み込みとか低レベル部分にSTLとか使われた日にゃ、堪らんのですよ
>>635 ヘッダなしでもmainのソースでextern float func(int)とかすれば規格上は問題ないんじゃね
行儀はよくないけど
まあともかく、プロトタイプ宣言なりextern使うってことで
Boostの間違いだな
PhoenixやSpiritを組み込み用に・・・ゴクリ
648 :
622 :2013/11/07(木) 22:50:52.45
>>623 すみません。ご教示いただいた方法では文字化けが直りませんでした。
他に何か確認すべき箇所はございますか?
>>648 お前がレスをしてるそいつは初心者に嘘回答をすることで有名なコテだぞ。
今回はそうやって結果がすぐに出たから嘘だと気付けたけど、
もっと手の込んだ、パッと見上手く動作するけどしばらく稼働させてたらメモリリークで落ちるようなバグ、を仕込ませてくる。
そういうバグを仕込まされると後々原因が分かりにくくて苦しむことになる。
初心者にバグを仕込ませるのはかなり上手いから気をつけろ、中級者でも見抜けないバグを仕込ませてくることがある。
だからとりあえずNGリストに入れておけ。
>>648 何故wsprintfなの?
色々あるんだけど、そのコードからすると、sprintfでいいんじゃね?
>>623 は、TCHARとか使ってるから_stprintf()だね。
でもいまどきwin9x対応とかしなくていいだろうし、ワイド文字固定のほうがスッキリする。
WCHAR chStr[128];
swprintf(chStr, L"インスタンスハンドル : %p", hInstance);
>>651 w系使うなら、MessageBoxWじゃないとダメな
?
cmd.exeはマルチバイト
ポインタの演算って内部でどんな計算してるか教えて欲しいんだけど int mat[なんとか]; っていう感じの時に添字の中身の方は整数型なら何でもいいの? shortを入れたらintにキャストしてたりとかしてない? なるべく高速化したいので、ちょっと質問。
>>656 pointer演算は最適化の肝なので、大抵バリバリに最適化するから余り気にしなくていい。
普通、intより狭いpointerはないのでshortを使う理由は殆どないな。
気になるなら、コンパイラのアセンブリ出力機能を使って出力されたアセンブリをを検討すればいい。
本当に気になるなら、アセンブリ出力して見比べるといい 「なるべく高速化したい」ならアセンブリ言語読めるようにすべし
659 :
656 :2013/11/08(金) 10:55:37.66
>>657 >>568 アセンブリ読解難しそうだけど調べてみます
FPUモジュールにベクトル演算用の命令セットとかあるけど
「単精度」専用だから、コンパイラはfloatなら上手に
使ってくれてるんだろうか・・・?
とか高速化を考えると必要な知識増えそう
実測して比較 コンパイラの最適化におまかせ
>>648 お前がどこかで間違えてる
>>651 wsprintfがWindows APIだって分かってる?
662 :
デフォルトの名無しさん :2013/11/08(金) 12:05:58.43
BMP画像を取得して送信先で画像を復元させたいのですが、バイナリデータ?でやり取りするんですかね?
BMP形式はバイナリだけど通信路はテキストにする方法もある メ−ルでBMP画像を添付で送るときみたいに
>>661 wsprintfだったらwsprintfWだな。
可変な大きさのものを、ストリームという概念下で伝達しようとする ・バイナリにすると通信量は減るが面倒 ・テキストにすると通信量は増えるが終端記号で楽できる
bmpだったら圧縮しちまえば通信量は減らせるよ。
>>659 gccだったら、-msse2 -mfpmath=sseでfpuを使わなくなる。
その上で、例えばループ構造がシンプルならベクタ化する。
floatだけで頑張る積もりなら、doubleへの暗黙のキャストが
発生しないように定数や四則演算にも注意が必要。
キャストじゃなくて格上げ
669 :
デフォルトの名無しさん :2013/11/08(金) 13:45:52.02
ISH か、懐かしい
俺もish思い出してたw
MIME はなぜ冗長性や復元機能まである ISH じゃなくて Base64 を採用したんだろ
日本語のメールって大抵iso-2022-jpコードでしょ。 iso-2022-jpは全角は2bytesだけど、半角/全角の切り替えの制御文字が入るので、 ISHみたいなのはデータサイズが増えるからじゃないのかな。 Shift-JISでISHなら制御文字がいらないから増えないし、base64よりサイズも 小さくなって良いんだろうけど。
すいません 「数字の文字列(例えば"123"や"9240"など)を引数にとり、その文字の意味するint型の値(上の例では123, 9240)を返す関数を作成せよ。 さらに、少数の文字列("12.3"や"0.0543")を引数にとり、その文字の意味するdouble型の値を返す関数を作成せよ。 ※atoi, atof, sscanfなどは使わないこと。」 って問題なんですがさっぱりわからないので教えて下さい お願いします
>>672 自分が何を言ってるのか判って言ってるのか?
まずatoiのソースを読みます
>>671 ish のテキストへのマッピングで MIME でのブロック構造記述と衝突するような文字( - ハイフン)
の有無かなぁ? Base64 は含んでない
ASCII決め打ち? '0'とか'9'とか書いとけばEBCDICもいけるよ
679 :
デフォルトの名無しさん :2013/11/08(金) 16:40:05.61
freeしたメモリってどういう状態になってるんですか? 全部1111111111111111111と同じ符号になってるんですか? プログラマのみなさん教えて下さい。1111111111111111111という 実際にある情報と混線しないんですか?
普通0になると思わない?
681 :
デフォルトの名無しさん :2013/11/08(金) 16:50:46.76
>>680 じゃぁ0000000という列が使っているメモリにもあったとしたら混線しませんか?
プラナリアからメガロサウルスに劇的な進化を遂げた679に向かって ナメクジウオ680がなんか的外れな呟きを投げるカオス
>>677 ありがとうございました!
なんとか理解できました
混線って何だよw
実装による free 状態で "使ってない" ということを別の場所に覚えておくようなのが多い メモリの内容が とあるパターン(仮にパターンAと呼ぼう)と一致した場合には未使用である という管理もありえなくは無いけど、 使用中であり、メモリ読み書き作業の過程でパターンAが絶対に出てこないことが保障できる 場合に限られるからな
>>679 その後のmallocされ使いまわされる事がなければそのままだよ
別の値が書き込まれるようなことはなくて 「テナント募集中」の張り紙が貼られるだけ
688 :
デフォルトの名無しさん :2013/11/08(金) 17:19:20.30
>>687 そのテナント募集中っていうラベルが書き込まれてるんじゃないの?
free 後のメモリに対してアクセスしてバグる(タングリングポインタっての?) こういうのを捕まえられるようにデバッグモードだと特定の値で埋めるようなコンパイラがあった希ガス
>>679 メモリのどこが使われていてどこが空いてるかという情報が管理されていて、
freeすると、ここからここまでのメモリが空いたという情報がその管理簿に載る
int my_alloc[100]; /* alloc で渡すメモリ */ int is_free[100]; /* テナント募集中かどうかの札入れ */
もっと家賃下げろ
空室ガラガラ
なんでや 将大関係ないやろ
電波ってパルス波なんですか? 無線LANでノーパソに電波来るじゃないですか? 1010101010101っていう情報はパルス波なんですか?
698 :
697 :2013/11/08(金) 18:31:17.01
基本情報目指してるんですけどね… 全然わからん
電波は正弦波じゃね
700 :
697 :2013/11/08(金) 18:34:22.21
>>699 周期は一定ですか?どうやってるんでしょう?
延々とビット列を送らないといけないわけじゃないですか?
電波・変調でググれ 俺もよく分からん
>>576 if()でも最適化されて条件命令と通らない方のロジックが消されるときもある
if(高度な頭脳の持ち主){ 俺だけ }else{ ここより↓
>>702 PMもあるし
CDMAなんていうのも昔流行った
今のコンピュータってグレースケールで何段階なの?256? コンピュータによっては65536段階もあるの?
>>707 普通は256段階
65536段階対応のグラボや65536段階対応の液晶モニタもあるらしいね
710 :
デフォルトの名無しさん :2013/11/08(金) 21:06:29.87
C言語どこいった
>>708 OpenGL、DirectX、SVG
言語やライブラリよりも応用ソフトの方が重要
>>712 OpenGLで検索すると何を勉強すべきかが見えてきました!
ありがとうございます。
プログラミングというよりデザインだな
} return 0; }
>>654 遅レスすまん
順を追うと、元々の質問者が
>>622 で文字化けしますって事だった
これの原因はMBS環境でWCS関数をぐちゃぐちゃに使っているからだと思った
だから、まずwsprintf じゃなくて sprintf 使えってアドバイスした
printf + MBS で文字化けしないんだから恐らくMBSコンパイルしているとエスパー
そしたら、今時はWCSで統一しなさいというアドバイスが出てきた
コンパイル設定そのままでWCS関数を使いたいなら、
MessageBox も明示的に MessageBoxW を使わないとダメとアドバイスした
…で伝わったかな?
717 :
716 :2013/11/09(土) 15:11:33.53
ちなみに、コンパイル設定に依存させたくないなら、 _t 系関数と T 系マクロで統一しないとダメ どうしても混在させたい場合は文字列の変換が必要になる (wcstombs とか) Win32APIは自動切換えになるが、 だからこそ場合によっては明示的に A/W 指定が必要になる MessageBox なら、MessageBoxA と MessageBoxW が実体ね そろそろスレチかな…
昔はネットとかでよくTCHARを使えって初心者にアドバイスしてる人がいたけど 世の中のTCHAR(汎用テキストマッピング)を使ったコードの99.9%はマルチバイトか ワイド文字の片方でしか動かないだろうから、Win9xが現役の時代でもこのアドバイスは ムダだったな。
>>718 あの…
マルチバイトかUnicodeのどちらかで動くよう変換されるマクロな訳で…
MBCS向けのライブラリがUNICODEで動かじゃないか!
UNICODE向けのライブラリがMBCSで動かじゃないか!
とかインネン以外の何物でもないぞ
>>719 どちらかでしか動かないなら、最初から直書きでそれ用に書けばいいだけだと思うけど。
>>719 汎用テキストマッピングを使えば、コンパイルオプションを切り替えるだけで
ワイド文字にもマルチバイトにも対応できるって話でしょ?
でも実際は、文字列を扱う処理で、ワイド文字でもマルチバイト文字でも
両方で動くように意識して書いてる人は少なかったし、意識してたとしても
両方でコンパイルして動作確認してた人なんてほとんどいなかったでしょ。
動作確認とかそれ以前の問題で、90年代に書かれたVC6以前のコードな
んて、T系のマクロと、生の文字列が混じって、新しいVCでコンパイルしな
おしたらエラーが出まくりみたいなコードばっかりだよ。
WinMain の引数がいきなり MBCS固定 (LPCTSTR ではなく LPCSTR) で なんだかなーな感じなんだよね
そりゃコマンドラインからはいまだに MBS で来る罠
>722 それはWinMainだからだよ UNICODEコンパイル設定ならエントリポイントはwWinMainね
>>720 二度手間じゃん。
ビルドオプションが2つだけなら別途用意してもいいかもしれない
でもさ
Release or Debug
MT or MD
crtのバージョン
ENABLEなんちゃらなど數えきれないオプション含めたら幾通りにもなるよね
で、それぞれ分けるよりは同じようにGenericにしたほうが楽だなという思想
>>721 それは周りの質や時代的な背景などアタナの環境に置ける問題じゃない?
>>721 それは根本的に違う問題をごっちゃにしてる気がするぞ
まず真っ先に気にするのは、移植性を考慮する必要があるのかどうかだよ
移植性を考慮する必要がないのなら
>>718 の言うように、最初からTなんて使わないほうがいいと思う
でもね、だからって、汎用テキストマッピングが必要ないなんて結論にはならないよ
そもそも移植性が必要な場合の一手法が汎用テキストマッピングなんだから
WindowsとLinuxで同時開発とか普通にあるだろうし、当時ならwin3.1/9x/2K同時とかあったかもしれん
こういう移植性を必要とする開発では、注意深く実装することでソースコードレベル共通化がかなりできる
汎用テキストマッピングってのはそういう場合に使うんだよ
長文すまん
>>725 いや、両方でビルドしてテストしてた現場が一般的って主張は無理がある。
そっちのほうが特殊。
VC6時代は99.9%はマルチバイト専用のコード。
それ以降はワイド文字専用のコード。
しかも、それでいいって割り切ってたわけじゃなくて、中途半端にTCHAR使う
イラつくコードばっかり。
>>726 必要ないとは言ってない。
無駄になっていたって状況を説明してるだけ。
729 :
726 :2013/11/09(土) 17:44:34.86
>>728 は
>>727 ?
何となくわかった
中途半端に使われると確かにイラつくのも同意
多分Windowsで完結している
>>727 の仕事(?)環境では、そもそも移植性なんて気にする必要が無いんだね
無駄になっていったっていうのはあくまで「
>>727 の環境では」という限定話ということでオケ?
>>727 繰り返して言うけど
つ それは周りの質や時代的な背景などアタナの環境に置ける問題じゃない?
昔はそうだったんだってな話なら知ったこっちゃない
他でやってくれ
今でもそうなんだってな話なら
気の毒だが
これも知ったこっちゃない
同様に他でやってくれ
そんなコードに触れなければいけない自分の環境を恨め
>>730 そもそもが「昔はそうだった」って話をしてるんで、昔のことは知らないってことなら
いちいち反論しないでほしいわ。
PCにぶっさすボードのメーカーのAPI 文字列を受けるのはどうなってたっけかなぁ… (Interface のI/Oボードとか
いまだって「TCHAR使え」とかドヤ顔でアドバイスするやつは、やめろって感じだわ。 初心者に安直にそんなアドバイスしてるやつって本人でも、UNICODEとMBCSの違いを 吸収できるコード書いてるとは思えん。
>>730 俺も繰り返し言うけど特殊な状況じゃないよ。
ワイド文字とマルチバイト文字の両方で動くようにしてテストまでやってる現場のほうが特殊。
>>732 グラボドライバの提供するAPIはMBCSでもTCHARでもUnicodeでもなくcharだった記憶が
ドライバならふつうOSの内部コードに合わせるわな
>>731 不毛な昔話でクダを巻くなら他でやって欲しい
>>734 それは文字に頓着しない現場ってだけでしょ
>>737 そういう「お前の態度が気に入らない」的な話題になってきたってことは、本題のほうではとくに
反論はないってことで了解しました。
>>737 もちつこう
多分チラ裏だっただけだよ
感想に対してまともに議論してもしょうがない
移植が必要ない環境の人が昔話をつぶやいただけ
そもそも必要のない人に必要性を訴えてもしょうがない
まあでも両方でコンパイルをとうして、両方で動作確認やテストをやってたって人が 自己申告でさえ現れないって状況をみると、そういうのは特殊な現場なんでしょ。
ポータビリティ重視派 VS 環境特化派 …に見えるが、 実はお互い他の事情を知らない人たちが罵倒しあっていますw
>>741 そういう対立軸じゃないでしょ。
現状→Win9xに対応する意味がないから汎用テキストマッピングはムダ
過去→安直にTCHAR使えって言ってる人がいたけど現実は有効に機能してなかった
この点に特に反論できてないし。
>>741 がかなり正解では?
確かに
>>742 は自分の環境でのみを前提に話をしているように見える
まぁ、世の中Windowsが優勢なのは確かだろうけど、
それを言い始めたらそもそもC言語自体余り使わない
そういう意味ではCの開発も特殊かもな
VC6のころは、_UNICODEでコンパイルしたらエラーになるようなコードばっかり。 汎用テキストマッピングは破たんしたしくみ。 それを分からないでTCHAR使えって安直に進めてた連中がたくさんいたけど、そういうのはダメだろって簡単な話。
>>746 まあ常識的に考えたら、_MBCSと_UNICODEと両方でコンパイルして両方でテストしてたなんて
現場が一般的でないってわかるわな。
TCHAR使ってた連中も、汎用テキストマッピングの関数や変数を機械的に使ってただけで
両方で動くか、深く考えて使ってのはごく一部だろ。
今のC++/Cのワイド文字や、C#やJavaでUTF-16を使ってるところでも、サロゲートペアとか結合文字列に 対応してない書き方してるところはゴロゴロしてそう。 このまえどっかのブログで、UTF-16は固定長文字でない、みたいな記事が訳されてるのを見たから 外国でもそうなんだろうな。
>>739 そう思った
てか、何故に今更というネタで誰が得するのか不思議
ただのマクロなのにさ。
それよりも
SJISもUTF16LEもとうに終わってるんだから
WindowsAPIにcmd.exe、端末群を整備して欲しいな
TCHAR使ってるのにUnicodeでエラーになるコードってのは、 Unicode対応するときに修正箇所が少ないほうが良い、っていう 予防措置的なもんでしょ。
>>748 決め打ちで使い回しの効かないものならベタ書きすりゃいい
でも、そんなコードばっかり書いてる訳じゃないでしょ?
そのためにマクロってのがあるのさ
テストコードもマクロでおk
テストする側が各々試せばいいんだよ
手間は殆ど変わらないんだからさ
それはさすがにないと思うよ
てか
連中
が
れんじゅう
と再生されてしまった
で、今はどうすればいいの?
>>748 どこの常識だよ
お前の環境がレベル低かったって告白されても困る
良くわからないんだけど、コードのデータと、データのデータは メモリ上で同じ場所なんですか? 例えば printf("〜〜");というコードのデータと int型の100という値を持つ変数xは同じ場所なんですか?
756 :
デフォルトの名無しさん :2013/11/09(土) 21:44:01.18
"" はリテラルといって、純然たるデータだよ printf がコード
>>756 〜〜がデータってことですよね?
同じ場所なんですか?
758 :
デフォルトの名無しさん :2013/11/09(土) 21:59:36.45
>>757 「同じ」ってのは、何と何がが必要
〜〜という内容をどこに置いたのかを示す式が ""
むしろ int の 100 が即値といって「コード内に埋め込まれたデータ」である可能性が高く
よって &100 が禁止されている
x という場所に 100 という内容を書き込むと、&x はできる
>>758 &100にしたらそれに対応する変数が勝手にできちゃうとかあるんでしょうかね?
>>753 ワイド文字決め打ちで。
>>754 常識です。
99.9%は両方対応なんて工数のかかることはしてません。
TCHAR使っていたら対応してるって錯覚してただけ。
>>753 マジレスすると今も昔も変わらないよ
必要であればTCHAR使うし、必要が無ければ使わないってだけ
ただ、必要性もないのに中途半端なTCHAR対応にイラっとするのは確かで、
その点に関してだけはチラ裏の人の気持ちもわかる
基本的に必要もないのに工数掛けてまで開発やテストは出来ないから、
必要になったときに対応すればオケ
763 :
デフォルトの名無しさん :2013/11/09(土) 22:15:48.73
>>760 C++ になら、その方面のネタがあるが
C にはない
>>761 > 常識です。
> 99.9%は両方対応なんて工数のかかることはしてません。
そこまで言うなら、ソース出してくれ。
>>761 なんか俺が自演してるみたいに気が合うな
俺が書き込むと、その直後の更新で先に君が書いてるわw
768 :
デフォルトの名無しさん :2013/11/09(土) 22:23:20.11
>>762 いまさらwin9x対応とかないから、現在は必要ありません。
ワイドキャラ決め打ちでいいです。
>>764 99.9%はジョークに決まってるだろ。
機械的に、_t付き関数やTCHARの変数を使って対応したつもりになってただけじゃなくて、
文字列の処理をきっちり両方で動くように作って、両方でコンパイル通して、テストまで
してたってのが一般的だっていうなら、そっちのほうをソース出してほしいわ。
>>761 普通にやっているよ。
WindowsとMacで共通コード部分をTCHAR使ってる。
もちろんMac側のTEXT定義は自分で作成したけど、
型と名前が違うだけのコードを2つメンテナンスするより楽。
771 :
デフォルトの名無しさん :2013/11/09(土) 22:31:21.28
私たちのマック信仰に偽りはありません。
>>769 > 機械的に
偏見じゃん
てかちと面白いなw
ある程度自動化してるだろうから機械的な作業と言えるわな
>>772 自動化してればいいけど、わけもわからずにやってるから、素の関数やらリテラルやらが
混じって_UNICODEにしたらコンパイルも通らないようなコードばっかりだろ。
前世紀のVCのコードなんて。
せめてLinuxなら0.1%位は信じられたのに……
>>769 > 99.9%はジョークに決まってるだろ。
いきなり腰砕けかよ (w
>>775 まあ99.8%かもしれんけど誤差だろ。
ジョークに誤差とか、バカの上塗り乙 (w
いやいや「99.9%」とかそこにマジレスかよって感じだけど。 まあ、アスペのふりをしてそういうところくらいしかツッコミ処がないんだろうけど。
ジョークなら、実際は少ないですって事になるよな どちらにしろ破綻してるわけだが
>> 773 コテ付けてもらえない? とうに終わったネタを持ちだし 被害者面して不幸自慢 その真偽は不明だが本人曰く99.9% こんなの相手にしようがないよ
>>780 不幸自慢とかとうに終わったとか、なんでそうなるんだ。
いろいろ勝手に設定つくりすぎだろ。
>>778 ジョークと言ったり、そこに突っ込むのかよとか、忙しいな (w
まあ、ジョークとして何が面白いのかさっぱりだし、もうレスしない方がいいと思う。
99.9% って慣用句みたいなもんじゃないの? 「万が一」って単語使って「本当に 0.01% なのかよソース出せ」って言ってるように見える 突っ込むのはそこじゃないだろ
784 :
デフォルトの名無しさん :2013/11/10(日) 12:30:22.89
PGが迂闊に数値を出すのは脇が甘いと言わざるを得ないだろ
99だろうと99.9だろうとおこちゃまに見られるのは変わりないから安心しろ 突然私が発狂してあなたの頭を金属バットでいきなり殴る確率 より遥かに低いです、と言っとくほうが説得力がある
>>783 突っ込まれているのはそこじゃないと思う
突っ込んでいる人は、
ほぼ100%言い切っているあなたの見識の狭さに突っ込んでるんだと思うの
よくこんなつまらんやり取り続けられるな
プログラマーの職種に応募して落ちたんですが、プログラマーになったら 1日8時間はコンピュータを触らないといけないというのは本当ですか? とてもじゃないけどやってられないんですが。
ほんとうだね
>>788 今どきそんなんじゃ、プログラマーどころかホワイトカラー全般やっていけないだろ
他の職に就きな
793 :
デフォルトの名無しさん :2013/11/10(日) 14:26:33.15
794 :
デフォルトの名無しさん :2013/11/10(日) 14:52:59.02
>>792 いやいや大変だとしてもプログラマーなりたいですよ。
今はフリーターです。
>>793 そうなんですか?8時間より短いんですか?
後プログラマーって休日は仕事から離れたくて
一切パソコンに触らない人が多いって本当ですか?
>>783 > 99.9% って慣用句みたいなもんじゃないの?
ジョークの次は慣用句とか言い出したぞ (w
そもそも 99.9% とか言うなら、せめて8割を越えているソース出せって話。
まあ、出せないから誤魔化したいんだろうけど。
慣用句みたいなもん→比喩と言いたかったんじゃね? どっちでもいいけどw
草生やすホモガキしね
798 :
デフォルトの名無しさん :2013/11/10(日) 15:45:17.98
>>794 休日は7日サイクルではやってこない
一案件片付いた後のダウンが長い
この意味で当たらずも遠からず
無駄なく要領よく仕事をこなすという意味では PC嫌いの方が向いている職種だと時々思う
800 :
デフォルトの名無しさん :2013/11/10(日) 16:13:10.30
>>799 向いてねえよ
8時間もPCに向かえない奴が、無駄なく要領よくなんてできない
集中してて結果的にこんな時間かよ ってのはあるが 散漫と8時間PCに向かえと言われると、、、ちょっとツライ
画面見なければ良いんだよ。8時間なんて余裕
805 :
デフォルトの名無しさん :2013/11/10(日) 18:19:22.66
>>804 頭いいな、俺の親が同じようなアドバイスくれたわ。
パソコンで10時間超えるような仕事は過労死認定できるんじゃない?
HDDの回る音と、ファンの音が精神的に悪すぎる。 これを完全にシャットアウトするものないのかな?
>>808 自分が隣の部屋へ行くってのはダメですか?
810 :
デフォルトの名無しさん :2013/11/10(日) 18:38:58.15
基板と電源をファンレスで固め、SSD にする ファンレスでぐぐると BTO も無数にヒットする
812 :
デフォルトの名無しさん :2013/11/10(日) 19:00:06.01
ロシアとかの遠隔地にハードを置いてこっちからは光で信号を送って パネルだけあればいいみたいな仕組みは無理なんですか?
耳栓は耳に対する負担がでかすぎる。 あれ耳筋に相当負荷かけてるよな。
814 :
デフォルトの名無しさん :2013/11/10(日) 19:11:53.52
>>812 神クライアントのことか?
神クライアントって仕組みは確かにあるよ
>>814 例えばGTA5みたいな超高スペックのゲームをパソコンでやりたい場合
サーバーサイドで処理して、こっちからはタイピングした文字の情報
だけ送って、画面に結果だけ送るみたいな。そういうシステムとかあ
るんですか?
>>816 なるほど、身近なところにありましたね。
でもなんでそのサイトは実行が遅いんでしょうか?
もっと早くしたら凄い人気出ると思いますけど。
>>796 ジョーク ⇒ 慣用句 ⇒ 比喩
どんどん深みにはまってるぞ (w
×シンクライアントではないか ○シンクライアントではないが
お前ら8時間くらいネットでPCやスマホ使ってるだろう?
仕事入れると16時間くらいはモニタに向かってる
822 :
デフォルトの名無しさん :2013/11/10(日) 19:47:03.66
依存症 病院池
卓球やテニスはいいらしいね。 やってみるといい。
スポーツゲームはあまりやらない
>>822 > 運動は何してるの?
取り敢えず2駅分 (30分ぐらい) 歩いている。
誤差でつまづいています。
http://ideone.com/mA3Ipj のようなコードで計算すると4番目と5番目の出力が想定している
1.254500e-04
になってくれません。
実際コード中で使用したいのはc+d-bという形です。
floatは小数点7桁の演算まで大丈夫だった記憶があるのですが6桁の計算が
思い通りできないのはなぜでしょうか。
また、どのように回避すればいいのでしょうか。
回避策か…。 小数点以下6桁目までの精度が欲しければ、7桁目を四捨五入することかなぁ。
830 :
827 :2013/11/11(月) 18:44:37.19
ミュートがon = 音がoff ミュートがoff = 音がon なのだから ミュートがon と 音がon の記述をゴチャ混ぜにしてはいけなかった。
>>827 mute(音)という考え方が間違っているのでは。。
832 :
827 :2013/11/11(月) 19:05:48.30
>>831 > mute(音)という考え方が間違っているのでは。。
mute(音を消す)ですね
>>828 小数点7桁ではなく有効桁が7
7桁必要なら倍精度使いなさい
足し算引き算は絶対値の大きいものから並べなおしてからやる
なんにせよ最後に丸めるしか無いよ。 0.1は0.1じゃないんだからさw
変数の名前って何で制限ないんですか? 1000字にしたけどOKでしたよ。 容量的には26^1000通りだからビット的に無量大数超えないんですか?
>>836 変数名の桁数と個数は分けて考えよう。
どちらも限界はあるだろう。
1000字の最後の文字が違うの区別ついた?
839 :
828 :2013/11/11(月) 19:52:51.17
有効桁7桁目の値はfloatではどうにもできないんですね。ありがとうございました。
>>836 名前全通りぶんのメモリを用意する必要はないから26^1000もの容量は要らない
というか26じゃない (大文字、小文字、数字、アンダースコア)
841 :
デフォルトの名無しさん :2013/11/11(月) 21:15:42.94
>>841 先頭は数字禁止とか、諸々の規則を考慮すると、計算は難しいな。。
例えば、クラス全員の名簿を作りなさいって言われて、 日本人全員のありうる名前を全部列挙する必要なんてないでしょ?
>>842 > 先頭は数字禁止とか、諸々の規則を考慮すると、計算は難しいな。。
先頭: A〜Z a〜z _
それ以外: 0〜9 A〜Z a〜z _
なら、文字数 n として、
53 * ( 63 ^ ( n - 1 ) )
でよくね?
予約語もあるし ブロックで上書きもあるし 識別子や型呼称や型名の重複の可否もあるし
>>845 予約語はいいとして
> ブロックで上書きもあるし
> 識別子や型呼称や型名の重複の可否もあるし
お前はいったい何を言ってるんだ?
Cプログラミング診断室というwebページを読んでいたら
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.1.9.html 下記のような記述がありました(送られてきたソースを添削した内容)
関数名 int call_melsec で { が始まる前に80-81行でint style, char *message
を宣言していますが、これはどういう効果(作法?)なんでしょうか。
79 static int call_melsec( style, message )
80 int style; /* 転送形式 */
81 char *message; /* 転送文字列 */
82 {
83 char send_d[BUFFER_SIZE]; /* 送信メッセージ本体 */
...
...
131 }
ANSIがCの標準(C89)を定める前に K&RのオリジナルのCが採用していた引数の型宣言の方法。
849 :
デフォルトの名無しさん :2013/11/12(火) 13:59:43.88
C言語の文法を大体覚えて、これから自分のプログラムを作ろうと思ってる者です。 規模が大きくなった時にソースファイルを管理しやすいよう、 ソースコードにファイルヘッダコメントと関数説明コメントを入れようと思うのですが、 どのような項目を記入するのが普通なのでしょうか? 今のところ下記のようにしようと思っていますが、今ひとつ内容が足らず、分かりづらく感じます。 ファイルヘッダコメント /* * Outline: * Auther : * Note : * Fixlog : */ 関数説明コメント /* * Outline: * Type : * Args : * Note : * Fixlog : */
更新履歴はバージョン管理ソフトでやるべき 説明に歴史は要らない
関数名、変数名は後で読んでわかるように。
>>853 名前は関係ない。
何をしようとしてるか
855 :
849 :2013/11/12(火) 14:52:43.04
>>850 本来は、コメントなしでもある程度読めるコードを書かなければ行けないんでしょうけどね。
忘れっぽい正確なんで、ドキュメント作ってないとすぐ全体を把握できなくなるんで(- -;)
>>851 確かに、保存する都度変更点を書くのは面倒ですね。
今だとGitあたりを使えばいいんでしょうか?
>>852 すごい便利そう…
でも、人に見せるわけではないので、今はものを作る方に注力したいです。
暇な時に勉強してみます。
856 :
デフォルトの名無しさん :2013/11/12(火) 15:09:00.56
>>853 案件によっては識別子をわざと分かりにくくすることもある
>>849 ヘッダにコメント入れとくのは良いと思うよ。
まだ勉強し始めたばっかりだったら、そんなに大規模な
ライブラリは、作れてないだろうけど
どんどん作っていくと、嫌でも
「これ何の関数だ?」ってな感じで忘れていっちまうからね
コメントで嘘を書かない
バージョン管理システムのコミットログは管理システム内では有用だけど ソース単独で提供される等で無意味になるから、ソースにコメントは残すべき RCSの$Log$のようなのがあればいいけど、最近のシステムは無くなる傾向だしね
>>859 ソースの先頭に
2013/11/11 T.Yamada XXの不具合を修正
2013/11/12 A.SUZUKI XX機能の追加
…
みたいな履歴を残すってこと?
あってもほとんど役にたたないと思うわ。
引き渡す時点でそれより前の履歴はいらないんじゃね
>>855 Doxygenのルール(≒JavaDocのルール)でコメントを書いておけば今Doxygenを使わなくても後が楽だよ。
>>860 個人的な経験では役に立つことがあるけど、まあバージョン管理システムで
十分に管理されてないからかもしれない
>>861 後は野となれならいいけど、なんだかんだでメンテすることになるんだよね
5年後に読んでもわかるように書いて下さい
履歴提供したきゃ、gitとかhg使ってローカルリポジトリごと渡せばいいと思う doxygen形式コメントは今一番一般的だろうから、そうしておいた方がいい
>>858 嘘は書かないけど、ほっとくと嘘になってる...
>>867 結果的に嘘になったコメントって かえって害悪じゃない?
嘘だなって把握できるなら良いんだけどね
ローカル変数にaとかbとかやってると、後で修正しようと思った時に、 何の計算なんだかさっぱりわからんって事になるのは俺だけじゃないだろ? だからわかる名前をつけましょう。
>>868 > 結果的に嘘になったコメントって かえって害悪じゃない?
そだよ、だからコード変更したらコメントをほっとかないでちゃんとメンテしましょうね
って言うことなんだけど、ついついおろそかになっちゃうんだな。
当然テストでも見つからないし、意外とよくある...
doxygenコメントを書く習慣をつけておくと、間違ったコメントをある程度指摘してくれる。
コメントのデバッグが一番難しい っていうかコメントまでデバッグする暇がない ソース見て判るならコメントいらない どうしても書かないといけない注意事項だけ書いておくと目立つ
cも規格でtestを用意してくれたらいいんだけどねぇ 下手なドキュメントより後日絶対的に役立つから
3Dゲームありますけど、例えばバーチャファイターみたいなのね あれって立体を点にしたら処理めっちゃ早くなるんじゃないですか? 面だと凄い計算時間がかかる気がするんですがどうなんでしょう? Cでバーチャファイター作ってます
衝突判定と描画は別ロジックだと思うけど、 今時は面で判定したりするみたいやで。
3Dの計算処理は頂点ベースだから点だろうと面だろうと大して変わらない 頂点と頂点の間を塗りつぶして面に見せる描画処理の時間は変わるだろうけどGPUに丸投げでCPUの時間は食わない 衝突判定についてはそもそも点ではゲームになるまい
>>876 面?
おまえ、やったことないの丸わかり
すまん 適当な知識で回答するべきじゃなかったな 誰か詳しい人お願い
つまりピタゴラスは偉大だったということ
880 :
デフォルトの名無しさん :2013/11/13(水) 18:55:48.08
DirectX使えば3Dの部分は簡単
>>874 バーチャの初期のころのサターンに移植された版の動画を探してみてご覧。
とってもポリポリしているから。当時はその位処理能力が低かったってことだけどね。
882 :
デフォルトの名無しさん :2013/11/13(水) 21:11:33.75
最近のバーチャはクロスシミュレーションもしてるし 衣装にハイトマップも使ってるし 影の距離によるぼかし加減まで変えてるし キャラが着水したところからだけではなく水しぶきの水滴が落ちたとこらも波紋広がってるし 逆光時の光の回折まで表現してるし
バーチャレーシングのころ3Dプログラムあこがれて勉強したなぁ 3Dっていったらアッセンブラだろ?って初めての8086かなんか 読んで勉強したけど、何故かPC9800のグラフィックバイオスで 描画してたから糞遅かった。C言語で書いた方がマシだった その後WinGとか出てきてテクスチャマッピングとかポリゴン衝突判定とか 勉強してたんだけど、急速に3Dが高度化し始めて、 かっこいいゲーム作るのはプログラムだけじゃなくて3Dモデリングソフト使えなきゃ 駄目って気が付いて挫折した でもその時のサンプルプログラムのおかげで就職できたけど
アッセンブラw 素敵すぎてあなたにキッスしたいtw
アナルにキスだと?
眼鏡屋か精神科にGO!
Windows上でLinuxとMac用の実行バイナリも作ってみたいんですが IDEを利用した簡単なクロスコンパイル方法ってないんでしょうか? (組み込みのアーキテクチャ用のならeclipseであるみたいですが・・・) 解説サイト見るとクロスコンパイラのビルドからMakeファイルの書き方から メチャクチャ煩わしくてどこから手を付けてよいのやらわからない感じです
あぁ、 > IDEを利用した簡単なクロスコンパイル方法 なんてないだろうな。
890 :
デフォルトの名無しさん :2013/11/14(木) 02:42:28.45
>>887 Linux環境くらい用意してコンパイルすればいいだろks
C++になるからスレ違いになるけど、QtならWindows, Linux, MacOSどれでも 全く同じソースで同じGUIパーツ構成で作れるよ。勿論、QtCreator上でね。
そ−ゆ−話ではない
gtkでもwxでもいいじゃん
アロー演算子って縦に並ぶとキレイだけど横に並ぶと汚いな
なんだとコノアロー
char *ptにscanfで直接文字列を読み込ませたい時はどうすればいいですか?
>>896 まず第一に、ptに文字列を格納できる空間を割り当てます。
次に、文字列が空白やタブや改行で区切られてもいいか検討します。
区切られていい場合は、フォーマット文字列に"%20s"など適当な幅を指定します。
改行文字以外に区切られては困る場合は、"%20[^\n]"など適当な幅と文字セットを指定します。
全く区切られては困る場合は、scanf()よりももっと適当な関数を選択します。
#include <stdlib.h> int main(int ac, char **av){ int length = 3; char format[16]; char *pt = (char *)alloca((length + 1) * sizeof(char)); if(!pt) return 1; sprintf(format, "%%%ds", length); scanf(format, length, pt); puts(pt); return 0; } ※UNICODE には未対応
char *pt; pt = (char*)0; scanf("%s", pt);
>>899 sprintf で format 作ってるから scanf(format, pt); じゃね?
>>897 空白は考えなくていいものと思われます。
>>898 そうしてるのですがその後で
printf(%s,*pt)で出力しようとしたらセグメントエラーになるのは何故でしょうか?
char *pt; //メモリー割り当て pt = malloc(100); //メモリーチェック if(!pt) exit (-1); //メモリー解放 free(pt); //値の取得 scanf("%d", pt);
>>903 メモリ解放後に scanf しちゃいけない
>>902 printf("%s", *pt) は フォーマット(%s:文字列) と 渡しているもの(*pt:文字) の型が不一致なのでダメ
printf("%s", pt) じゃないといけない
もしかしてBASICとかのvariant型に慣れ親しんだ人?
>>888-893 どうもありがとうございます
gccを極めるかLLVMの勉強をするか迷うところですね
スレ違いになりますが、GoogleGoはこのあたり思考停止して
楽にクロスコンパイルできるのがすごいと思いました
常に落ちるか場合によって落ちるかの違い?
909 :
コケマン :2013/11/14(木) 19:41:40.08
工業高校の一年だけど6ヶ月で printf scanf if while for switch 配列 しか教えてもらえなかった!
>>901 君がそう思うなら
それでいいんじゃね?
scanf のフォーマットに printf("%*s", 10, "aaa"); のような長さを別途引数でうけとることができるのあるの?
%n というのがあるけどちょっと違うかもしれない
>>909 プログラミングは「授業が簡単すぎて面白くないから自分で勝手に勉強した」くらいじゃないとだめだな。
>>914 そうなんだよな。
授業なんて理解力の低い生徒ややる気のない奴でもそこそこ覚えられる程度のペースだからな。
もっと覚えたいなら、先生に聞くのも良いし本で勉強したりガンガン書くことだな。
出来れば、誰かが評価してくれる環境でやったほうが良いな。褒められたら伸びる。
せっかく他にもプログラミングに片足突っ込んでいる同級生が居るのだから、
志のある奴を見つけて切磋琢磨が出来るだろうし。
うらやましい。俺なんか同級生にプログラムというかパソコン自体に興味のある奴なんか居なかった。
駅前の電器屋のパソコンコーナーの女性店員が色々と手ほどきしてくれたけどな。
独学は良いが我流はやっぱ良くないな。
http://cruel.org/freeware/hacker.html >ここでプログラムの学び方について完全な説明は出来ません。
>プログラミングは複雑な技能ですから。
>しかし、本や講習会のコースでダメだとは言っておきましょう。
>多くの、いやひょっとしてほとんどのハッカーたちは我流で勉強してきたのです。
原文
>But I can tell you that books and courses won't do it ? many, maybe most of the best hackers are self-taught.
>>909 バカ高校だからだろ。簡単と言うがクラスの半分もそれすら使いこなせてないだろ。
そういう集団に入ってしまったのが負け。
>そういう集団に入ってしまったのが負け。 それは言えるな 馬鹿集団に浸かってると自分まで馬鹿になってることに気付かなくなる 早めに抜け出す努力をした方が良い そう 2chのように
>そういう集団 日本のソフトウエア産業、学術業界という落ちこぼれ 集団の事ですね 三流以下の自分の現実が受け入れられなくて 下ばかり見て生きている人達
920 :
コケマン :2013/11/15(金) 08:33:27.34
でも僕成績はクラスで1位だよ? 一応写メあるからスカイプ kokeman777に送ってけろ!! c言語とかも教えて欲しいんでよろしく あと馬鹿高校は認めます
>>916 我流でも1%はハッカーになれるかも知れんが基礎をおろそかにしがちの我流は、
99%は使えないガラクタになりそう
「我流」っていうのがよくわからん。 本とかネットとか参照しないで、ひたすら自分でプログラミングを追及するようなの? それは我流かどうか以前の問題でダメだな。
won't do itを「ダメだ」とか、self-taughtを「我流」とか訳すと語弊がある。 これじゃ、本を読まない方がマシだと読みとれてしまう。 それにその後の1文を訳していない。 > > ここでプログラムの学び方について完全な説明は出来ません。 > > プログラミングは複雑な技能ですから。 以下俺訳 > 本や授業でもそれはできない。 > 多くのおそらくほとんどの優れたハッカーは独学で勉強する。 > 言語の機能(知識のごく一部)は本から学べる。 > しかし知識を活きた技能にする態度は実践と実習からしか学べない。 > それをするのはコードを読むことと書くことだ。
我流だと好きなことしかやらない傾向になるだろう。 自分で関数作るのにハマると、クイックソートのアルゴリズムがあるのに 1からバブルソートを半日もかけて編み出したりな。 時間の無駄だしバグを仕込んでしまう確率が増えるじゃないか。 我流で基礎も知らないのに「自分はCが出来ます」と言う奴に多い傾向だ。 開発の現場でも居るだろ?結構。 かといって現状にそぐわないプログラム工学だの開発手法だのを声高々に となえる頭でっかちも良くないけどな。 理論と実践を繰り返し、バランスを気をつけよう。
>>924 クイックソートは最悪時間はバブルソートよりひどいんじゃなかったっけ?
バブルソートも双方向ですれば悪くないと思うし、改良の余地あるし。
GNU の ツール、例えば、GNU Emacs とか これって、GCC じゃなくて clang でもビルドできるの?
Emacsはできるよ 全部修正なしでできるかどうかは知らんけど
>>924 だから「我流」って言葉がよくないんだよ。
あの訳じゃ、「我流」がいいみたいじゃん。
「我流」っていうのは、他のやつがどうやってるか知らんが、俺はこうやる、ってことでしょ。
元の文章にそんな意図はみじんもない。
配列200万個確保してもいいですか?
配列200万個じゃなくて、要素200万個の配列だな? 別にかまわんが、ローカル変数だと環境によってはスタックオーバーフローになるよ
int x; x=20 int a[10]; a[*x]=7; としたらエラーが出ました。考えられる事はなんでしょう?
頭が悪い
>>933 1行1行、自分が何をさせようとしてそう書いたか、
テディーベア(なければここ)に言ってみればいよ
>>931 2行目の終わりにセミコロンがない
4行目の乗算に左項がない
考えられること
>>931 がエラーメッセージすら読む気がない
int x = 20; int a[10]; a[0.6*x] = 7; エラーが出るならまだまし
二つの宣言 char str[]="programming"; と char *str="programming"; の違いを教えて下さい
>>937 上はローカル変数なら、スタック上にメモリがとられてその文字列がコピーされる。
下は、どっかにある文字列へのポインタが代入される。
もちろん sizeof str も違う
32ビットのグレースケールのTIFF画像を8ビットのPGM画像にしたいのですが、やり方がわかりません。 Linuxのod使ってバイナリデータ取り出すとこまでは出来たんですが、その後8ビットに変換する式がわからないんです。 どなたか知ってる人はいませんか?
>>939 937ではないですがprogramingっていう文字がなかったら
ポインタは代入されないってことですか?
>>942 ちょっと質問の意味がわからないけど、
char *p;
という宣言ならもちろん代入されない。
char *p = "programing";
という宣言なら"programing"という文字列は、プログラムが動き始めて
終了するまで確実に存在するから、無いかもしれないって心配はしなくていい。
>>941 imagemagick の covert に変換させるのじゃダメなのかな
}else{
946 :
916 :2013/11/15(金) 19:36:26.60
>>921 「我流」というのは属性として「悪い」イメージを伴うからね、少なくとも日本語ではね
原文の 'self-taught' をどう訳するか、の問題かもね
独学でいいんじゃね?
948 :
916 :2013/11/15(金) 19:56:40.72
独習、がこのみ、あ、独習Java はちとお勧めしかねる
>>946 まあ
>>916 は我流というニュアンスではないだろう。
それとは別の我流そのもののの話で、我流は良くないよね。ってことだと思う。
951 :
デフォルトの名無しさん :2013/11/15(金) 20:21:12.07
コンパイラによって完成した実行ファイルの実行速度って違ったりする?
大幅に違う もちろんコンパイル時のオプションによっても大幅に違う
953 :
916 :2013/11/15(金) 20:50:02.02
>>949 ただ訳者はなにか思い入れがあってわざわざ「我流」という言葉をぶつけてきた、のかも、しれない、と、この方、いい、わるい、は、別、にして、思い、きった、訳を、公開し、してま、す、か、から
>>928 決まった学習方法はなく試行錯誤しながら独自の方法で勉強してきたという事
すなわち学習方法が我流 独習や独学とはまた違う
self-taughtにそんな意味ある?
Selbstdenken
957 :
C言語なら俺に聞け(入門編)Part 122 :2013/11/16(土) 13:08:24.21
手続きと副プログラムって同じと考えればいいの? 違いがわからん
959 :
916 :2013/11/16(土) 16:41:23.28
>>958 fortran だろうか?
ひとつの大きなプログラムをいくつかに分割し、それぞれに部分の機能を記述し、親側はそれらの機能分割部分を呼び出す形とする場合がある。
大きなプログラムの中の、それら機能分割部分を副プログラム、あるいは一般的にサブルーチンと呼ぶこともある
fortran や pascal は呼び出し側に結果を戻すようなからくりがあるものを function, 結果を戻さないものを procedure と分けている。
が、サブルーチンという意味では procedure も function もかわらない
typedef Hoge *hoge;
a[100]のそれぞれの要素には1〜100の値が重複なく割り当てられてるとします。 あるソートをしてa[100]の要素をばらばらにして、もう一回ソートしたら元に 戻る。 こういうアルゴリズムを考えてるんですがいい方法ありますか?
964 :
デフォルトの名無しさん :2013/11/16(土) 17:55:43.50
for (i=0;i<100;i++)b[a[i]-1]=i; ... for (i=0;i<100;i++)a[b[i]]=i+1;
std::random_shuffle
>>964 ありがとう、それ繰り返したら元のa[i]の情報はa[i]かb[i]に移動するだけで
なくならないってことですね。ありがとうございます!
>>961 ソートっていうか、暗号化したのを復号化したいってことかな
>>967 そうですね暗号化した状態と、開いた状態に一時的にして
プログラム終了時にまた暗号化されている状態に戻るというような
>>964 さんのは参考になりますが、実際実装するとしたらどうなんでしょう?
暗号化したa[100]があって、複合したらb[100]の内容に変わって クローズするとa[100]は元のa[100]のままである。 というようなアルゴリズムです。 この場合a[100]はデータとしてあるんですが、b[100]は実行中だけ 必要なデータなんですよね、そのb[100]というデータを作り出すに はどうしたらいいかなと。
暗号化したa[100]のソースを出力するプログラムを書くだけかと
書き戻す必要があるって意味なら int a[100]; ってのと int *b[100]; ってのを用意して b[m] = &a[n]; って対応にするわ
972 :
デフォルトの名無しさん :2013/11/16(土) 18:59:04.22
数学基礎論の逆写像を勉強した方がいいよ
どんなに複雑な暗号化をしても、デバッガ使えるハッカーが分析したら、元のデータ丸見え。
974 :
デフォルトの名無しさん :2013/11/16(土) 19:13:47.11
デバッガ使えば、暗号化を完了した地点でデバッグブレイクして復号化されたデータを見ることは可能。
976 :
961 :2013/11/16(土) 19:23:55.02
例えば「おはよう」という文字を画像化して 暗号化して画像をソートする。 自分だけがしってる暗号じゃないとおはようという文字は浮かび上がってこない こうしたら絶対に解読不能でしょう? ソートの順番は暗号に全く関係ないし。
977 :
961 :2013/11/16(土) 19:26:43.53
つまり暗号≒自分だけが知ってるソート方法 という事ですよ。 そのソート方法が思いつかない。
パスワードがWebに流出すると一貫の終わり
>>978 流出しないでしょ
メモに書いておけばいい
暗号ならメモリ上に複合された配列置いた時点で意味をなさない いろいろ間違ってるな
981 :
961 :2013/11/16(土) 19:46:26.13
つまり目的のデータ取得の手段が暗号ではなくソート方法ってことですね 暗号ならデータが残ってパケット解析されてしまうってことですよね?
暗号化というのはバイト列上の可逆な変換。 可逆な変換というのは例えば、XORで各バイトを反転させるとか、バイト列を逆順にするとか。 可逆な変換を組み合わせるとまた可逆な変換ができる。 ただのソートを暗号化に使いたいなら、恒等写像a[100](a[i]==i)にC++のstd::random_shuffle(&a[0],&a[100]);で乱雑な写像が得られる。 #include <algorithm>
983 :
961 :2013/11/16(土) 19:58:17.88
ちょっと難しいかな僕には
その場合、復号化の際には逆写像を使う。a[100]の逆写像bは次のようにして得られる。 for(i=0;i<100;i++)b[a[i]]=i;
ソートによる暗号化には、パスワードの情報量が大きくなるという欠点がある。
>>983 大学に入ったら数学をみっちり勉強するんだな
馬鹿には無理
988 :
コケマン :2013/11/16(土) 21:46:24.07
君たち何者なの?
22歳OLです よろしくおながいします
おぅまかせとけ
991 :
デフォルトの名無しさん :2013/11/17(日) 11:19:21.10
/\___/ヽ /'''''' '''''':::::::\ . |(●), 、(●)、.:| printf関数が使えます | ,,ノ(、_, )ヽ、,, .::::| どうぞよろしくお願いします . | `-=ニ=- ' .:::::::| \ `ニニ´ .:::::/ /`ー‐--‐‐―´\
採用
19歳、看護学生です へそピしてますが大丈夫ですか?
>>993 半そでで見えるところにタトゥーを入れてなければ
大丈夫です
19歳、看護学生です。 MacでもC言語って勉強できますか?
Macでもモスバーガーでも開発できるよ
998 :
デフォルトの名無しさん :2013/11/17(日) 13:24:02.61
999 :
デフォルトの名無しさん :2013/11/17(日) 13:25:11.15
埋めます
hoge
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。